一、Bean的初始化
有两种方式初始化Bean。
1、在配置文档中通过指定init-method 属性来完成
在Bean的类中实现一个初始化Bean属性的方法,如init(),如:
public class HelloWorld{
public String msg=null;
public Date date=null;
public void init() {
msg="向全世界问好!";
date=new Date();
}
......
}
然后,在配置文件中设置init-mothod属性:
<bean id="HelloWorld" class="com.fendou.bean.HelloWorld" init-mothod="init" >
</bean>
2、实现 org.springframwork.beans.factory.InitializingBean接口
Bean实现InitializingBean接口,并且增加 afterPropertiesSet() 方法:
public class HelloWorld implement InitializingBean {
public String msg=null;
public Date date=null;
public void afterPropertiesSet() {
msg="向全世界问好!";
date=new Date();
}
......
}
那么,当这个Bean的所有属性被Spring的BeanFactory设置完后,会自动调用afterPropertiesSet()方法对Bean进行初始化,于是,配置文件就不用指定 init-method属性了。
二、Bean的销毁
1、使用配置文件中的 destory-method 属性
与初始化属性 init-methods类似,在Bean的类中实现一个撤销Bean的方法,然后在配置文件中通过 destory-method指定,那么当bean销毁时,Spring将自动调用指定的销毁方法。
2、实现 org.springframwork.bean.factory.DisposebleBean接口
如果实现了DisposebleBean接口,那么Spring将自动调用bean中的Destory方法进行销毁,所以,Bean中必须提供Destory方法。
分享到:
相关推荐
Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...
下面将详细介绍如何通过不同方式定义Spring Bean的初始化和销毁回调方法。 **初始化回调方法** 1. **@PostConstruct注解** 这个Java标准注解用于标记一个方法,该方法将在对象完全构造后但在业务逻辑执行前被调用...
9. **Bean初始化**: 最后,`initializeBean(beanName, exposedObject, mbd)`对创建好的Bean进行初始化,包括调用初始化方法(如果有`@PostConstruct`注解的方法),以及执行AOP代理等操作。 整个流程中,Spring...
Spring框架中,Bean的初始化和销毁是非常重要的两个生命周期过程。今天我们将讨论Spring中 Bean 的初始化和销毁的实现方法。 1. 通过@Bean指定init-method和destroy-method 在 Spring 中,我们可以使用 @Bean 注解...
此外,Spring提供了BeanPostProcessor接口,允许我们在Bean初始化前后进行自定义处理。通过实现`postProcessBeforeInitialization()`和`postProcessAfterInitialization()`方法,可以在Bean实例化和初始化之后进行...
Spring 提供了多种不同的方式来初始化和销毁 Bean,这些方式包括 init-method/destroy-method、InitializingBean/DisposableBean、@PostConstruct/@PreDestroy 和 ContextStartedEvent/ContextClosedEvent 等。...
在SSHnote_Spring_9_LifeCycle这个文件中,可能包含了详细的示例代码和讲解,展示了如何创建一个实现`BeanPostProcessor`的类,并在Bean初始化和销毁时添加自定义逻辑。通过学习这部分内容,你可以更深入地理解...
- 可选的`@PostConstruct`和`@PreDestroy`注解:分别表示Bean初始化和销毁时执行的方法。 例如: ```java @Stateful public class ShoppingCartBean implements ShoppingCartLocal { private List<Item> items; ...
6. **生命周期方法**:使用`@PostConstruct`和`@PreDestroy`注解来定义Bean初始化和销毁时执行的方法。 ```java @Service public class ServiceWithLifecycle { @PostConstruct public void init() { // 初始化...
BeanFactory提供了对bean初始化和销毁方法的控制,允许在bean实例化时注入依赖。 ApplicationContext则更加强大,它不仅具备BeanFactory的所有功能,还提供了更多高级特性。例如,ApplicationContext支持国际化,这...
这两个注解是JSR 250规范的一部分,提供了对bean初始化和销毁过程的控制。 `@PostConstruct` 注解用于标记一个方法,该方法会在bean实例被创建并注入所有依赖之后,但在服务对象变为可用之前调用。这是一个初始化...
可以通过实现InitializingBean接口、使用@PostConstruct注解、指定init-method,以及实现DisposableBean接口、使用@PreDestroy注解、指定destroy-method来分别控制Bean初始化和销毁时的行为。 2. **XxxAware接口**...
它们分别指定了Bean初始化和销毁时要调用的方法,这对于实现Bean的生命周期回调非常关键。例如,当Bean被创建后,Spring会尝试调用标记为initMethodName的方法,而在Bean不再需要时,会调用destroyMethodName指定的...
8. `init-method`和`destroy-method`: 分别指定Bean初始化和销毁时要调用的方法。 9. `abstract`: 如果设为`true`,表示Bean是抽象的,不会实例化,通常用于作为其他Bean的父配置。 10. `factory-method`: 指定一...
源码中的 BeanPostProcessor 接口允许自定义 Bean 初始化和销毁前后的逻辑,而 InitializingBean 和 DisposableBean 接口提供了默认的初始化和销毁方法。 7. **SpEL(Spring Expression Language)** SpEL 是 ...
可以使用`init-method`和`destroy-method`属性指定bean初始化和销毁时要调用的方法。 9. **AOP配置** 在XML配置中,可以使用`<aop:config>`和`<aop:aspect>`标签来定义切面和通知。而在注解配置中,可以使用`@...
例如,`scope`属性可以设置bean的作用域(如singleton、prototype等),`init-method`和`destroy-method`用于指定bean初始化和销毁时执行的方法。 此外,`pom.xml`文件展示了Maven的依赖管理,其中引入了Spring的...
9. **SpEL表达式在Bean初始化和销毁中的应用** Bean的初始化和销毁方法可以通过SpEL表达式指定,如`init-method="#{T(com.example.util.MyUtil).initMethod()}"`。 10. **SpEL在Spring Data JPA中的使用** 在...
8. **生命周期方法**:EJB提供了一些生命周期回调方法,如`@PostConstruct`和`@PreDestroy`,可以在bean初始化和销毁时执行特定的代码。 9. **并发控制**:对于有状态会话bean,容器管理并发,确保同一时间只有一个...