http://static.springsource.org/spring/docs/2.0.x/reference/beans.html
3.5.1.2. Destruction callbacks
<bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="$[]" />
</bean>
destroy-method指定了当要销毁bean datasource之前要做的操作,也就是这个bean的收尾工作。
这里是指定了close()方法。
Closes and releases all idle connections that are currently stored in the connection pool associated with this data source.
http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html
也可以像下面这样设置全局的init方法
<beans default-init-method="init">
<bean id="blogService" class="com.foo.DefaultBlogService">
<property name="blogDao" ref="blogDao" />
</bean>
</beans>
要注意的是init和interceptor一起使用的情况,当bean和intereptor分开定义时,可以绕过proxy访问这个bean了。但是,还是不要在init里关联interceptor,因为
这样bean的生命周期会与proxy/interceptors耦合:
Finally, please be aware that the Spring container guarantees that a configured initialization callback is called immediately after a bean has been supplied with all of it's dependencies. This means that the initialization callback will be called on the raw bean reference, which means that any AOP interceptors or suchlike that will ultimately be applied to the bean will not yet be in place. A target bean is fully created first, then an AOP proxy (for example) with its interceptor chain is applied. Note that, if the target bean and the proxy are defined separately, your code can even interact to the raw target bean, bypassing the proxy. Hence, it would be very inconsistent to apply the interceptors to the init method, since that would couple the lifecycle of the target bean with its proxy/interceptors, and leave strange semantics when talking to the raw target bean directly.
分享到:
相关推荐
init-method 和 destroy-method 是两个非常重要的属性,它们用于指定 Bean 的初始化方法和销毁方法。 init-method 属性用于指定 Bean 的初始化方法,这个方法会在 Bean 实例化完成后被调用。 destroy-method 属性...
`initMethod` 和 `destroyMethod` 属性分别指定了bean初始化和销毁时要调用的方法。例如: ```java @Bean(initMethod = "init", destroyMethod = "destroy") Test1 test1() { return new Test1(); } ``` 在...
此外,`<bean>`元素还支持通过`init-method`和`destroy-method`属性指定bean的初始化和销毁方法,以进行自定义的生命周期管理。 `spring-context-4.2.xsd`还定义了处理bean作用域(scope)、AOP代理(proxy)、事件...
Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务。 Spring IOC容器对Bean的生命周期...在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 Bean 指定初始化和销毁方法。
- 可以通过`init-method`和`destroy-method`属性指定Bean的初始化和销毁方法,例如: ```xml <bean id="exampleBean" class="com.example.ExampleClass" init-method="init" destroy-method="destroy"/> ``` 7....
值得注意的是,Spring 2.5版本后引入了注解的方式,可以使用@PostConstruct和@PreDestroy来代替XML中的init-method和destroy-method,从而更简洁地指定Bean的初始化和销毁方法。 容器本身也具备了极高的扩展性,...
2.0.8版本的Bean工厂支持了更丰富的生命周期回调方法,如init-method和destroy-method,使开发者能更好地控制Bean的初始化和销毁过程。 七、JDBC和ORM支持 Spring 2.0.8加强了对JDBC的抽象,提供了JdbcTemplate和...
Spring IOC Bean标签属性介绍 0.Bean标签属性介绍 1.0 新建一个Maven工程 1.1 pom.xml ...1.9 init-method和destroy-method 1.9.1 实体类JavaBean User加自定义的初始化方法和销毁方法 1.9.3 加了lazy
9. 使用 init-method 和 destroy-method 来管理 Bean 的生命周期 init-method 和 destroy-method 可以用来管理 Bean 的生命周期,例如,在Bean 实例化时执行某些操作。 10. 使用 profile 来管理不同的环境 ...
在Spring的XML配置文件中,我们可以使用`init-method`和`destroy-method`属性来指定初始化和销毁的方法。例如: ```xml <bean id="personService" class="com.myapp.core.annotation.init.PersonService" init-...
总的来说,理解Spring配置文件中的bean定义,以及`init-method`、`destroy-method`的使用,对于有效地管理对象的生命周期至关重要。同时,掌握`@ModelAttribute`在Spring MVC中的工作原理,可以帮助我们更高效地进行...
在XML中,可以使用`init-method`和`destroy-method`属性指定。对于注解配置,可以使用`@PostConstruct`和`@PreDestroy`注解。 5. **依赖注入**: Spring的核心特性之一就是依赖注入(Dependency Injection,DI)。它...
在多例对象时候,创建对象时候执行 init-method 属性指定的方法,每个对象都会调用一次 init 方法。关闭容器时候,不会执行 destroy-method 属性指定的方法。 懒惰初始化可以使用 lazy-init 属性来设置对象“懒惰”...
2.5.6版本支持Bean的生命周期回调方法,如初始化方法(init-method)和销毁方法(destroy-method),以及自定义的生命周期处理器。 五、Spring的IoC容器 IoC容器是Spring的核心,负责管理Bean的实例化、配置和组装...
此外,Bean的初始化和销毁方法可以使用`init-method`和`destroy-method`属性(在XML中)或`@PostConstruct`和`@PreDestroy`注解(在Java或注解配置中)来定义。这些方法会在Bean生命周期的特定时刻被调用。 最后,...
初始化阶段可以调用`init-method`指定的方法,销毁阶段则调用`destroy-method`指定的方法。此外,Spring提供了多种扩展点,如 BeanPostProcessor 和 InstantiationAwareBeanPostProcessor,允许自定义处理Bean的创建...
例如,`scope`属性可以设置bean的作用域(如singleton、prototype等),`init-method`和`destroy-method`用于指定bean初始化和销毁时执行的方法。 此外,`pom.xml`文件展示了Maven的依赖管理,其中引入了Spring的...
开发者可以自定义生命周期回调方法,如`init-method`和`destroy-method`,或者实现`InitializingBean`和`DisposableBean`接口。 4. **数据访问集成**:Spring提供了对多种数据库访问技术的支持,包括JDBC、ORM...
3. 配置`init-method`:在Bean的定义中,可以使用`init-method`属性指定初始化方法的名称。容器会在所有属性注入后调用这个方法。 同样,对于销毁Bean前后的操作,也有以下方式: 1. 实现DisposableBean接口:该...
5. `init-method`和`destroy-method`:指定bean初始化和销毁时要调用的方法。 6. `<import>`:引入其他配置文件,方便模块化和复用。 7. `<context:component-scan>`:通过注解扫描特定包下的类,自动发现并注册带...