Spring框架之IOC(续)

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注解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值