spring boot 使用

日期格式化

1
2
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date releaseTime;

springboot 运行

1
2
3
4
5
6
7
8
# jar方式运行   -D 参数必须在jar前面指定
java -jar -Dserver.port=8081 spring-boot-test-service-0.0.1-SNAPSHOT.jar

# spring-boot plugin 运行
mvn spring-boot:run -Dspring-boot.run.arguments='--spring.profiles.active=pro'

#
mvn spring-boot:run -Dspring-boot.run.profiles=pro

idea中通过设置 VM options: -Dspring.profiles.active=dev

spring-boot全局排除jar

项目里使用了log4j2做日志处理,要排除掉Spring Boot 很多jar里边默认依赖的日志包spring-boot-starter-logging。一个一个写依赖排除也可以,
但是太繁琐了,经过尝试,只让它依赖个spring-boot-starter-logging的空壳,里边的东西全部排除掉即可。使用下边的方式就可以达到想要的效果。

1
2
3
4
5
6
7
8
9
10
11
<!--全局排除spring-boot-starter-logging内的所有依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

加快启动

启动参数添加 -Djava.security.egd=file:/dev/./urandom

加快随机数产生过程。

tomcat配置

1
2
3
4
5
6
7
8
9
10
11
# 等待队列长度,默认100。队列也做缓冲池用,但也不能无限长,不但消耗内存,而且出队入队也消耗CPU
server.tomcat.accept-count=1000

# 最大工作线程数,默认200。(4核8g内存,线程数800,一般是核数*200。操作系统做线程之间的切换调度是有系统开销的,所以不是越多越好。)
server.tomcat.max-threads=800

# 最小工作空闲线程数,默认10。(适当增大一些,以便应对突然增长的访问量)
server.tomcat.min-spare-threads=100

#最大连接数,默认为10000
server.tomcat.max-connections=10000

问题