前面我们讲了 IOC 的注入属性(Spring IOC注入详解),现在我们来介绍通过注解注入属性的方法。

1 创建service类,创建dao类,在service得到dao对象

注入属性第一个注解 @Autowired

(1)创建dao和service对象

(2)在service类里面定义dao类型属性

这里的注解的目的是自动导入 dao对象,而不需要set方法

  1. public void setUserDao(UserDao userDao) {
  2. this.userDao = userDao;
  3. }

第一种注解是:@Autowired

第二种注解是:@Resource

2、关于 @Autowired 和 @Resource区别

@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
  @Resource装配顺序
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配; 

3、具体代码如下

(1)bean1.xml

  1. <!--开启注解扫描-->
  2. <context:component-scan base-package="com.liuyanzhao.anno"></context:component-scan>

(2)UserDao.java

  1. package com.liuyanzhao.anno;
  2. import org.springframework.stereotype.Component;
  3. @Component(value = "UserDaoId")
  4. public class UserDao {
  5. public void add() {
  6. System.out.println("dao....add.......");
  7. }
  8. }

(3)UserService

注解一:

  1. package com.liuyanzhao.anno;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. @Service(value = "UserServiceId")
  5. public class UserService {
  6. //得到dao对象
  7. //在dao属性上面使用注解完成对象注入
  8. @Autowired  //自动把这对象注入,相当于 set 方法
  9. private UserDao userDao;
  10. public void add() {
  11. System.out.println("service.....add.......");
  12. userDao.add();
  13. }
  14. }

注解二:

  1. package com.liuyanzhao.anno;
  2. import org.springframework.stereotype.Service;
  3. import javax.annotation.Resource;
  4. @Service(value = "UserServiceId")
  5. public class UserService {
  6. //得到dao对象
  7. //在dao属性上面使用注解完成对象注入
  8. //name属性值写 注解创建dao对象 value值
  9. @Resource(name="UserDaoId")
  10. private UserDao userDao;
  11. public void add() {
  12. System.out.println("service.....add.......");
  13. userDao.add();
  14. }
  15. }

参考:传智播客视频

本文链接:https://liuyanzhao.com/5642.html

Spring的bean管理(注解注入属性)相关推荐

  1. Spring的bean管理注解和配置文件混合使用

    https://blog.csdn.net/zhupengqq/article/details/72811265 转载于:https://www.cnblogs.com/feifeicui/p/897 ...

  2. IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)

    目录 IOC操作Bean管理注解方式(注入属性@Autowired.@Qualifier和@Resource) 1.基于注解方式实现 属性注入 (1)@Autowired:根据属性类型进行自动装配 第 ...

  3. (转)Spring的bean管理(注解方式)

    http://blog.csdn.net/yerenyuan_pku/article/details/69663779 Spring的bean管理(注解方式) 注解:代码中的特殊标记,注解可以使用在类 ...

  4. JAVA_OA管理系统(四)番外篇:使用Spring注解注入属性

    本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...

  5. IOC操作Bean管理注解方式(创建对象)

    目录 IOC操作Bean管理注解方式(创建对象) 1.什么是注解 2.Spring 针对 Bean 管理中创建对象提供注解主要有以下四种 (1)@Component (2)@Service (3)@C ...

  6. Spring中Bean管理操作基于XML配置文件方法实现

    Spring中Bean管理操作基于XML配置文件方法实现 基于XML配置文件方式实现 1.基于`xml`方式创建对象 2.基于`xml`方式注入属性 1.创建类,定义属性和对应的set方法 2.在Sp ...

  7. 五篇教你掌握spring之三:详解Spring的bean以及注解开发

    详解Spring的bean以及注解开发 各种复杂类型的依赖注入 我们采用一个类的大杂烩的形式,新建一个Student package com.lwh.pojo;import java.util.*;p ...

  8. IOC操作Bean管理注解方式(完全注解开发)

    IOC操作Bean管理注解方式(完全注解开发) (1)创建配置类,替代xml配置文件 需要让Spring 把一个普通的类认为是配置类 结构图: SpringConfig类代码如下: package c ...

  9. IOC操作Bean管理注解方式(组件扫描配置)

    IOC操作Bean管理注解方式(组件扫描配置) 开启组件扫描的 细节配置 约定那些类可以扫描,哪些类不可以扫描 bean1.xml配置如下: <?xml version="1.0&qu ...

  10. spring项目属性注入和bean管理xml 注入一般属性和集合属性

    IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...

最新文章

  1. 图文讲解,团队开发中的 Git 最佳实践
  2. python按键盘上哪个键运行_python通过按下键盘特定按键,开始运行python文件
  3. 使用FluentValidation来进行数据有效性验证
  4. SQL点滴26—常见T-SQL面试解析
  5. spring 长轮询_Spring集成文件轮询和测试
  6. java什么是类和对象,Java类和对象的概念
  7. html经历了几个版本,HTML 的上一个版本诞生于 1999 年. 自从那以后, Web 世界已经经历了巨变....
  8. Children’s Queue
  9. GO 语言博客 搬家部署,NGINX作为代理
  10. python SVG图片转PNG
  11. 如何把握银行信息科技风险管理的“度”?
  12. 【MongoDB】索引属性 之 唯一索引
  13. 努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
  14. 1487C - Minimum Ties
  15. 苹果支付返回html,苹果应用内支付,服务器端的实现
  16. 18日精读掌握《费曼物理学讲义-卷一》计划(2019/6/12-2019/6/29)
  17. Kibana聚合操作
  18. 如何破解EXCEL的单元格保护密码
  19. 世界过敏性疾病日 | 儿童过敏性鼻炎校园筛查启动
  20. Share实例:用python将ppt转为pdf

热门文章

  1. aggregate()函数--R语言
  2. 巴西矿坝决堤事故已致58人死亡 多达300人失踪
  3. 工具:sql server profiler(分析器)
  4. jQuery使用规范总结
  5. WebGL 3D on iOS8 正式版
  6. sysbench 0.5 oltp测试笔记
  7. Exchange Server 2010 SP1的安装(二)建立发送连接器
  8. ERROR - ORA-12560: TNS:protocol adapter error
  9. 基于算符优先文法的逆波兰表达式及计算
  10. ubuntu下git使用