模拟实际开发过程的调用过程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. ZJNU 1310 - 排队——中高级

    蒟蒻做法:追踪1号队员,取他回到原来位置需要的次数 /* Written By StelaYuri */ #include<stdio.h> int main(){ int T,t,n,a ...

  2. Linux常见指令x-mind

  3. Python访问Amazon官网异常

    使用Python访问亚马逊(Amazon)官网,如果没有将headers更改为浏览器的信息, 有几率会触发:检测到当前可能是自动程序,需要输入验证码: 将header修改成浏览器后,需要等一段时间或者 ...

  4. cmake target_link_libraries() 中<PUBLIC|PRIVATE|INTERFACE> 的区别

    如果目标的头文件中包含了依赖的头文件(源文件间接包含),那么这里就是PUBLIC 如果目标仅源文件中包含了依赖的头文件,那么这里就是PRIVATE 如果目标的头文件包含依赖,但源文件未包含,那么这里就 ...

  5. 肯德基联手亚马逊Kindle试水咖啡主题店中店能成功吗?

    互联网上始终有一个传说:kindle与泡面是绝配.因为用kindle压着泡面,泡出来的味道格外的好.当然,这只是一个调侃.毕竟很多人购买kindle的动力是为了摆脱其他电子设备的诱惑,想去好好去读书. ...

  6. vue-router query和params参数的区别

    1.query方式传参和接收参数(相当于get请求) this.$router.push({ path:'/home' query:{ id:1 } }) 接收参数: this.$route.quer ...

  7. The website is API(1)

    Requests 自动爬取HTML页面 自动网路请求提交 robots 网络爬虫排除标准 Beautiful Soup 解析HTML页面 实战 Re 正则表达式详解提取页面关键信息 Scrapy*框架 ...

  8. MySQL安装教程及Navicat连接MySQL报错:1251-Client does not support authentication protocol requested by server

    MySQL安装可参考: MySql 8.0.18安装 此参考文章后面涉及到的密码修改,对本标题碰到的错误同样适用. 本文先讲如何安装,在讲碰到的1251问题.要直接看解决方案的朋友可以直接通过目录链接 ...

  9. 2019-2020-1 20199324《Linux内核原理与分析》第三周作业

    第二章 操作系统是如何工作的 一.知识点总结 1.计算机的三个法宝 存储程序计算机 函数调用堆栈机制.堆栈:是C语言程序运行时必须使用的记录函数调用路径和参数存储的空间. 中断 2.堆栈相关的寄存器和 ...

  10. 吴裕雄--天生自然C语言开发:运算符

    #include <stdio.h> int main() { ; ; int c ; c = a + b; printf("Line 1 - c 的值是 %d\n", ...