Spring基础(8) : 延迟加载,Bean的作用域,Bean生命周期
1.延迟加载
<bean id="p" class="com.Person" lazy-init="true"/>
@Configuration
public class Config1 {
@Bean("p")
@Lazy(true)
public Person getPerson(){
return new Person();
}
}
2.Bean作用域
<bean id="p" class="com.Person" scope="singleton"/> //单例
<bean id="p" class="com.Person" scope="prototype"/> //原型
@Configuration
public class Config1 {
@Bean("p1")
@Scope("prototype")
public Person getP1(){
return new Person();
}
@Bean("p2")
@Scope("singleton")
public Person getP2(){
return new Person();
}
}
3.生命周期
public class Person {
public void init(){
System.out.println("init ");
}
public void destory(){
System.out.println("destory ");
}
}
<bean id="p" class="com.Person" init-method="init" destroy-method="destory"/>
public static void main(String[] args){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("a.xml");
Person p = context.getBean("p",Person.class);
context.close();
}
打印:
init
destory
public class Person {
@PostConstruct
public void init(){
System.out.println("init ");
}
@PreDestroy
public void destory(){
System.out.println("destory ");
}
}
public static void main(String[] args){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("a.xml");
Person p = context.getBean("p",Person.class);
context.close();
}
<?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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="p" class="com.Person"/>
<context:annotation-config />
</beans>
效果一样。

浙公网安备 33010602011771号