package com.lei.study_09_15.bean; /** * * * @author LeiLei * @date 2019/9/15 */ public class Person { private String name; private int age; public void init() { System.out.println("init ... "); } public void destory() { System.out.println("destory ... "); } public Person(String name, int age) { System.out.println("constructor 。。。"); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
package com.lei.study_09_15.config; import com.lei.study_09_15.bean.Person; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; /** * * * @author LeiLei * @date 2019/9/15 */ @Configuration public class BeanConfigLifeCycle { /** * 如果是多实例:容器不会执行销毁方法 * @return */ //@Scope("prototype") @Bean(initMethod = "init",destroyMethod = "destory") public Person person() { return new Person("lei", 25); } }
总结:
1.组件的生命周期可以自己控制@Bean的initMethod和detoryMethod属性指定对应方法。
2.如果是多实例bean则spring容器不会执行detroy方法。