温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Bean中初始化和销毁的示例分析

发布时间:2021-07-15 11:27:12 来源:亿速云 阅读:137 作者:小新 栏目:编程语言

这篇文章主要介绍了Spring Bean中初始化和销毁的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

具体如下:

一 点睛

在开发过程中,经常遇到在Bean使用之前或者之后做一些必要的操作,Spring对Bean的生命周期的操作提供了支持。

1 Java配置方式:使用@Bean的initMethod和destroyMethod。

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.ch3.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.ch3.prepost; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; public class JSR250WayService {   @PostConstruct //在构造函数执行之后执行   public void init(){     System.out.println("jsr250-init-method");   }   public JSR250WayService() {     super();     System.out.println("初始化构造函数-JSR250WayService");   }   @PreDestroy //在Bean销毁之前执行   public void destroy(){     System.out.println("jsr250-destory-method");   } }

4 编写配置类

package com.wisely.highlight_spring4.ch3.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.ch3.prepost") public class PrePostConfig {   //initMethod和destroyMethod指定BeanWayService类的   //init和destroy方法在构造函数之后、Bean销毁之前执行   @Bean(initMethod="init",destroyMethod="destroy")   BeanWayService beanWayService(){     return new BeanWayService();   }   @Bean   JSR250WayService jsr250WayService(){     return new JSR250WayService();   } }

5 编写主类

package com.wisely.highlight_spring4.ch3.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();   } }

三 测试

八月 06, 2018 9:53:47 下午 org.springframework.context.annotation.AnnotationConfigApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1f17ae12: startup date [Mon Aug 06 21:53:47 CST 2018]; root of context hierarchy
初始化构造函数-BeanWayService
@Bean-init-method
初始化构造函数-JSR250WayService
jsr250-init-method
八月 06, 2018 9:53:47 下午 org.springframework.context.annotation.AnnotationConfigApplicationContext doClose
信息: Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@1f17ae12: startup date [Mon Aug 06 21:53:47 CST 2018]; root of context hierarchy
jsr250-destory-method
@Bean-destory-method

感谢你能够认真阅读完这篇文章,希望小编分享的“Spring Bean中初始化和销毁的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI