spring
1.spring-iop
- XMl配置方式 工厂+反射+配置文件
使用方式
ApplicationContext applicationContext = new
//ClassPathXmlApplicationContext 获取文件路基下的配置文件
//FileSystemXmlApplicationContext 加载文件系统下的配置文件
ClassPathXmlApplicationContext("applicationContext.xml");
Car car = (Car) applicationContext.getBean("car");
System.out.println(car.toString());
- xml 配置文件
<?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">
<!-- Spring的入门的配置==================== -->
<!-- <bean name="user" class="com.lixinxinlove.User"
</bean> -->
<!-- scope="prototype" 多利 singleton 单利 默认单利 多利 不销毁 -->
<!-- <bean name="user" class="com.lixinxinlove.User"
scope="singleton"
init-method="setup"
destroy-method="destroy" >
<property name="name" value="李东"/>
<property name="password" value="123456789"/>
</bean> -->
<!-- set 注入 -->
<!-- <bean name="user" class="com.lixinxinlove.User"
scope="singleton"
init-method="setup"
destroy-method="destroy" >
<property name="name" value="李东"/>
<property name="password" value="123456789"/>
</bean> -->
<bean name="car1" class="com.lixinxinlove.Car" >
<property name="name" value="QQ"/>
<property name="price" value="11111"/>
</bean>
<!-- 构造 注入 -->
<!-- <bean name="user" class="com.lixinxinlove.User" >
<constructor-arg name="name" value="lixinxin"/>
<constructor-arg name="password" value="123456789"/>
</bean> -->
<!-- ref 引用其他对象类型 ref 和 p 空间冲突 -->
<!-- <bean name="user" class="com.lixinxinlove.User" >
<property name="name" value="李东"/>
<property name="password" value="123456789"/>
<property name="car" ref="car1"/>
</bean> -->
<!-- <bean name="user" class="com.lixinxinlove.User"
p:name="lixinxin"
p:password="11111111"
p:car-ref="car1"
>
</bean> -->
<!-- SpEl 方式注入-->
<bean name="car" class="com.lixinxinlove.Car" >
<property name="name" value="#{'宝马'}"/>
<property name="price" value="#{100000}"/>
</bean>
<bean name="user" class="com.lixinxinlove.User">
<property name="name" value="#{'lixinxin'}"/>
<property name="password" value="#{'111111'}"/>
<property name="car" value="#{car}"/>
</bean>
</beans>
1.5.2.2Bean的生命周期的配置(了解)
- init-method :Bean被初始化的时候执行的方法
- destroy-method :Bean被销毁的时候执行的方法(Bean是单例创建,工厂关闭)
Bean的作用范围的配置(重点)
scope :Bean的作用范围
singleton :默认的,Spring会采用单例模式创建这个对象。
prototype :多例模式。(Struts2和Spring整合一定会用到)
request :应用在web项目中,Spring创建这个类以后,将这个类存入到request范围中。
session :应用在web项目中,Spring创建这个类以后,将这个类存入到session范围中。
globalsession :应用在web项目中,必须在porlet环境下使用。但是如果没有这种环境,相对于session。
Spring的Bean的实例化方式
-
实例工厂实例化的方式
-
构造方法的方式的属性注入
-
Set方法的方式的属性注入
-
P名称空间的属性注入(Spring2.5以后)
普通属性 p:属性名=”值”
对象属性 p:属性名-ref=”值” -
SpEL的属性注入(Spring3.0以后)
Spring的分模块开发的配置
- 在加载配置文件的时候,加载多个
ApplicationContext applicationContext = new
ClassPathXmlApplicationContext
("applicationContext.xml","applicationContext2.xml");
- 在一个配置文件中引入多个配置文件
<impotr resource="applicationContext2.xml"/>
网友评论