spring一些特的梳理

spring bean的生命周期回调

初始化回调:为同一个bean配置的多个生命周期机制具有不同的初始化方法,如下所示:

用注释方法注释 @PostConstruct

afterPropertiesSet()由InitializingBean回调接口定义

自定义配置的init()方法

毁灭回调:Destroy方法以相同的顺序调用:

用注释方法注释 @PreDestroy

destroy()由DisposableBean回调接口定义

自定义配置的destroy()方法

启动回调:

关闭回调:

参看:

https://blog.csdn.net/soonfly/article/details/69916806

优雅关闭spring  ioc容器用官方提供的钩子即可

import org.springframework.context.ConfigurableApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public final class Boot {

    public static void main(final String[] args) throws Exception {

        ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

        // add a shutdown hook for the above context...

        ctx.registerShutdownHook();

        // app runs here...

        // main method exits, hook is called prior to the app shutting down...

    }

spring的一系列感知接口ApplicationContextAware 。。。这个可以获取spring上下文,进而获取bean

使用JSR 330标准注释

<dependency>

    <groupId>javax.inject</groupId>

    <artifactId>javax.inject</artifactId>

    <version>1</version>

</dependency>

jsr 330 注释 和spring常规的注解作用相仿@Autowired----@Inject   @Component--- @Named / @ManagedBean