背景
我们的系统基本都是前后端分离架构,后端服务主要框架是基于java的spring boot,为了快速的构建新项目,将平时做后端的东西抽出一个开发脚手架。
技术栈
- java 8
- spring-boot 2.2.7.RELEASE
- swagger 2.9.2
- guava 29.0-jre
- mybait.spring 1.3.2
- HikariCP 3.2.0
- xxl-job 2.1.0
- lombok 1.18.0
- Jedis 3.2.0
- Elasticsearch 7
- zookeeper client 4.3.0
项目
名称:spring-boot-seed
seed-client:常用的组件client
seed-common:通用类和util
seed-task:集成xxl-job做定时任务
seed-web:web后端服务,数据库mysql,使用spring mybatis操作数据库
地址:https://github.com/luxiaoxun/spring-boot-seed
小记录:
Springboot中bean的“构造”和“析构”顺序:
1. Bean instance is created
2. Bean properties are set
3. In case bean implements Aware interfaces - those implemented methods are invoked
4. BeanPostProcessor#postProcessBeforeInitialization methods of custom bean post-processors are invoked
5. Initialization callbacks are invoked in the following order:
- 5.1. @PostConstruct method is invoked
- 5.2. InitializingBean#afterPropertiesSet() method is invoked
- 5.3. @Bean#initMethod() method is invoked
Bean is fully initialized now.
6. BeanPostProcessor#postProcessAfterInitialization methods of custom post-processors are invoked
7. Destruction callbacks are invoked in the following order:
- 7.1. @PreDestroy method is invoked
- 7.2. DisposableBean#destroy() method is invoked
- 7.3. @Bean#destroyMethod method is invoked