Spring--4.bean管理(xml)
来源:互联网 发布:如何求矩阵的特征向量 编辑:程序博客网 时间:2024/06/09 16:30
1 常用属性,子标签
1.1 属性
1.2 子标签
1.3 作用域--scope属性
使用scope设置作用域
singleton :默认,单例的,初始化创建bean,整个生命周期只创建一个bean
prototype :原型的,初始化不创建bean,每次请求创建一个bean,并返回
1.4 字面值—处理特殊字符
字面值:可用字符串表示的值,可以通过 <value> 元素标签或 value 属性进行注入。
若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来。
<value><![CDATA[<北京>]]></value>
2 Bean 的生命周期-- init-method和destroy-method
2.1 生命周期方法
SpringIOC 容器可以管理 Bean 的生命周期, Spring 允许在 Bean 生命周期的特定点执行定制的任务.
SpringIOC 容器对 Bean 的生命周期进行管理的过程:
1. 通过构造器或工厂方法创建Bean 实例
2. 为 Bean 的属性设置值和对其他 Bean 的引用
3. 调用 Bean 的初始化方法
4. Bean 可以使用了
5. 当容器关闭时, 调用 Bean 的销毁方法
在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 Bean 指定初始化和销毁方法.
<bean id="car" class="spring.cycle.Car"init-method="init"destroy-method="destory"> <property name="brand"value="奥迪"></property> </bean>
2.2 创建 Bean 后置处理器
Bean后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理.
Bean后置处理器对 IOC 容器里的所有 Bean 实例逐一处理, 而非单一实例. 其典型应用是: 检查 Bean 属性的正确性或根据特定的标准更改 Bean 的属性.
对Bean 后置处理器而言, 需要实现BeanPostProcessor接口. 在初始化方法被调用前后, Spring 将把每个 Bean 实例分别传递给上述接口的以下两个方法:
<!-- 配置bean的后置处理器 --> <bean class="spring.cycle.MyBeanPostProcessor"></bean>
bean-cycle.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.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd"> <bean id="car"class="spring.cycle.Car" init-method="init" destroy-method="destory"> <property name="brand"value="奥迪"></property> </bean> <!-- 实现 BeanPostProcessor postProcessBeforeInitialization(Objectbean, String beanName):init-method()之前 postProcessAfterInitialization(Objectbean, String beanName):init-method()之后 的实现: bean:bean的实例本身 beanName:IOC容器的 bean 名字 返回值:是实际上返回给用户那个bean,注意:可以修改bean,对应好就行,甚至返回一个新的 bean --> <!-- 配置bean的后置处理器:不需要配置ID, IOC容器自动识别是一个 BeanPostProcessor--> <bean class="spring.cycle.MyBeanPostProcessor"></bean> </beans>
MyBeanPostProcessor
package spring.cycle; import org.springframework.beans.BeansException;importorg.springframework.beans.factory.config.BeanPostProcessor; public class MyBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessAfterInitialization:" + bean +","+beanName); Car car = new Car(); car.setBrand("宝马"); return car; } @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessBeforeInitialization:" + bean +","+beanName); return bean; }}Car
package spring.cycle; public class Car { private String brand ; public String getBrand() { return brand; } public void setBrand(String brand) { System.out.println("为属性赋值:setBrand..."+brand); this.brand = brand; } public Car() { System.out.println("Car启动..."); } public void init(){ System.out.println("初始化..."); } public void destory(){ System.out.println("销毁..."); } @Override public String toString() { return "Car[brand=" + brand + "]"; }}
2.3 添加 Bean 后置处理器后 Bean 的生命周期
过程:
1. 通过构造器或工厂方法创建Bean 实例
2. 为 Bean 的属性设置值和对其他 Bean 的引用
3. 将 Bean 实例传递给 Bean 后置处理器的postProcessBeforeInitialization 方法
4. 调用 Bean 的初始化方法
5. 将 Bean 实例传递给 Bean 后置处理器的postProcessAfterInitialization方法
6. Bean 可以使用了
7. 当容器关闭时, 调用 Bean 的销毁方法
- Spring--4.bean管理(xml)
- spring的bean管理方式(xml)
- Spring--3.bean管理 控制反转(xml)
- Spring--5.bean管理 依赖注入(xml)
- Spring的bean管理(xml方式)之Bean实例化的方式
- Spring(4)Spring的bean管理
- web读取spring管理的bean,基于xml
- Spring bean.xml location
- spring bean xml configuration
- spring读xml bean
- spring-bean.xml配置文件
- Spring XML配置文件Bean
- Spring的bean管理(注解)
- Spring的bean管理(注解方式)
- Spring Bean基本管理
- Spring 管理Bean
- spring管理bean原理
- spring管理bean生命周期
- Ajax请求中的async:false/true的作用
- Java 手机号,电话号验证
- 提高代码可读性的10个技巧
- DP第二周作业
- bugdone使用
- Spring--4.bean管理(xml)
- js创建对象几种方式
- c++类指针
- 阿里发布的规约插件
- MongoDB sharding模式实现(http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28266791&id=5758139 )
- Altium Designer 16快捷键列表
- 设计模式【状态模式State Pattern】
- 监听、控制软键盘的弹出和收起
- Init进程笔记