Spring框架核心:IOC(控制反转,反转资源获取的方向)和AOP引用对象属性(ref)
<bean id="address" class="com.jredu.spring1.Address">
<property name="latitude" value="23.644543"></property>
<property name="longitude" value="116.529043"></property>
<property name="name" value="深圳"></property>
</bean>
<bean id="person" class="com.jredu.spring1.Person">
<property name="name" value="马化腾"></property>
<property name="sex" value="男"></property>
<property name="address" ref="address"></property>
</bean>
Person person=(Person) app.getBean("person");
System.out.println(person.getName()+",区域:"+person.getAddress().getName());
常用的集合List和Map的注入方法
<bean id="area" class="com.jredu.spring1.Areas">
<property name="list" >
<list>
<value>北京</value>
<value>上海</value>
<value>广州</value>
<value>厦门</value>
<value>杭州</value>
</list>
</property>
<property name="map">
<map>
<entry key="a" value="abc"></entry>
<entry key="b" value="boy"></entry>
<entry key="c" value="crisis"></entry>
</map>
</property>
</bean>
P方法的命名空间:
为了简化XML文件的配置,越来越多的XML文件采用属性,而非子元素配置信息。Spring从2.5版本开始引入了一个新的P命名空间,可以通过<bean>元素属性的方式配置Bean的属性。使用P命名空间后,基于XML的配置方式将进一步简化。
配置Bean的自动装配功能
Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式,常用模式:
byName(根据名称自动装配):必须将目标Bean的名称和属性名设置的完全相同。
byType(根据类型自动装配):若IOC容器中有多个与目标Bean类型一直的Bean,在这种情况下,Spring将无法判定哪个Bean最合适该属性,所以不能执行自动装配。
使用外部属性文件:
在配置文件里配置Bean时,有时需要在Bean的配置里加入系统部署的细节信息(例如:文件路径,数据源配置信息等),而这些部署细节实际上需要和Bean配置相分离,这样更有利于维护工作。
@Autowired自动装配Bean
@Autowired注解自动装Bean
构造器,普通字段(即使是非public),一切具有参数的方法都可以应用@Authwired注解
@Authwired注解具有required属性
@Authwired注解也可以应用在数组类型的属性上
@Authwired注解也可以应用在集合属性上
@Authwired注解用在java.util.Map上
@Resource或@Inject
Spring还支持@Resource和偶@Inject注解,这两个注解和@Autowired注解的功用类似
@Resource注解要求提供一个Bean名称的属性,若该属性为空,则自动采用标注处的变量或方法名作为Bean的名称。
@Inject和@Autowired注解一样也是按类型匹配注入的Bean,但没有required属性
建议使用@Autowired注解