模拟实际开发过程的调用过程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

Spring学习笔记(七)模拟实际开发过程的调用过程XML版-Setter方式注入的更多相关文章

  1. Servlet视频学习笔记 57-58 (servlet入门和调用过程)

    网易云课堂<30天轻松掌握JavaWeb视频>servlet部分 课时57 servlet开发入门 servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术.S ...

  2. Spring学习笔记(一)

    Spring学习笔记(一) 这是一个沉淀的过程,大概第一次接触Spring是在去年的这个时候,当初在实训,初次接触Java web,直接学习SSM框架(当是Servlet都没有学),于是,养成了一个很 ...

  3. spring学习笔记(七)HttpMessageConverter

    spring学习笔记(七)HttpMessageConverter 1. HttpMessageConverter的加载 2. 从StringMessageConverter探究消息转换器的原理 1. ...

  4. Spring学习笔记之aop动态代理(3)

    Spring学习笔记之aop动态代理(3) 1.0 静态代理模式的缺点: 1.在该系统中有多少的dao就的写多少的proxy,麻烦 2.如果目标接口有方法的改动,则proxy也需要改动. Person ...

  5. Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入

    本节主要内容:       1.实例化Spring容器示例    2.利用Spring容器创建JavaBean对象    3.如何控制Bean实例化    4.利用Spring实现bean属性sett ...

  6. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  7. (转)Qt Model/View 学习笔记 (七)——Delegate类

    Qt Model/View 学习笔记 (七) Delegate  类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...

  8. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

随机推荐

  1. 第二季第八天 HTML5新特性

    在函数内部window.a =  a  在全局中就可以拿到这个变量 变量命名.作为函数的参数的时候要详细.调用的时候可以简单点 做全局变量的两个方案 1.绑在标签上data 2.闭包 视频一般都是二进 ...

  2. ant design for vue 刷新页面,根据当前路由选中相应菜单

    <a-menu theme="dark" mode="horizontal" class="menu__a" @select=&quo ...

  3. PHP系列 | ThinkPHP5.1 如何自动加载第三方SDK(非composer包 )

    注意:这里只是针对于非Composer 安装包的自动加载的实现,能用composer安装的自动跳过. 由于ThinkPHP5.1 严格遵循PSR-4规范,不再建议手动导入类库文件,所以新版取消了Loa ...

  4. Java实战——简介

    由于下学期要学习JavaEE所以打算将JavaSE的知识再重新学习一遍,打好基础的同时也希望自己有新的收获和更深刻的理解. 这次复习主要是参考廖雪峰老师的java教程,每学习完一章对其中一些要点进行总 ...

  5. Microsoft .NET Framework 4.5.2 (Offline Installer)

    Microsoft .NET Framework 4.5.2 (Offline Installer) for Windows Vista SP2, Windows 7 SP1, Windows 8, ...

  6. F - kebab HDU - 2883 (最大流构图)

    Almost everyone likes kebabs nowadays (Here a kebab means pieces of meat grilled on a long thin stic ...

  7. web前端——CSS详解

    简介 CSS(Casading Style Sheet)是一组HTML元素外观的设置规则,用于控制web页面的表现形式,一般被翻译为"级联样式表"或"层叠样式表" ...

  8. vmware ubuntu 解决 宿主机与虚拟机互相ping不通,虚拟机无线上网的解决办法

    首先 virtual network editor 设为桥接 选定无线网卡 虚拟机的网络设置 选桥接. 其次, 如果不能互相ping通,注意主机是否关闭了防火墙,是否退掉了360(没验证), 还要注意 ...

  9. 吴裕雄--天生自然python学习笔记:python 用pygame模块处理音频文件

    除了对图片. Word 等普通格式的文件进行处理外, Python 还有强大的多媒体文件操作能力,如对音频.视频 文件的操作 . 如果要播放音乐,我们可以用 pygame 包中的 mixer 对 象. ...

  10. day23-logging模块

    # logging日志记录的两个内容:1.有5种级别的日志记录模式.2.两种配置方式:basicconfig.logger对象. # logging的作用: #1.排错的时候需要打印很多细节来帮助排错 ...