### Spring自定义Bean的创建与销毁
1. 注解方式
在 bean 初始化时会经历几个阶段,首先可以使用注解 @PostConstruct, @PreDestroy 来在 bean 的创建和销毁阶段进行调用:
```
@Component
public class AnnotationBean {
private final static Logger LOGGER =LoggerFactory.getLogger(AnnotationBean.class);
@PostConstruct
public void start(){
LOGGER.info("AnnotationBean start");
}
@PreDestroy
public void destroy(){
LOGGER.info("AnnotationBean destroy");
}
}
```
2. 实现InitializingBean, DisposableBean接口
```
@Service
public class SpringLifeCycleService implements InitializingBean,DisposableBean{
private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycleService.class);
@Override
public void afterPropertiesSet() throws Exception {
LOGGER.info("SpringLifeCycleService start");
}
@Override
public void destroy() throws Exception {
LOGGER.info("SpringLifeCycleService destroy");
}
}
```
3. JAVA Config方式
```
@Configuration
public class LifeCycleConfig {
@Bean(initMethod = "start", destroyMethod = "destroy")
public SpringLifeCycle create(){
SpringLifeCycle springLifeCycle = new SpringLifeCycle() ;
return springLifeCycle ;
}
}
public class SpringLifeCycle{
private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycle.class);
public void start(){
LOGGER.info("SpringLifeCycle start");
}
public void destroy(){
LOGGER.info("SpringLifeCycle destroy");
}
}
```
4. XML配置方式
```
<bean class="com.crossoverjie.spring.SpringLifeCycle" init-method="start" destroy-method="destroy">
</bean>
```
- 概述
- Spring的使命
- 环境变量
- spring架构
- Spring各版本特性
- Spring3.1新特性
- spring顶级项目
- spring基础
- spring环境变量
- 依赖注入
- spring获取bean方法
- BeanFactory vs FactoryBean
- JavaBean装配
- XML显式配置
- 基于JAVA配置
- 自动化装配bean
- SpringBean的作用域
- Spring应用上下文实现
- springbean的生命周期
- 自定义Bean的创建与销毁
- Spring容器启动过程
- spring加载xsd文件的流程
- spring扩展接口
- Spring主要类功能说明
- spring事务管理
- 事务特性
- 数据库事务隔离级别
- 事务隔离性问题
- spring事务隔离级别
- 事务传播行为
- @Transactional
- 循环依赖
- 构造器注入
- 循环依赖原理
- spring循环依赖原理
- spring三级缓存
- Spring注解
- @Component
- @ComponentScan
- @Autowired
- @Import
- @ImportResource
- @Profile
- @Conditional
- @Qualifier
- @Scope
- @PropertySource
- @Value
- @EnableScheduling
- SpEL-Spring表达式
- Spring-AOP
- SpringAOP五种通知类型
- AOP术语
- SpringMVC
- MVC原理图
- SpringMVC工作原理
- springboot
- @SpringCloudApplication
- springboot tomcat配置
- Spring Boot Starter POMs
- Spring Boot technical starters
- spring boot事件类型
- Springboot日志
- SpringCloud
- springcloud微服务解决方案
- 服务组件
- 注册中心
- Eureka
- Spring Cloud Zookeeper
- nacos
- Hystrix熔断原理
- Hystrix应用
- Spring Cloud Config
- 服务网关
- Zuul
- Spring Cloud Gateway
- 服务调用及负载
- Ribbon
- Feign&OpenFeign
- Turbine
- actuator
- springboot & springcloud
- springcloud vs dubbo
- 常见面试题
- BeanFactory和FactoryBean
- @Autowired/@Resource和@Inject的区别
- Singleton bean注入prototype bean
- 附录