Spring学习笔记(1)(二)

2014-11-24 09:24:04 · 作者: · 浏览: 4
ontext--应用层面容器(提供访问环境资源信息的相关方法)

ApplicationContext getParent()--容器层结构的概念

ApplicationContext会在初始化的自动加载单例Bean。而BeanFactory在初始化的时候不会加载。

应用上下文ApplicationContext是建立在BeanFactory基础上的一种更高层次的Spring IOC容器,其除了具有普通BeanFactory的全部功能以外,还加入了资源访问、事件传播及自动载入上下文等跟应用程序紧密相关的功能。

在J2EE应用程序中,大多数时候都直接使用应用上下文件ApplicationContext,比如Web应用等,而且一般不会在程序中使用代码来加载应用程序上下文,而是采用声明的方式,在应用程序启动的过程中自动加载应用程序上下文。

5.三种实例化Bean的方式
5.1通过构造函数
默认无参构造函数,也可以使用带参数的。

(1)无参数的构造函数

publicPerson() {

System.out.println("初始化person");

}

(2) 无参数的配置

(3)带参数的构造函数

public Person(String name) {

this.name= name;

System.out.println("创建Person,构造函数1");

}

(4)带参数的配置

5.2使用静态工厂方法
(1)无参的工厂类

public class PersonFactory {

publicstatic Person createPerson(){

System.out.println("createPerson()...");

return new Person();

}

}

(2) 无参的配置

(3)带参数的工厂方法

public class PersonFactory {

publicstatic Person createPerson(String name){

System.out.println("createPerson()...222222");

returnnew Person(name);

}

}

(4) 带参数的配置

5.3使用动态工厂方法
(1)工厂类

public class PersonFactoryFamily {

privateString family;

publicvoid setFamily(String family) {

this.family= family;

}

public Person createPerson(){

System.out.println("createPerson()...");

returnnew Person(family+":");

}

public Person createPerson(String name){

System.out.println("createPerson()...2");

returnnew Person(family+":"+name);

}

}

(2)配置

factory-method="createPerson"(指明调用工厂类的哪个方法)>

6. Bean的作用域(存活期)
1)singleton(默认值)

在每个Spring IoC容器中一个bean定义只有一个对象实例(共享)。

默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:

如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“,如下:

autowired属性的取值:

byName:按名称自动装配,不会装配基本类型。

byType:按类型自动装配

constructor:会按照构造函数参数的类型来自动装配.会选择参数最多的一个来,依次查询参数个数少的。