实体bean
package com.sfox.spring.aop;
public class Book {
public Book(){
System.out.println("构造方法运行.....");
}
public void init(){
System.out.println("初始化方法.......");
}
public void add(){
System.out.println("book...method....");
}
public void destory(){
System.out.println("销毁方法........");
}
}
配置实例化实体 bean 方式
默认情况下,实体在启动Spring 容器时被实例。在bean中添加属性lazy-init="true"延迟初始化,在启动Spring容器时布会被实例,只有在调用时才会被实例。也可以再beans根标签中添加全局的延迟初始化属性:default-lazy-init="true"。
<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->
<bean id="book" class="com.sfox.spring.aop.Book" lazy-init="true" init-method="init" destroy-method="destory"/>
</beans>
设置bean的初始化调用方法和销毁方法
在实体bean中添加初始化方法和销毁方法,在bean 标签中用属性init-method="init" 添加初始化方法,用destroy-method="destory" 添加销毁方法。
<bean id="book" class="com.sfox.spring.aop.Book" lazy-init="true" init-method="init" destroy-method="destory"/>
执行顺序
- 先对类进行实例,执行构造函数
- 然后在执行初始化方法
- 最后执行销毁方法
启动容器和关闭容器的方法
用ClassPathXmlApplicationContext 方法实现了AbstractApplicationContext接口,可以调用ClassPathXmlApplicationContext中的close 方法对容器进行关闭。
public class AopTest {
@Test
public void testBean(){
AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Book book = (Book) context.getBean("book");
book.add();
context.close();
}
}