Spring还使用基于 JSR-250 注释,它包括 @PostConstruct, @PreDestroy 和 @Resource 注释。

@PostConstruct 和 @PreDestroy 注释

为了定义一个 bean 的安装和卸载,我们使用 init-method 和/或 destroy-method 参数简单的声明一下 。init-method 属性指定了一个方法,该方法在 bean 的实例化阶段会立即被调用。同样地,destroy-method 指定了一个方法,该方法只在一个 bean 从容器中删除之前被调用。

你可以使用 @PostConstruct 注释作为初始化回调函数的一个替代,@PreDestroy 注释作为销毁回调函数的一个替代,看一个具体的例子来学习。

HelloWorld:


package com.sap;import javax.annotation.*;public class HelloWorld {private String message;public void setMessage(String message){this.message = message;}public String getMessage(){System.out.println("Your Message : " + message);return message;}@PostConstructpublic void init(){System.out.println("Bean is going through init.");}@PreDestroypublic void destroy(){System.out.println("Bean will destroy now.");}}

在Main.app里注册一个关闭钩 registerShutdownHook() 方法,该方法在 AbstractApplicationContext 类中被声明。


import org.springframework.context.support.AbstractApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp {public static void main(String[] args) {AbstractApplicationContext context =new ClassPathXmlApplicationContext("Beans.xml");HelloWorld obj = (HelloWorld) context.getBean("helloWorld");obj.getMessage();context.registerShutdownHook();}}

Beans.xml:


<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:annotation-config/><bean id="helloWorld"class="com.sap.HelloWorld"init-method="init" destroy-method="destroy"><property name="message" value="Hello World!"/></bean></beans>

输出:

Spring中的Spring JSR-250 注释相关推荐

  1. spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding) 分析

    文章目录 问题描述 问题分析 到底allowBeanDefinitionOverriding应该设置true还是false? 问题描述 最近在学习spring cloud sleuth过程中,遇到了一 ...

  2. spring中 allowBeanDefinitionOverriding(spring.main.allow-bean-definition-overriding) 分析

    文章目录 问题描述 问题分析 到底allowBeanDefinitionOverriding应该设置true还是false? 问题描述 最近在学习spring cloud sleuth过程中,遇到了一 ...

  3. Spring中的Spring JSR-250 注释之@Resource

    @Resource注解相当于By Name装配方式. TextEditor: package com.sap;import javax.annotation.Resource; public clas ...

  4. Spring中@ Component,@ Service,@ Controller和@Repository之间的区别

    在了解Spring框架中@Repository @Component , @Service @Controller , @Repository @Controller和@Repository批注之间的 ...

  5. [读书笔记]Spring中BeanFactory和ApplicationContext的联系和区别

    写在前言 依赖反转是指依赖对象的获得被反转了.依赖控制反转的实现有很多方式,Spring中IOC容器是实现这个模式的载体,它可以在对象生成或初始化时直接将数据注入到对象中,也可以通过将对象引用注入到对 ...

  6. 浅谈Spring中的BeanFactory与FactoryBean

    前言 理解FactoryBean是非常非常有必要的,因为在Spring中FactoryBean最为典型的一个应用就是用来创建AOP的代理对象,不仅如此,而且对理解Mybatis核心源码也非常有帮助!如 ...

  7. Spring技术内幕——Spring Framework的IOC容器实现(一)

    一.SpringIOC容器概述 IOC容器和依赖反转的模式 在面向对象的系统中,对象封装了数据和对数据的处理,对象的依赖关系常常体现在对数据和方法的依赖上.这些依赖关系可以通过把对象的依赖注入交给框架 ...

  8. 初窥Spring中的注释

    目录 理论 例子 理论 常见的第三方注解: Spring @Autowired @Service @Repository 初步断定Spring中的主键就是代替了配置文件的繁重工作,具体等后期深入窥视. ...

  9. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

最新文章

  1. 牛客网(剑指offer) 第八题 跳台阶
  2. Google Guava EventBus和Java 7 WatchService用于事件编程
  3. Linux内核crypto子系统的调用逻辑
  4. [LeetCode]Search Insert Position
  5. 组合的输出(洛谷P1157题题解,Java语言描述)
  6. python字符串对比两项_Python之字符串比较is、==、__cmp__
  7. 将字符串转为16进制数_Python 如何将字符串转为字典
  8. 本周测试服务器角色转移系统仅开放转入,梦幻西游10月8日更新内容一览
  9. 44 The shopping psychology 购物心理
  10. 前端可视化开发-编辑器
  11. 设计模式系列之过滤器模式(Chriteria Pattern)
  12. 英语简历计算机能力描述,简历计算机水平描述
  13. 【Natural Language Processing】语言模型(Language Modeling)
  14. 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]
  15. ubuntu网站及数据库自动备份
  16. mysql数据库管理程序_mysql数据库之日常管理
  17. java基于接口的动态代理
  18. 南京工业大学计算机科学与技术研究生调剂,南京工业大学计算机科学与技术学院硕士研究生考试复试名单...
  19. 最新公众号今日头条自媒体视频课程
  20. [思维模式-10]:《如何系统思考》-6- 认识篇 - 结构决定功能,如何进行深度思考

热门文章

  1. Hadoop集群(第3期)_VSFTP安装配置
  2. [转]自定义序列化对象
  3. Vue.js—60分钟快速入门
  4. 剪刀,石头,布,小游戏脚本
  5. CTF python沙箱逃逸进阶题目
  6. javaScript执行环境、作用域链与闭包
  7. JQuery UI之Autocomplete(2)后端获取数据
  8. HEOI 2017 游记
  9. UnderScore的使用实例记录
  10. 编写程序输入一个5x5的矩阵,将最大元素与中心元素交换,并按行列对齐输出。...