Bean的初始化和销毁
在我们实际开发的时候,经常会遇到在Bean在使用之前或者之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持。
在使用Java配置和注解配置下提供如下两种方式。
1.Java配置方式:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destory-method)。
2.注解方式:利用JSR-250的@PostConstruct和@PreDestroy。
实例
1.增加JSR250支持。
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency> 2.使用@Bean形式的Bean。
package com.wisely.highlight_spring4.ch2.prepost; public class BeanWayService {
public void init(){
System.out.println("@Bean-init-method");
}
public BeanWayService() {
super();
System.out.println("初始化构造函数-BeanWayService");
}
public void destroy(){
System.out.println("@Bean-destory-method");
}
} 3.使用JSR250形式的Bean
package com.wisely.highlight_spring4.ch2.prepost; import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy; public class JSR250WayService {
@PostConstruct //1
public void init(){
System.out.println("jsr250-init-method");
}
public JSR250WayService() {
super();
System.out.println("初始化构造函数-JSR250WayService");
}
@PreDestroy //2
public void destroy(){
System.out.println("jsr250-destory-method");
}
} 代码解释
@PostConstruct,在构造函数执行完之后执行
@PreDestroy,在Bean销毁之前执行 4.配置类
package com.wisely.highlight_spring4.ch2.prepost; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; @Configuration
@ComponentScan("com.wisely.highlight_spring4.ch2.prepost")
public class PrePostConfig { @Bean(initMethod="init",destroyMethod="destroy") //1
BeanWayService beanWayService(){
return new BeanWayService();
} @Bean
JSR250WayService jsr250WayService(){
return new JSR250WayService();
}
} initMethod和destroyMethod指定BeanWayService类的init和destroy方法在构造之后、Bean销毁之前执行。
5.运行
package com.wisely.highlight_spring4.ch2.prepost; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(PrePostConfig.class); BeanWayService beanWayService = context.getBean(BeanWayService.class);
JSR250WayService jsr250WayService = context.getBean(JSR250WayService.class); context.close();
}
}
aaarticlea/png;base64,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WrVqeno6naEqm6byVln3y131X0+v++WuZrPZ1TQlX7TWvm7P9T9K/xpfuJfND3FQCjzH8zzxOj9t4lKvBpSajn/1PM2D2cyjVtKueaoVeI7rupmFWq302kNXnFnLLtIeSDsAymuJDZKmAAAAAI3iNDU1NbVp06b169e///77jz/++OTk5OOPP/7++++vX79+06ZNU1NTldPUK6+88tprr73xxhvHjh07ceLEqVOnTp069djPd24c2ffYz3c2m83du3d3L0211PATyH/V3f4kzj+1giBIlo0zmKHCvKbjtrR5TOmSuU7XD6Nl0iVD343GIM6VFbaerJWuLdZDmgIAAAB0itPU9PR0rVZ79913169fvzoRzVPVarXp6emupKktE3sf+P6TD3tPr7l7x4alL665e8fD3tMPfP/Jbav39yZNtZLJF3EOR4kNUWDJqWqqxJV+eXcudZim0hwlVugoc0qFrdv8AAAAACCjOE0dOnRo5cqVZ8+eXbt27ZrEY489dvbs2ZUrVx46dKjzNHXkyJHjx49veWTfqiVTa3++c92/7lr7852rlkytu29b87y+5kqDzUQXP84+ubFBvNso9P0pMS8lKasdpwpum+osTSVTYro61bkpNfxI9ait589NdeveLQAAAGDRsZ2beu+995577rl1iS1btnRxburIkSMzMzPHj5145sF9a+7a8djdO9bcteNZf/qFnbvyaq40WDGuSF9/rr25SJBe9Zb5vWX3Del5d0BFKSi9CUp7k1LgqY9lhiOlKWFkmS6l9WhaD1r5903Fd2YRqAAAAACZ1X1TGzduXL9+/YkTJ7Zv375x48bt27efOHFiw4YN3bpvKkpTH3zwwbHwxMbfvLh6ydTG+/acPvmx4csqqoyVaRYAAAAA3VPiO/02bNgwMzNz7ty5mZmZrnynn5qmwjA8+uGJ+h/2Hv/oZNP41X+lBpnMxnT9K8wBAAAADK4F+/+m8tLU8ePHz549e+bMmS6mKQAAAADoOqs0NTo6umrVqo0bN27dunXbtm1bt27duHHjqlWr0r9WS1OFSFMAAAAA+pYpTXXOkKYskaYAAAAA9KeFSVOdW+jtBgAAAGDQkaYAAAAAoArSFAAAAABUQZoCAAAAgCoGJU05jlNhsby10scLF9AuY/NI9KBW2eYAAAAA9MKgpKlWNgLl5ZP5SVPpg4X1GKpV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qYU8czBsH/m9Ke9V64LtGZppGfEuKXWk6mdefWgQ05RUpGVGdHFrpOpUVY8FuivF562eTlrsvHVg0NgcKaU/FAdKWvA9qvCUvYpZTwoG6HPa3aCTb1VFfyp7zfPCGMQ0Vfi4Grf6NU3l/ed981BPN9/PujUKYHErOlJMM6ucYaAb2KMAzI9khs3+kueFUyVNPVebfmz59u2PHToRnjYv2T9pCgAAAAC6q0qa2njfi/X79z557+51K3bMvhkaliRNAQAAAFisqqSpvRtf37rywBZ//1P3vbh2JDDMUJGmAAAAACxWxWnq4La3Hlu+olSmuAAADNNJREFUff2KnbuefOXj02f37dt38uiZLf70loemn/79vvUjO7f96UDeuqQpAAAAAItVcZracO+upx/YV79/3yu73n3+me3Lli1bunTpB28fe/rBvZt/t+fJX+/68z3b8tYlTQEAAABYrIrT1JaV+6dGD29defC1F99bsWLFPffcc8899yxduvTk0dO717/85G92PTu6L29d0hQAAACAxao4TR3Y8ubzDx989qHpV3a9u+6x9VGaWrZs2YEDuRf4pUhTAAAAABar4jR18uiZLX+cfvqBfS8++crB7W8+9qe1K1as2Pb0jo9Pny3MPKQpAAAAAItVcZo6f/78G42ZjfftXv9v23euO7z/+dent76+f+vrU2v2F2Ye0hQAAACAxao4TW3evLnZbB7a9tb6f9u55p6pybufG7/r2Ym7t/x5ee6XT6T6J00FnuM4juN4gfib4ziO4/q9+G+Woyai5i46pTp/UY8UAAAAqK4gTb377rvLli2LFnhj38wT9+58fHj748u3r12+/U/3PF+YefokTYW+G5/sB14SngIvCgCh7/YqCSRN9Gr57pJaL9WZhe05AAAAsDBMaercuXMrV66MvnNi8+bN58+fPxme3rvp1U0PvLjh3p0Htr1ZmHn6JE0lYUqcRRHSVG8mp0pnjB7mugqtk6YAAACAAqY0tXPnznvuuWflypXvvPNOtczTJ2kqOtcPPMf1fU+62E+MUqHvZh+KH4gTWBzGPE9/xWD7arf2w8kjSs3tRdpzZdlV5LWSKBg/6E0lq7h+mPx45ZXZ/ky1As9xXVepWu6P2nrgxSNVN4ewydSRAgAAAAMjN00dPXr0vvvu27lz57lz5ypnnn5KU9H8SSjMU0lzU+lP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" alt="" />
Bean的初始化和销毁的更多相关文章
- Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级
Spring bean的初始化和销毁有三种方式 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 优先级第二通过 <bean& ...
- Spring Boot实战笔记(三)-- Spring常用配置(Bean的初始化和销毁、Profile)
一.Bean的初始化和销毁 在我们的实际开发的时候,经常会遇到Bean在使用之前或之后做些必要的操作,Spring对Bean的生命周期操作提供了支持.在使用Java配置和注解配置下提供如下两种方式: ...
- spring boot之 Bean的初始化和销毁(4)
原文:https://blog.csdn.net/z3133464733/article/details/79189699 -------------------------------------- ...
- 四、Srping之Bean的初始化和销毁
Srping之Bean的初始化和销毁方法 通常,bean的初始化和销毁方法我们有三个地方可以入手,分别是: 自定义初始化,销毁方法 实现spring提供的InitializingBean(初始化逻辑) ...
- 12、生命周期-@Bean指定初始化和销毁方法
12.生命周期-@Bean指定初始化和销毁方法 Bean的生命周期:创建->初始化->销毁 容器管理bean的生命周期 我们可以自定义初始方法和销毁方法,容器在bean进行到当期那生命周期 ...
- 【Spring Framework】Spring注解设置Bean的初始化、销毁方法的方式
bean的生命周期:创建---初始化---销毁. Spring中声明的Bean的初始化和销毁方法有3种方式: @Bean的注解的initMethod.DestroyMethod属性 bean实现Ini ...
- Spring bean 实现初始化、销毁方法的方式及顺序
Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作,常用方法有三种: 使用注解,在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化之后还是 ...
- spring bean的初始化以及销毁
spring bean初始化或销毁时执行某些方法,有很多使用场景.比如初始化时,启动bean中的线程池.销毁时释放资源,个人比较喜欢实现InitializingBean和 DisposableBean ...
- Spring bean的初始化及销毁
Spring bean的几个属性:scope.init-method.destroy-method.depends-on等. Scope 在Spring容器中是指其创建的Bean对象相对于其他Bean ...
- @Bean 指定初始化和销毁方法
bean 的生命周期 bean 的创建 --> 初始化 --> 销毁 ioc 容器管理 bean 的声明周期 可以自定义初始化和销毁方法 构造器( 对象创建 )被调用时机 单实例:在容器启 ...
随机推荐
- Message Unable to connect to SQL Server '(local)'
最近在sql server 加了一些job,但是run job的时候发生了一下错误: ssage Unable to connect to SQL Server '(local)' 问题根源:调用 T ...
- kindeditor编辑区空格被隐藏,导致所见所得不一致的解决办法
1.修改kindereditor-all.js中的 var re = /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[ ...
- C++/CLI中的const literal initonly 友元(转)
C++/CLI中的const literal initonly 友元 C++/CLI中的const Visual C++并不允许在const对象上调用成员函数,除非该成员函数也被声明为const. C ...
- 斗鱼扩展--localStorage备份与导出(九)
之前我们都把数据 放在了 localStorage 里,但扩展一旦卸载,数据就会被清空, 在Console里备份,一次只能输出一条,小白操作起来很不方便,所以能不能 导入,导出文件来进行备份还原呢? ...
- java NIO、BIO、AIO全面剖析
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解.具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步 ...
- 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载
使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...
- vue的组件传输
vue的组件传输有四种,我个人觉得pubsub(订阅/发布)是最好用的,因为他不用去考虑关系,所以我们下面就只讲解pubsub吧 1) 优点: 此方式可实现任意关系组件间通信(数据) 首先我们需要 ...
- (八)JavaScript之[JSON]与[void]
14].JSONJSON 格式在语法上与创建 JavaScript 对象代码是相同的. 方法:JSON.parse(); //将JSON字符串转换为JavaScript对象JSON.stringify ...
- ASP.NET MVC 音乐商店 - 4. 数据访问
上一次,我们使用了模拟的数据从控制器发送到视图模板.现在,我们开始使用真正的数据库,在这个教程中,我们将指导如何使用 SQL Server Compact 版的数据库,它经常被称为 SQL CE, 来 ...
- 转:解决“arcsde服务启动又停止的问题” - shmiloy001的专栏 - 博客频道 - CSDN.NET
)查看原因 该问题产生的原因可查看文件:F:\Program Files\ArcGIS\ArcSDE\ora11gexe\etc\sde_esri_sde.log 文件中提示密码失 ...