spring的配置bean完成任务后如何自动销毁【springboot】
有时项目在初始化是会有一些配置类(bean) 加入ioc容器,在项目加载完成后该bean就没有用了,可以从ioc容器中销毁。具体如下:
bean
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Test implements CommandLineRunner,DisposableBean {
@Autowired
private ApplicationContext context; //注入ApplicationContext
@Override
public void run(String... args) throws Exception {
// TODO Auto-generated method stub
// do
DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory)context.getAutowireCapableBeanFactory();
Test t=(Test) defaultListableBeanFactory.getBean("test");//获取并打印
System.err.println(t);
defaultListableBeanFactory.removeBeanDefinition("test");//销毁自己
}
@Override
public void destroy() throws Exception {
// TODO Auto-generated method stub
System.err.println("销毁");
}
}
这样项目在启动的时候会执行run方法,执行完run方法后即可销毁自身
启动时打印:
销毁后如果再次获取bean就会发生错误:
评论区
请写下您的评论...
猜你喜欢
spring/springmvc
2787
创建一个MarkControllerMarkController类上有@RestController注解importorg.springframework.web.bind.annotation.RestController;/***@ClassNameMarkController*@Description:TODO*@AuthorJiajiajia*@VersionV1.0**/@RestCon
jenkins,软件使用
1667
-Git一、新建任务填写任务名字,选择Freestyleproject点击确定二、General配置在General配置中,填写任务描述。可以点击高级,选中“使用自定义的工作空间”选项,配置任务的工作目录
java项目
1394
springboot+mybatis配置多数据源并利用aop实现自动切换(demo)
weblog
2477
配置类importjavax.servlet.ServletContext;importjavax.servlet.annotation.WebListener
java基础,springboot
1737
。
二、配置springboot服务 要将程序注册成服务,必须保证jar有执行(下面例子中的x)的权限,否则服务无法启动。
SystemVInit服务 SystemVInit服务都在目录/etc
框架
1932
springboot+mybatis配置多数据源并利用aop实现自动切换1.项目大致结构2.pom依赖dependencygroupIdorg.springframework.boot
official
2838
BeanPostProcessor是SpringIOC容器给我们提供的一个扩展接口。,他的作用主要是如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化前后添加一些自己的逻辑处
ofc
什么是Bean生命周期?
official
794
Bean生命周期描述的是Spring中一个Bean创建过程和销毁过程中所经历的步骤,其中Bean创建过程是重点。程序员可以利用Bean生命周期机制对Bean进行自定义加工。
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。