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

    主题句常用句型: ...can/may... ...有助于/帮助.....,(定语从句) ...enable/allows sb. To do... By doing .....,...can.... ...

  2. Pytorch的19种损失函数

    基本用法 12 criterion = LossCriterion() loss = criterion(x, y) # 调用标准时也有参数 损失函数 L1范数损失:L1Loss 计算 output ...

  3. 解决IntelliJ IDEA Community 社区版 启动Tomcat插件 "Smart Tomcat" NullPointerException 空指针异常

    IntelliJ IDEA Community社区版默认是没有Ultimate版的Tomcat Server,这时候就可以使用插件"Smart Tomcat"; 在"Ru ...

  4. E. Delete a Segment(删除一个区间,让并区间最多)

    题:https://codeforces.com/contest/1285/problem/E 题意:给定n个区间,最多删除一个区间,让最后的并区间个数最大 #include<bits/stdc ...

  5. Oscar的数理统计笔记本

    目录 Random Variable discrete distribution: continuous distribution: 统计量 现代统计学时期: Survey sampling Rand ...

  6. 唐顿庄园S01E01观看感悟

    刚刚看了唐顿庄园的第一季第一集.看第一遍的时候,主要是看剧情,看看有没有什么吸引人的.我是一带而过的.等到看第二遍的时候,仔细观察画面,欣赏画面的美感,琢磨人物的台词对话.不断的倒退回放,越看越有滋味 ...

  7. AtCoder Grand Contest 033

    为什么ABC那么多?建议Atcoder多出些ARC/AGC,好不容易才轮到AGC…… A 签到.就是以黑点为源点做多元最短路,由于边长是1直接bfs就好了,求最长路径. #include<bit ...

  8. Serverless 的开发者工具建设

    本文将介绍 Serverless 生态下的开发者工具,并简述这些工具是如何贯穿开发.调试.测试和部署的生命周期,提升开发者效率的. 由于 Serverless 平台具备弹性扩缩.免运维.按需付费等特点 ...

  9. 信贷风控模型开发----模型流程&好坏样本定义

    第二章 模型开发流程&好坏样本定义 2.1模型开发流程 2.1.1 评分模型流程图 2.1.2流程图阐述 该小结提出了一些数据指标,如果不明白没有关系,往后的文章笔者会一个个地解释这些指标的含 ...

  10. SpringBoot中使用task实现定时任务

    定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行, ...