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.调用方法

最新文章

  1. asp.net mvc3登录验证
  2. android源码修改,实现长按电源键直接关机
  3. Hibernate的映射组件属性
  4. 浅谈rem、em、px
  5. [译]AngularJS中几种Providers(Factory, Service, Provider)的区别
  6. Linux命令中特殊符号
  7. js在输出时乱码
  8. 11. Evaluate Reverse Polish Notation
  9. android短信的接收和发送处理
  10. Java Servlet 回顾
  11. MVP快速开发框架
  12. appium点击屏幕(手势)
  13. 安装apache重启的时候,报错端口被占用,错误1
  14. java equals 心得体会
  15. [mysql]子查询与连接
  16. zoj 1610 Count the Colors(线段树延迟更新)
  17. CMSIS_RTOS_Tutorial自译中文版
  18. Laravel (5.5.33) 加载过程---instance方法(二)
  19. KnockOut 绑定之foreach绑定
  20. selenium 代理设置

热门文章

  1. 你真的懂TSP吗
  2. Django基础必会
  3. 除了增删改查你对MySQL还了解多少?
  4. python3 爬虫4--解析链接
  5. [vmware to openstack] 安装virtio驱动
  6. java代码常用知识点
  7. The Http request is not acceptable for the requested resource.
  8. volatile 有什么用?能否用一句话说明下 volatile 的应用场景?
  9. IOC的优点是什么?
  10. 解释基于XML Schema方式的切面实现?