Spring框架之IOC(续)

来源:互联网 发布:新网域名管理 编辑:程序博客网 时间:2024/06/06 17:31
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注解
原创粉丝点击