bean 是spring 里面非常重要的部分,可以理解为一个对象,也可以理解为一个组件。
bean 的开始
创建不创建?
bean 默认在容器启动时则会被创建。
如果想在获取bean 时创建则如下:
<bean id="simpleBean" class="cn.met0.maven.spring.simple.SimpleBean" lazy-init="true" ></bean>
也可以全局配置
<beans default-lazy-init="flase" ></beans>
lazy-init = false = "true"
是启动容器时不创建bean ,在getBean 时创建。
实例后,销毁前?
spring 为bean 提供了两个功能,作用是在bean 实例化后和销毁前执行指定的方法。
而这两个功能分别有3 种实现方式。
xml 实现
<bean id="simpleBean" class="cn.met0.maven.spring.simple.SimpleBean" destroy-method="destroy" init-method="init" ></bean>
init-method="init"
实例后执行init 方法
destroy-method="destroy"
销毁前执行 destroy 方法
注解实现
SimpleBean .java
@Component
public class SimpleBean {
@PostConstruct
public void init(){
System.out.println("init");
}
@PreDestroy
public void destroy(){
System.out.println("destroy");
}
}
@PostConstruct
实例后执行的方法
@PreDestroy
销毁前执行的方法
接口实现
SimpleBean .java
@Component
public class SimpleBean implements InitializingBean, DisposableBean {
public void destroy() {
System.out.println("destroy");
}
public void afterPropertiesSet() throws Exception {
System.out.println("initialzing");
}
}
afterPropertiesSet()
方法是InitialzingBean 接口的一个方法。bean 在实例化后都会调用此方法。
destroy
方法是DisposableBea 接口的一个方法。bean 在销毁后都会调用此方法。