Spring实现属性注入的三种方式

第一种,通过使用xml配置的方式

此方式需要在applicationContext.xml文件中配置bean的方式完成

<bean id="customerService" class="com.w.demo3.CustomerServiceImpl">
		<property name="p1" ref="p1"/>
		<property name="p2" ref="p2"/>
		</bean>
		<bean id="p1" class="com.w.demo3.Product1DaoImpl"></bean>
		<bean id="p2" class="com.w.demo3.Product2DaoImpl"></bean>

同时需要在service层对属性添加set方法


	private Product1DaoImpl p1;
	
	private Product2DaoImpl p2;

	

	public void setP1(Product1DaoImpl p1) {
		this.p1 = p1;
	}



	public void setP2(Product2DaoImpl p2) {
		this.p2 = p2;
	}

这样就可以实现属性的注入了。

第二种方式是纯注解型

需要在applicationContext.xml文件中配置开启扫描组件注解

<context:component-scan
		base-package="com.w.demo3" /> 

然后再service层的每个DaoImpl中添加@Autowired

    @Autowired
	private Product1DaoImpl p1;
	@Autowired
	private Product2DaoImpl p2;

不用设置set方法,这样就实现了第二种属性注入了。

第三种是xml和注解混合的方式。

需要在applicationContext.xml文件中配置开启注解

<context:annotation-config/> 
<bean id="customerService" class="com.w.demo3.CustomerServiceImpl">
		
		</bean>
		<bean id="p1" class="com.w.demo3.Product1DaoImpl"></bean>
		<bean id="p2" class="com.w.demo3.Product2DaoImpl"></bean>

然后再service层中添加@Resource

	@Resource(name="p1")
	private Product1DaoImpl p1;
	@Resource(name="p2")
	private Product2DaoImpl p2;

不需要设置set方法,这样可以实现第三种方式注入了,希望对你有帮助。喜欢的朋友可以关注我微信的公众号:从小白到架构师。我会每天更新学习内容的。

发布了28 篇原创文章 · 获赞 9 · 访问量 8809

猜你喜欢

转载自blog.csdn.net/wb785074651/article/details/100633070