模拟实际开发过程的调用过程XML版-Setter方式注入

源码获取github

[TOC]

1.项目结构

2.jar包跟上个一样

3.重写set方法

UserServiceImpl.java

1
2
3
4
5
private UserDao userDao;

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

beans.xml

1
2
3
4
5
6
7
<bean id="userDaoImpl" class="com.hs.dao.impl.UserDaoImpl"/>

<bean id="userServiceImpl" class="com.hs.service.impl.UserServiceImpl">
<property name="userDao">
<ref bean="userDaoImpl"/>
</property>
</bean>

在set方法里代替完成了,private UserDao userDao = new userDaoImpl();

UserController.java

1
2
3
4
5
private UserService userService;

public void setUserService(UserService userService) {
this.userService = userService;
}

beans.xml

1
2
3
4
5
6
7
8
9
10大专栏  Spring学习笔记(七)模拟实际开发过程的调用过程XML版-Setter方式注入/span>
11
<bean id="userServiceImpl" class="com.hs.service.impl.UserServiceImpl">
<property name="userDao">
<ref bean="userDaoImpl"/>
</property>
</bean>
<!--先UserController = new UserController()
再userService = new userServiceImpl();
-->
<bean id="userController" class="com.hs.web.UserController" p:userService-ref="userServiceImpl">
<!--<property name="userService" ref="userServiceImpl"/>-->
</bean>

在set方法里代替完成了private UserService userService = new userServiceImpl();

4.测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.hs.test;

import com.hs.web.UserController;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class MethodTest { public void test01() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
UserController controller = applicationContext.getBean("userController", UserController.class);
controller.add();
}
}

控制台输出:

UserController层—>ADD
UserService层的实现类—>ADD
UserDao层的实现类—>ADD

最新文章

  1. VisualSVN Server和Subversion的联系
  2. 洛谷P3367 【模板】并查集
  3. Codeigniter:如何写一个好的Model
  4. 【LeetCode 239】Sliding Window Maximum
  5. Android 使用 Gmail 来发送邮件
  6. Android 汉字转拼音之JNI篇
  7. python特征提取——pyAudioAnalysis工具包
  8. 自测-5 Shuffling Machine
  9. LeetCode - 661. Image Smoother
  10. C语言复习4_while循环
  11. go基本语法
  12. AngelToken钱包——值得投资与存币的钱包
  13. zabbix在运维方面的监控方法小结
  14. Python单元测试框架之pytest 3 -- fixtures
  15. 图解简单C程序的运行时结构
  16. 使用jquery的ajax提交文件上传
  17. 9273:PKU2506Tiling
  18. day6面向对象
  19. [BZOJ4408&amp;&amp;BZOJ4299][FJOI2016 &amp;&amp; Codechef]神秘数&amp;&amp;FRBSUM(主席树)
  20. AtCoder Regular Contest 078D

热门文章

  1. ZJNU 2136 - 会长的正方形
  2. JavaSE--对象克隆
  3. JavaScript详解(三)
  4. restful的简单使用
  5. mint 18中安装最新的R
  6. vue-cli3解决跨域问题
  7. iOS雪花动画、音频图、新闻界面框架、2048游戏、二维码条形码扫码生成等源码
  8. BCrypt BCryptPasswordEncoder
  9. LightGBM和XGBoost的区别?
  10. django框架进阶-CSRF认证