0
点赞
收藏
分享

微信扫一扫

spring-bean依赖注入-03


set注入:​​set注入地址​​

通过构造方法进行注入
1.创建UserDao接口以及UserDaoImpl实现类(接口代码省略)

public class UserDaoImpl implements UserDao {

@Override
public void save1() {
System.out.println("save running...");
}
}

2.创建UserService接口以及UserServiceImpl实现类(接口代码省略)

public class UserServiceImpl implements UserService {

private UserDao userDao;

public UserServiceImpl() {
}

public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}

@Override
public void sava() {
userDao.save1();
}
}

3.spring配置文件applicationContext.xml的操作

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"/>
<bean id="userService" class="com.hao.service.impl.UserServiceImpl">
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
</beans>

其中的bean标签都是设置唯一标识id和类位置,然后第二个bean标签中使用了子标签constructor-arg,name属性是UserServiceImpl中的属性值userDao

spring-bean依赖注入-03_bean


然后ref引用的是spring容器中第一个bean标签userDao的唯一标识id

4.创建测试类-controller层

public class UserController {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService service = (UserService) context.getBean("userService");
service.sava();


}
}

结果:sava running . . .

执行流程,
1.加载配置文件,创建spring容器,在容器中创建UserService对象和UserDao对象--------》为什么还没有从外部获取UserService对象就创建了呢?请访问链接:​​​scope标签的作用​​​ 2.在spring容器中创建对象时,通过有参构造进行注入,然后把对象赋给UserServiceImpl中的属性UserDao
3.从容器中获取UserService对象
4.调用方法


举报

相关推荐

0 条评论