使用属性的setter方法注入

使用属性的setter方法注入

将A类的一个Bean看作类B的一个属性,并类B通过setter方法实现Bean的实例化,即声明变量。

使用setter方法注入是Spring框架中最主流的注入方式,利用Java Bean规范所定义的setter方法来完成注入,灵活且可读性高。

1、创建接口及接口的实现类
在com.itheima.ioc包中创建UserService接口、UserServiceImpl接口实现类,并通过setter方法依赖注入UserDao对象。

package com.itheima.ioc;

public class UserServiceImpl implements UserService {
	
	//声明UserDao属性
	private UserDao userDao;
	
	//添加UserDao属性setter方法,用来实现以来注入
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void say() {
		//调用userDao中的say方法,执行输出语句
		this.userDao.sayHello();
		//重写接口的抽象方法
		System.out.println("userService says hello world!");
	}

}

2、将UserServiceImpl类托管给Spring
将UserService类托管给Spring,让Spring来创建对象,同时调用setter方法完成依赖注入。

<!-- 添加一個userService的實例 -->
    <bean id="userService" class="com.itheima.ioc.UserServiceImpl">
    	<!-- 使用setter方法将id为userDao的Bean实例注入到userService实例当中 -->
    	<property name="userDao" ref="userDao"></property>
    </bean>

3、在TestDI中测试setter方法注入

package com.itheima.ioc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDI {

	public static void main(String[] args) {
		//1、初始化Spring容器,加载配置文件
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	
		
		//2、通过容器获取userService实例
		UserService userService = (UserService)applicationContext.getBean("userService");
		
		//3、调用实例中的say方法
		
		userService.say();

	}

}

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值