1.设置注入

先写demo代码

Uer.java

public class User {private String username;private String password;public String getUsername(){return this.username;}public void setUsername(String name){this.username = name;}public String getPassword(){return this.password;}public void setPassword(String password){this.password = password;}
}

UserADO 接口:

public interface UerDAO{public void save(User user);
}

UserADOImpl类:

public class UserADOImpl implements UserADO {public void save(User user){System.out.println(user.getUsername() + user.getPassword());}
}

ADO层是直接和DB打交道,这一层和mybatis或者hibernate结合;我们还要基于ADO创建service层。web工程中,一般分为ADO,service和web等,ADO负责数据的持久化,service负责业务,web层负责UI视图和用户交互。

UserService接口:

public interface UserService {public void add(User user);
}

UserServiceImpl类

public class UserServiceImpl implements UserService
{private UserDAO userDAO;public void add(User user){userDAO.save(user);}public UserDAO getUserDAO(){return this.userDAO}public void setUserDAO(UserDAO userDAO){this.userDAO = userDAO;}}

配置文件 beans.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"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!-- 注册一个 UserDAOImpl 对象实例--><bean id="u" class="com.deciphering.dao.impl.UserDAOImpl"></bean><!-- 注册一个 UserServiceImpl 对象实例--><bean id="userService" class="com.deciphering.dao.service.UserServiceImpl"><!--  将UserDAOImpl  u 对象实例 注入到 UserServiceImpl 中的userDAO --><property name="userDAO"><ref bean="u"></property></bean></beans>

创建测试Junit  用例类 UserServiceTest:

 public class  UserServiceTest{@Testpublic void testAdd() throw Exception{ApplicationContext ctx =new ClassPathXmlApplicationContext("beans.xml");UserServiceImpl service = (UserServiceImpl) stx.getBean("userService");User u = new User();u.setUsername("测试用户");u.setPassword("123456");service.add(u);}}

2.构造方式 注入

修改UserServiceImpl.java  增加构造方法

public class UserServiceImpl implements UserService
{private UserDAO userDAO;public UserServiceImpl(UserDAO userDAO){super();this.UserDAO = UserDAO;}public void add(User user){userDAO.save(user);}public UserDAO getUserDAO(){return this.userDAO}public void setUserDAO(UserDAO userDAO){this.userDAO = userDAO;}
}

beans.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"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!-- 注册一个 UserDAOImpl 对象实例--><bean id="u" class="com.deciphering.dao.impl.UserDAOImpl"></bean><!-- 注册一个 UserServiceImpl 对象实例--><bean id="userService" class="com.deciphering.dao.service.UserServiceImpl"><!--  构造方式 将UserDAOImpl  u 对象实例 注入到 UserServiceImpl 中的userDAO --><constructor-arg><ref bean="u"></constructor-arg></bean></beans>

3.接口注入,我们需要特定的接口交给特定的类去注入,这种方式,带来污染,不能完全解耦。现在已被抛弃

Spring 三种注入方式相关推荐

  1. spring三种注入方式

    设置Spring的作用域 或者使用枚举值设置 单例和多里使用场景 自动注入 @Primary 一个接口有多个实现被spring管理吗,在依赖注入式,spring会不知道注入哪个实现类就会抛出NoUni ...

  2. spring入门之Spring 常用的三种注入方式

    Spring 常用的三种注入方式 Spring 通过 DI(依赖注入)实现 IOC(控制反转),常用的注入方式主要有三种:构造方法注入,set 方法注入,基于注解的注入. 一.通过构造方法注入 先简单 ...

  3. Spring 依赖注入的理解及三种注入方式

    Spring 依赖注入概念和三种注入方式(理解及应用) 什么是注入 要了解Spring的三种注入方式首先前提是得先了解一下什么是注入,相信很多人对这个概念都是模糊不清的,网上的解释是这样的: 依赖注入 ...

  4. Spring的三种注入方式(为什么推荐构造器注入?)

    Spring的三种注入方式 一.属性注入 @Resource和@Autowired的区别 为什么尽量使用 @Resource? 二.setter 注入 三.构造器注入 具体可以看看Spring官网 为 ...

  5. 扯一把 Spring 的三种注入方式,到底哪种注入方式最佳?

    循环依赖这个问题,按理说我们在日常的程序设计中应该避免,其实这个本来也是能够避免的.不过由于总总原因,我们可能还是会遇到一些循环依赖的问题,特别是在面试的过程中,面试考察循环依赖,主要是想考察候选人对 ...

  6. Spring 的三种注入方式?

    1. 实例的注入方式 首先来看看 Spring 中的实例该如何注入,总结起来,无非三种: 属性注入 set 方法注入 构造方法注入 我们分别来看下. 1.1 属性注入 属性注入是大家最为常见也是使用最 ...

  7. Spring 的三种注入方式,到底哪种注入方式最佳?

    1. 实例的注入方式 首先来看看 Spring 中的实例该如何注入,总结起来,无非三种: 属性注入 set 方法注入 构造方法注入 我们分别来看下. 1.1 属性注入 属性注入是大家最为常见也是使用最 ...

  8. .NetCore中三种注入方式的思考

    .NetCore中三种注入方式的思考 原文:.NetCore中三种注入方式的思考 该篇内容由个人博客点击跳转同步更新!转载请注明出处! .NetCore彻底诠释了"万物皆可注入"这 ...

  9. 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

最新文章

  1. python中print又可将数据写入文件_Python 通过print_lol将数据保存到文件中
  2. 二十一、redis持久化之RDB
  3. P1282 多米诺骨牌 (差值DP+背包)
  4. matlab cfun,【图片】求求各位大佬帮弱鸡看看【matlab吧】_百度贴吧
  5. 系统架构设计师考试知识点整理-1:操作系统的类型和结构
  6. 推荐一个网站拿下机器学习优质资源!搜索效率极大提高
  7. Android(3_2)-----模仿微信界面:通讯录页面
  8. saleor设置braintree支付方式
  9. PTA12、 统计文字中的单词数量并按出现次数排序 (10 分)
  10. mysql 查找相似数据_局部敏感哈希LSH(Locality-Sensitive Hashing)——海量数据相似性查找技术...
  11. ftp,http YUM库
  12. 我对骨骼动画的理解(最精减的骨骼动画类)
  13. Android HID触摸屏驱动怎么开发
  14. mysql 数据恢复 binlog
  15. 凸优化 - 3 - Jensen不等式、共轭函数、Fenchel不等式
  16. 超强大的货币汇率实时查询工具
  17. 邻菲罗啉二酰胺功能化/吡啶基改性纤维状介孔二氧化硅微球的应用
  18. 20201218英语单词学习(仅供自己记录)
  19. 【机器学习】特征编码OneHot与Dummy的区别与联系
  20. java aes 工具类_AESUtil Java AES 加密解密工具类

热门文章

  1. linux下面把png文件转化为背景透明
  2. TypeError: the JSON object must be str, bytes or bytearray, not NoneType
  3. yelee主题博客四周变透明
  4. expected dense_10_input to have shape (13,) but got array with shape (1,)
  5. python中文正则匹配初步使用
  6. OpenCV学习笔记七-创建滑动条
  7. 数据结构:哈希表函数构造和冲突解决方法
  8. Transifex与GTK文档翻译, Linux镜像文件, 外设接口杂谈
  9. 清理c盘垃圾的cmd命令_用命令删除系统垃圾,这波操作深藏功与名
  10. 丁奇 mysql_丁奇-MySQL实战读书笔记4