applicationContext.xml文件配置:
bean元素:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "> <!--将User对象交给Spring容器管理 --> <!--Bean元素:使用该元素描述需要Spring容器管理的对象 class属性:被管理对象的完整类名 name属性:给被管理的对象起一个名字,获得对象时根据该名称获得对象 可以重复,可以使用特殊字符 id属性:与name属性一模一样 名称不可重复,不能使用特殊字符 结论:尽量使用name属性。 --> <!-- 空参构造方式 --> <bean name="user" class="cn.itcast.bean.User"></bean> <!-- P名称空间注入 --> <bean name="user" class="cn.itcast.bean.User" p:name="jake" p:age="20"> </bean> </beans>
spring创建对象的方式
(1)空参构造方式
<!-- 空参构造方式 --> <bean name="user" class="cn.itcast.bean.User"></bean>
(2)静态工厂
<!--静态工厂创建方式 --> <bean name="user"
class="cn.itcast.bean.UserFactory"
factory-method="createUser"></bean>
(3)实例工厂
配置:
Bean元素进阶
<bean name="user" class="cn.itcast.bean.User" scope=" "></bean>
scope属性
singleton(默认值):单例对象,在spring中只创建一个实例。
prototype(多例模型):每次再获得才会创建,每次创建都是新的对象。【Struts 中的action配置为多例】
生命周期属性:
配置
模块化配置:
导入其他配置文件
属性注入(重点):
set方法注入:
构造方法注入:
java代码:
为了防止构造参数中顺序不同可以如下配置:
参数类型:
p名称空间注入:
spel输入:
值类型注入,其他对象的值,设置当前的值:
复杂类型的注入:
setter与getter方法
配置文件:
list类型:
map类型注入:
prop类型注入: