文档章节

spring: bean初始化和销毁方法

蜡笔小小小新
 蜡笔小小小新
发布于 2015/03/14 21:29
字数 328
阅读 18
收藏 0
点赞 0
评论 0
package exm.spring.bean;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class User implements InitializingBean, DisposableBean{
	
	private String name;
	
	private String password;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 在bean销毁之前调用
	 */
	@Override
	public void destroy() throws Exception {
		
		System.out.println("--------destroy()--------");
	}

	/**
	 * 在bean设值注入之后调用
	 */
	@Override
	public void afterPropertiesSet() throws Exception {
		
		System.out.println("--------afterPropertiesSet()--------");
		
	}
	
	public void initBean()
	{
		System.out.println("<init-method>");
	}
	
	public void destroyBean()
	{
		System.out.println("<destroy-method>");
	}

}



package exm.spring.bean;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
	
	public static void main(String[] args)
	{
		ApplicationContext aac = new ClassPathXmlApplicationContext("bean.xml");
		
		Service service = aac.getBean("service", Service.class);
		
		//每次从Service得到的User都不一样
		System.out.println(service.createUser());
		System.out.println(service.createUser());
		
		((ClassPathXmlApplicationContext)aac).close();
	}
}


<!-- 配置文件 -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:p="http://www.springframework.org/schema/p"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <bean id="user" class="exm.spring.bean.User" scope="prototype" init-method="initBean" destroy-method="destroyBean">
        </bean>
        
        <!-- 如果要在Service中每次获得User,则在配置中User不要注入到Service -->
        <bean id="service" class="exm.spring.bean.Service">
        </bean>
        
</beans>


© 著作权归作者所有

共有 人打赏支持
蜡笔小小小新
粉丝 32
博文 114
码字总数 75210
作品 0
深圳
后端工程师
Spring中管理Bean依赖注入之后和Bean销毁之前的行为

对于Singleton作用域的Bean,Spring容器将会跟踪它们的生命周期,容器知道何时实例化结束、何时销毁。Spring可以管理Bean在实例化结束之后和Bean销毁之前的行为。 Bean依赖关系注入之后的行为...

摆渡者
2014/03/06
0
0
spring Bean 生命周期

spring中Bean的生命周期 实例化----》填充属性-------》调用BeanNameAware的setBeanName()方法-------》调用BeanFactoryAware的 setBeanFactory()方法---------》调用ApplicationContextA...

地瓜2013
2014/04/21
0
0
Spring中Bean的生命周期及其扩展点

Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring中Bean的生命周期: 解说: (1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某个IoC容器内添加了实现了B...

超人归来007
06/10
0
0
Spring Boot Bean生命周期

注:Spring Boot Bean的生命周期,什么是Bean的生命周期,就是Bean从创建到销毁的过程。 Bean的生命周期过程描述 我们先看一下Bean的生命周期过程中都会经历些什么,我先简单解释一下,后面我...

爱编程的帅小伙
07/12
0
0
9.01-Spring IOC 容器中Bean的生命周期

Spring IOC 容器可以管理Bean的生命周期,Spring 允许在Bean的生命周期的特定点执行定制的任务。 Spring IOC 容器中 Bean 的生命周期如下: ① . 通过构造器或工厂方法创建 Bean 实例 : 调用...

静以修身2025
06/27
0
0
Spring(Lifecycle)

Jetty/Spring初始化: Jetty/Spring api: Bean生命周期之初始化: 1.容器寻找Bean的定义信息并且将其实例化。 2.容器对Bean进行依赖注入,Spring按照Bean定义信息配置Bean的所有属性。 3.如果B...

赵-猛
2017/04/11
0
0
Spring核心——Bean的定义与控制

在前面两篇介绍Sring核心与设计模式的文章中,分别介绍了Ioc容器和Bean的依赖关系。如果阅读过前2文就会知道,Spring的整个运转机制就是围绕着IoC容器以及Bean展开的。IoC就是一个篮子,所有...

随风溜达的向日葵
06/28
0
0
Spring Framework 4.0 官方文档核心内容整理之 --- XML方式配置Bean

Spring Framework 4.0 官方文档核心内容整理之 --- XML方式配置Bean Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一...

TOTOTO_TOTO
2013/12/17
0
0
Spring中关于bean的作用域与生命周期

在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什...

忻胜霄
06/07
0
0
使用Spring2.5的Autowired实现注释型的IOC

使用Spring2.5的新特性——Autowired可以实现快速的自动注入,而无需在xml文档里面添加bean的声明,大大减少了xml文档的维护。(偶喜欢这个功能,因为偶对xml不感冒)。 以下是一个例子: 先...

沉默的子明
2014/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spark Streaming + Kafka Integration Guide

The Spark Streaming integration for Kafka 0.10 is similar in design to the 0.8 Direct Stream approach. It provides simple parallelism, 1:1 correspondence between Kafka partition......

刺猬一号
10分钟前
0
0
数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 在这个数组中存储的数据类型是long型,使用long型为的是表明这是数据,而int型被用来表示下标。通常数据结构存储的数据项包含有好几个字段,所...

沉迷于编程的小菜菜
20分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
21分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
53分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
58分钟前
2
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
2
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部