spring-bean依赖注入-03
2024-09-02 06:05:49
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
然后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.调用方法
最新文章
- asp.net mvc3登录验证
- android源码修改,实现长按电源键直接关机
- Hibernate的映射组件属性
- 浅谈rem、em、px
- [译]AngularJS中几种Providers(Factory, Service, Provider)的区别
- Linux命令中特殊符号
- js在输出时乱码
- 11. Evaluate Reverse Polish Notation
- android短信的接收和发送处理
- Java Servlet 回顾
- MVP快速开发框架
- appium点击屏幕(手势)
- 安装apache重启的时候,报错端口被占用,错误1
- java equals 心得体会
- [mysql]子查询与连接
- zoj 1610 Count the Colors(线段树延迟更新)
- CMSIS_RTOS_Tutorial自译中文版
- Laravel (5.5.33) 加载过程---instance方法(二)
- KnockOut 绑定之foreach绑定
- selenium 代理设置