Arganzheng's Blog

stay hungry, stay foolish

Spring使用@value annotation注入property变量和环境变量

@Value("#{welife.rpc.sendCoupon.api}") private String sendCouponApi; @Value("#{systemProperties['env']}") private String env; Spring 3.0之后支持$语法,即@Value("${welife.rpc.sendCoupon.api}...

Content-Type头部

content-type是一个非常重要的HTTP Header,设置错误的话,浏览器端是没有办法正常显示的。作为API容器,需要根据format来定义content-type,并且强制使用UTF-8。 package me.arganzheng.study.api.container.controller; @Controller public class ApiDispatcher {...

MySQL字符串比较大小写问题

刚刚才知道MySQL的varchar类型比较默认是忽略大小写的,还忽略最后的空格。C.5.5.1. Case Sensitivity in String Searches mysql> SELECT 'a' = 'A'; -> 1 解决方案是使用BINARY操作符10.1.7.7. The BINARY Operator mysql> SELECT BINA...

Java Heap OOM问题

今天线上API机器出问题了,很多机器告警,tomcat重启不久又挂掉。 看了一下日志,发现是OOM了: java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid21673.hprof ... Heap dump file created [1934558576 bytes in 8.670 secs] [Un...

Config File In Web Application

配置文件串串SHOW catalog: true 2009–18 星期四 热 一、有哪些配置文件 入口配置文件:web.xml;由web或应用服务器为每个web项目加载的配置文件。 应用上下文:包括web框架特有配置文件:如struts的struts-config.xml(或struts2的struts.xml)文件和SpringMVC的${dispatcherServlet...

已知一个java类,如何知道其在哪个jar包

比如我们想知道HeadApiProtocol.class在哪个jar包,路径在哪里,可以这么处理: System.out.println(HeadApiProtocol.class.getProtectionDomain().getCodeSource().getLocation()); 打印结果是: file:/D:/code/api_metadata_proj/target/ap...

如何下载文件

// File file = xxx InputStream inStream = new FileInputStream(file); try { String fileName = file.getName(); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); /...

如何把一个jar包install到maven本地仓库

使用mvn install:install-file命令: $ mvn install:install-file -Dfile=idl-tools.jar -DgroupId=me.arganzheng.study -DartifactId=idl-tools -Dversion=1.0 -Dpackaging=jar 然后就可以在依赖到地方引用了 <dependency>...

负载均衡

高性能高可用性的系统一般会有多层次的负载均衡(High-performance systems may use multiple layers of load balancing)。负责均衡的实现机制有硬件和软件两种。下面我们以top down的方式一层层介绍下去。 总体来说负责均衡分为无状态服务负载均衡,以及有状态的数据负载均衡两类。前者(比如web server,app Server)...

如何使用tomcat高效调试

1. 使用maven tomcat插件快速部署和启动web工程: mvn tomcat:run 如果要调试,可以先在命令行设置如下环境变量: Windows: set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 Linux: export MAVEN_OPTS=-Xrunjdwp:t...