1、注册springboot启动相关触发事件:
@Order(LoggingApplicationListener.DEFAULT_ORDER-1)
public class CmdbClientListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {}
2、刷新spring容器参数
ConfigurableEnvironment environment=event.getEnvironment();
MapPropertySource mapPropertySource=new MapPropertySource(CmdbConstants.RESOURCE_NAME,propResult);
environment.getPropertySources().addLast(mapPropertySource);
environment.addActiveProfile(CmdbConstants.RESOURCE_NAME);
3、主动刷新配置文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.1.9.RELEASE</version>
</dependency>
刷新配置文件访问地址:http://localhost:8080/actuator/refresh
4、Http响应乱码设置
spring.http.encoding.force=true
spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
5、springboot dubbo 常用设置
#重试设置
dubbo.consumer.retries=0
#超时设置,务必配置,不配置超时时间,有的时候回出现调用时间很长的问题
dubbo.consumer.timeout=90000
6、监控地址
http://127.0.0.1:9080/cpf-intra/actuator
http://127.0.0.1:9080/cpf-intra/actuator/health
7、提前加载资源文件
EnvironmentPostProcessor
8、常用的访问地址:
#监控地址
/actuator
#swagger2.0访问地址
/swagger-ui.html
#swagger3.0访问地址
/swagger-ui/index.html
9、打包命令
#个人项目打包后台服务命令
mvn clean package appassembler:generate-daemons
10、@Transactional事务使用总结
1、异常在A方法内抛出,则A方法就得加注解
2、多个方法嵌套调用,如果都有 @Transactional 注解,则产生事务传递,默认 Propagation.REQUIRED
3、如果注解上只写 @Transactional 默认只对 RuntimeException 回滚,而非 Exception 进行回滚,如果要对 checked Exceptions 进行回滚,则需要 @Transactional(rollbackFor = Exception.class)
同一个类中调用 @Transaction注解的方法会有事务效果吗?
没有,可以Autowired注入自己,然后再调用注入的类中的方法,即自己依赖自己,循环依赖;
这里在一个内部调用应该是相当于单纯的调用方法this.methodName(),并没有AOP代理。
常用的spring类
1、RequestMappingHandlerMapping
@Resource
RequestMappingHandlerMapping cehm;
2、打印出所有的mapping关系
Map<RequestMappingInfo, HandlerMethod> map = cehm.getHandlerMethods();
Set<RequestMappingInfo> mappings = map.keySet();
Map<String, String> reversedMap = new HashMap<>();
for (RequestMappingInfo info : mappings) {
HandlerMethod method = map.get(info);
reversedMap.put(method.toString(), info.getPatternsCondition().toString());
}
springboot最小的运行jre
$J/bin/jlink -p $J/jmods --add-modules java.base,java.sql,java.naming,java.desktop,java.management,java.security.jgss,java.instrument,java.rmi,java.xml.bind --output jre
jlink --add-modules java.base,java.sql,java.naming,java.desktop,java.management,java.security.jgss,java.instrument,java.rmi,java.xml --output jre