Spring4-@PostConstruct和@PreDestroy注解的使用
1.创建Maven项目,项目名称springdemo42,如图所示
2.配置Maven,修改项目中的pom.xml文件,修改内容如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>1.0.0</modelVersion><groupId>shequ</groupId><artifactId>springdemo13</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>1.7</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><repositories><repository><id>codelds</id><url>https://code.lds.org/nexus/content/groups/main-repo</url></repository></repositories><dependencies><dependency><groupId>javax.annotation</groupId><artifactId>jsr250-api</artifactId><version>1.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.4.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.1.4.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.34</version></dependency></dependencies><build/> </project>
3.在src/main/java下创建实体Bean Forum,包名(com.mycompany.shequ.bean)如图所示
4.实体Bean Forum的内容如下
package com.mycompany.shequ.bean;public class Forum {private int fid;private String name;private int displayOrder;public int getDisplayOrder() {return displayOrder;}public void setDisplayOrder(int displayOrder) {this.displayOrder = displayOrder;}public int getFid() {return fid;}public void setFid(int fid) {this.fid = fid;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "{fid=>"+this.fid+",name=>"+this.name+",displayOrder=>"+this.displayOrder+"}";} }
5.在src/main/java下创建接口IForumService,包名(com.mycompany.shequ.service)如图所示
6.接口IForumService的内容如下
package com.mycompany.shequ.service;import com.mycompany.shequ.bean.Forum;public interface IForumService {public Forum findForumById(int fid); }
7.在src/main/java下创建接口IForumService的实现类ForumServiceImpl,包名(com.mycompany.shequ.service.impl)如图所示
8.接口IForumService的实现类ForumServiceImpl的内容如下
package com.mycompany.shequ.service.impl;import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;import com.mycompany.shequ.bean.Forum; import com.mycompany.shequ.service.IForumService;public class ForumServiceImpl implements IForumService {@PreDestroypublic void destroyMethod(){System.out.println("destroy-method");}@PostConstructpublic void initMethod(){System.out.println("init-method");}public Forum findForumById(int fid) {Forum forum = new Forum();forum.setName("init-method 与 destroy-method");return forum;} }
9.在src/main/resource下创建bean的配置文件spring-bean.xml,如图所示
10.配置文件spring-bean.xml的内容如下
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd"><context:annotation-config /><bean id="forumservicebean" class="com.mycompany.shequ.service.impl.ForumServiceImpl"></bean> </beans>
11.在src/main/resource下创建核心的配置文件applicationContext.xml,如图所示
12.核心的配置文件applicationContext.xml的内容如下
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><import resource="bean/spring-bean.xml"/></beans>
13.在src/test/java下创建测试文件AppTest,包名(com.mycompany.shequ.test)如图所示
14.测试文件AppTest的内容如下
package com.mycompany.shequ.test;import org.junit.Test; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.mycompany.shequ.service.IForumService;public class AppTest {@Testpublic void beanTest(){ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");IForumService forumService = (IForumService)context.getBean("forumservicebean");System.out.println(forumService.findForumById(1));context.close();} }
15.在测试类AppTest的beanTest方法上右键运行,输出结果如图所示
本文转自 素颜猪 51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1910117
Spring4-@PostConstruct和@PreDestroy注解的使用相关推荐
- @PostConstruct、@PreDestroy注解介绍及Spring中@PostConstruct、constructor、@Autowired的顺序
@PostConstruct和@PreDestroy @PostConstruct和@PreDestroy注解是Common Annotations中的注解,Common Annotations原本是 ...
- Spring生命周期注解之@PostConstruct,@PreDestroy
目录 1. 注解说明 2. 调用过程 3. 调用分析 1. 注解说明 @PostConstruct,@PreDestroy是Java规范JSR-250引入的注解,定义了对象的创建和销毁工作,同一期规范 ...
- Spring @PostConstruct和@PreDestroy实例
在Spring中,既可以实现InitializingBean和DisposableBean接口或在bean配置文件中指定 init-method 和 destroy-method 在初始化和销毁回调函 ...
- 注解@PostConstruct与@PreDestroy
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstruct和@PreDestroy.这两个注解被用来修饰一个非静态的vo ...
- 注解 @PostConstruct 与 @PreDestroy 详解及实例
简介 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Java EE5 引入了@PostConstruct和@PreDestroy这两个作用于Ser ...
- spring注解( @Autowired、@Qualifier、@Resource、@PostConstruct、@PreDestroy、 @Component、@Scope)-描述的比较清楚
概述: 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 P ...
- Spring学习总结(25)——注解@PostConstruct和@PreDestroy使用总结
@PostConstruct 和 @PreDestroy 这两个都是方法的注解,将注解标注在方法上,该方法就能够在应用启动和销毁时执行, @PostConstruct 注解标注的函数,是在类执行完构造 ...
- 【Spring注解系列08】@PostConstruct与@PreDestroy
1.@PostConstruct与@PreDestroy @PostConstruct:在bean创建完成并且属性赋值完成:来执行初始化方法 @PreDestroy:在容器销毁bean之前通知我们进行 ...
- PostConstruct和PreDestroy失效
问题:PostConstruct 和 PreDestroy 失效 说明 今天遇到问题,在使用 Spring的两个注解的过程当中,出现了失效的情况. 也就是 @PostConstruct 和 @PreD ...
- 【JPA】注解@PostConstruct、@PreDestroy
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解@PostConstruct和@PreConstruct. 这两个注解被用来修饰一个非静态的void()方法,而且这 ...
最新文章
- C语言十进制转换成二进制源码
- 正确实现用spring扫描自定义的annotation
- 隐藏Nginx和PHP版本号
- 宿松长铺程集高中2021年高考成绩查询,2017宿松程集中学录取分数线(附2017高考成绩喜报)...
- 剑指offer 算法(树的两个节点的最低祖先)
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
- Android入门:DDMS视图
- echarts的x轴数量固定_联轴器 多节膜片式夹紧螺丝固定型 DAAPC(对应LK5CWP)
- 计算机中那些事儿(五):我与Dos的不解情缘---应用篇
- PHP7.1安装memcaehd扩展
- Python Sorted Containers
- multiprocessing.manager管理的对象需要加锁吗_龙伯推出超强员工档案管理系统,用户可以100%...
- 如何在php中针对距现在时间长短显示不同时间格式
- 知识点篇:8.1)坑爹的面试问题--选定轴孔配合公差等级
- 完成“LPS node 与Crazyflie在TWR协议下的成功双向测距”实现心路历程总结
- CAD在画线的过程中显示长度和角度
- Android Proguard 不混淆所有第三方jar(忽略配置设置)
- ROS小车IMU、角速度、线速度等参数校验
- 片选,怎么看时序图,电路原理图
- python中line表示什么_Python里matplotlib的颜色及线条等控制(linestyle/marker/color,全)...
热门文章
- MySQL数据库查询重复数据办法
- 我的世界服务器为什么显示崩溃,我的世界服务器崩溃的指令 | 手游网游页游攻略大全...
- pycharm怎么做html网页_html下拉菜单怎么做
- ecshop mysql 报错_ecshop数据库操作函数
- c语言链表成绩管理系统排序,【C项目】 文件,结构体,链表,排序, 学生信息管理系统...
- 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
- viper4android最新,ViPER4Android FX音效驱动下载-ViPER4Android音效驱动 v2.4.0.1 正式版_手机乐园...
- python 图像压缩pca_在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
- 电脑版微信怎么看朋友圈_电脑上也可以看朋友圈,99%的人都不知道!
- mysql 压测结果_用mysqlslap压测mysql