`

Spring销毁类顺序

 
阅读更多

Spring destroy类的顺序通过配置文件中配置“depends-on”来实现,同理init顺序正好相反。

实例:

bean1:

 

public class Bean1 {

    public void destroy() {
        System.out.println("bean1 destroy.");
    }
}

 bean2:

 

public class Bean2 {

    public void destroy() {
        System.out.println("bean2 destroy.");
    }
}

 bean3:

 

public class Bean3 {

    // private Bean1 bean1;

    public void destroy() {
        System.out.println("bean3 destroy.");
    }

}

bean4:

 

public class Bean4 {

    private Bean2 bean2;

    public void destroy() {
        System.out.println("bean4 destroy.");
    }

    public void setBean2(Bean2 bean2) {
        this.bean2 = bean2;
    }

}

 配置文件:

 

applicationContext.xml 写道
<bean id="bean1" class="com.alibaba.cep.collection.advice.Bean1" destroy-method="destroy"></bean>
<bean id="bean2" class="com.alibaba.cep.collection.advice.Bean2" destroy-method="destroy"></bean>
<bean id="bean3" class="com.alibaba.cep.collection.advice.Bean3" depends-on="bean1" destroy-method="destroy"></bean>
<bean id="bean4" class="com.alibaba.cep.collection.advice.Bean4" depends-on="bean2" destroy-method="destroy"></bean>

 执行mian:

 

public static void main(String[] args) {
        ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        ac.destroy();
    }

 执行结果:

 

 写道
bean4 destroy.
bean3 destroy.
bean2 destroy.
bean1 destroy.
分享到:
评论

相关推荐

    Spring实例化Bean顺序

    首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的实例化顺序取决于以下因素: 1. **定义顺序**:在XML配置中,如果Bean的定义顺序明确,那么按照它们在文件中的...

    Spring Bean 加载顺序 .

    Spring支持多种配置方式,包括XML、Java配置类(@Configuration)、注解(@Component、@Service等)以及通过@ConfigurationProperties处理YAML或Properties文件。在实验小例子中,我们可能看到这几种配置方式的组合...

    spring加载顺序讨论

    在Spring框架中,加载顺序是理解应用程序启动过程的关键部分,涉及到bean的实例化、初始化以及依赖注入等多个环节。本文将详细探讨Spring加载顺序,并结合`@PostConstruct`、`构造方法`以及`@Autowired`等关键注解...

    spring的bean加载顺序样例项目

    在Spring框架中,Bean的加载顺序是一个重要的概念,它涉及到Spring容器如何管理和初始化Bean的过程。在"spring的bean加载顺序样例项目"中,我们可以通过分析和实验来深入理解这一主题。下面将详细阐述Spring Bean的...

    Spring bean初始化及销毁你必须要掌握的回调方法.docx

    **初始化和销毁顺序** 初始化的顺序如下: 1. 类构造器 2. @PostConstruct注解的方法 3. InitializingBean的afterPropertiesSet()方法 4. XML配置或@Bean注解指定的init-method 销毁的顺序如下: 1. @PreDestroy...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    这段代码指定了一个Listener类`ContextLoaderListener`,该类由Spring框架提供,用于在应用程序启动时加载Spring的上下文配置。 #### Filter Filter是在请求到达目标资源之前可以执行预处理操作的对象,并且在响应...

    spring源码合集spring源码合集

    7. **Bean生命周期源码解析**:"05-Spring之Bean生命周期源码解析下-周瑜"将详细阐述Bean从创建到销毁的整个过程,包括初始化、后置处理、正常运行和销毁等阶段,使我们能更好地控制和管理Bean的状态。 8. **模拟...

    spring源码UML图

    3. 序列图(Sequence Diagram):序列图展示了对象间的交互顺序,对于理解Spring的AOP(面向切面编程)和IoC(控制反转)的工作流程特别有用。例如,当一个bean被初始化时,Spring容器如何调用各种生命周期方法,...

    跟开涛学spring3

    4. **Bean的生命周期管理**:Spring提供了对Bean从创建到销毁的完整生命周期管理,包括初始化、属性注入、业务处理和销毁等阶段。 5. **数据访问集成**:Spring3增强了对JDBC、ORM(Object-Relational Mapping)...

    springMvc+spring+Mybatis 实战案例 实用!

    在Spring MVC中,Spring负责管理Bean的生命周期,包括初始化、装配以及销毁。开发者可以通过配置文件或注解来声明Bean及其依赖关系,Spring会自动管理这些Bean,提供事务管理、安全控制等多种服务。 MyBatis 是一款...

    spring-hook-test.rar

    5. **Spring生命周期回调**:除了上述的`@PostConstruct`和`@PreDestroy`,Spring还提供了一些其他的生命周期回调,如`SmartLifecycle`接口,允许在应用启动和停止时控制Bean的启动和停止顺序。`@Application...

    spring学习

    2. **Bean的生命周期管理**:Spring管理的对象称为bean,它负责bean的创建、初始化、使用和销毁。可以通过配置文件或注解定义bean的生命周期行为,如单例或多例模式,以及初始化和销毁方法。 3. **IoC容器**:...

    spring-text-3.2.8和junit4.10

    在实际项目中,开发者可以通过编写针对单个Bean或整个应用上下文的测试,利用Spring Test提供的`ApplicationContext`加载和销毁机制,确保测试的隔离性。同时,JUnit的@Test注解允许我们定义每个测试方法,通过控制...

    Spring从入门到精通

    - **非侵入式**:Spring 不要求任何特定的类继承或实现特定接口,这使得现有代码可以很容易地与Spring集成。 - **IOC容器**:Spring 提供了强大的依赖注入功能,使得对象之间的耦合度大大降低。 - **AOP支持**:...

    spring 多线程队列执行

    Spring提供了一些工具类如`ConcurrentHashMap`、`AtomicInteger`等,它们具有内置的线程安全机制。此外,合理设计并发控制策略,如使用`synchronized`关键字或`Lock`接口,也是确保数据一致性的重要手段。 7. **...

    spring-boot 过滤器 filter

    多个Filter可以组成一个过滤链,Spring Boot会根据`FilterRegistrationBean`的顺序进行执行。默认情况下,Spring Boot的内置Filter会先执行,然后是用户自定义的Filter。 总结,Spring Boot的过滤器机制提供了强大...

    Spring Key tutorial PDF

    - **示例**:定义初始化和销毁方法,并验证它们的调用顺序。 - **默认初始化和销毁方法**:Spring 允许自动调用特定的方法作为初始化或销毁回调。 #### Spring Bean 后处理器 Bean 后处理器是在 bean 被创建后对...

    spring-note

    在 Spring 中,IOC 主要体现在依赖注入(DI)上,即一个类不再需要主动去获取所依赖的对象,而是被动地接受这些依赖的对象。 ##### 二、IOC 的分类 1. **Set 方式注入**: - 这是最常见的依赖注入方式,通常通过 ...

    spring 业务层架构

    Spring通过其独特的Bean配置XML文件和上下文工厂类,提供了强大的工具来帮助开发者组织业务层。开发者可以根据上述原则和精神,结合实际项目需求,灵活运用Spring的各种特性来构建高质量的业务层架构。 通过以上...

Global site tag (gtag.js) - Google Analytics