@Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct

2023-05-16

1、@Autowired 注解:
首先在使用时候需要引入配置:


<!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 --> 
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>  

在Spring MVC 中 由于配置了“ <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>”

故不使用引入上面自动注入也可实现指定注入功能。

@Autowired 可以标注在属性,以及set方法上,以及构造函数上.进行标注,然后自动完成注入。

 

2、@Qualifier 注解:
如果配置了多个类型为 User 的 Bean, 那么我们在

1
2
3
4
@Autowired
private User setUser(User user){
//....
}

会出现错误,这个时候我们就需要对注入的对象指定读取Bean的名称,则所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。

1
2
3
4
5
6
7
8
9
10
@Autowired
private User setUser(@Qualifier("user1") User user){
//....
}
 
public class Recommender {
    @Autowired
    @Qualifier("main")
    private MovieCatalog log;
}

@Autowired 可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,所以 Spring 不将 @Autowired 和 @Qualifier 统一成一个注释类。


3、@Required注解:
@Required注解检查 但他只检查属性是否已经设置而不会测试属性是否非空

4、@Resource 写在属性或者是setter方法上,按照名称注入 可以配置name="...",
如果不配置则提取 setter方法名,该bean必须存在。
@Resource(name="user")
private User user;

5、@Component,@Service,@Controller,@Repository 注解:
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。

6、@PostConstruct 注解,标识Bean在初始化的时候执行,
@PreDestroy 注解,表示在Bean在对象销毁的时候执行。

1
2
3
4
5
6
7
8
9
@PostConstruct
public void init() {
 
}
 
@PreDestroy
public void destory() {
 
}

7、@Scope 注解 设置作用域:

prototype,singleton 注意spring2.0后 又增加了request ,session和global session 4个作用区域
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct 的相关文章

随机推荐

  • 【wzdftpd安装】wzdftpd的linux版本安装教程

    近期要开展漏洞挖掘的工作 xff0c 因此需要安装wzdftpd在机器上 xff0c 又因为这个东西比较老 xff0c 自己各种摸索之下终于搞定它的安装流程了 xff0c 现在记录一下 一 下载地址 https sourceforge ne
  • 树莓派——镜像篇

    因为某些原因 xff0c 我又得重新配置树莓派环境了 xff0c 官网链接在这里 xff1a 点击 顺便一提 xff0c 有三个版本 xff0c 选择 Raspbian Buster with desktop xff0c 这个是带有桌面的
  • 树莓派——网络连接篇

    树莓派一连上电源就会开始亮灯 xff0c 通常有两盏灯 xff0c 一盏是红色的 xff0c 一盏是绿色的 xff0c 详见灯的意义在这篇博文里面有 点击 我认识的树莓派显示方式以及网络连接方式各有两种 xff1a 界面显示方式 xff1a
  • 19年电赛经验总结

    1 今年带了两个学弟 xff0c 结果他两因为从来没有这样子熬夜过导致晚上脑子转不动 xff0c 相当于晚上就不能熬夜的状态 总结 xff1a 还是要做好准备 xff0c 你平时没有晚上干活干到这个点可能还是不能想象当时的状态的 2 电赛清
  • 树莓派——opencv篇

    1 查看python3的版本 如果是python3 5的 xff0c 请使用这个教程 xff1b 如果是python3 7的 xff0c 请使用这个教程 2 错误集合 遇到了以下的情况 xff0c 请参考https blog csdn ne
  • 毕业季——找工作必备APP

    整理了一些在我找工作的时候对我帮助挺大的APP 1 前程无忧51Job xff1a 我通常在这里面看附近大学的宣讲会安排 xff0c 蛮方便的 xff0c 比我在一个一个学校官网看信息好多了 2 BOSS直聘 拉钩招聘 xff1a 在里面看
  • 运行虚拟机卡在booting the kernel

    最近在学宋宝华的 linux设备驱动开发详解 在配置环境的时候 xff0c 按照给的工具包安装了 VMware player 7 0 0 2305329 1420626349 exe 然后就按照流程一步一步的照做 xff0c 到了最后一步运
  • eclipse与华为云之间push代码的相关问题汇总

    1 直接反馈连接超时 Transport Error Cannot get remote repository refs http codehub devcloud cn north 4 huaweicloud com ssm shoppi
  • 饿

    以为有片海苔在我桌子上 xff0c 正眼一看 xff0c 原来是一片charger ic
  • 【小记】个人面试总结

    时间 xff1a 2023 5 10晚线上 岗位 xff1a Linux软件工程师 公司名字 xff08 直接写出来会不会不太好哇 xff09 深圳光明某初创公司 这是近两个月面试的第一家公司 xff0c 我是对这个公司名字 xxx新能源以
  • Ubuntu操作系统配置阿里云镜像方法一

    Ubuntu xff0c 是一款基于 Debian Linux 的以桌面应用为主的操作系统 xff0c 内容涵盖文字处理 电子邮件 软件开发工具和 Web 服务等 xff0c 可供用户免费下载 使用和分享 阿里云官方镜像站 xff1a ht
  • 关于在Ardusub-Raspberry镜像中ssh密码错误access denied问题

    环境 xff1a Win10 在此感谢论坛大佬的回答 xff0c 一下附上原网址 http rovmaker cn t topic 1272 在ArduSub入门教程 树莓派设置中 xff0c 本人按照上面的教程 xff0c 当完成相应步骤
  • O2OA中如何使用PostgreSQL + Citus 实现分布式数据库实现方案?

    虽然 O2OA 数据表高效的表结构以及索引的设计已经极大程度地保障了数据存取操作的性能 xff0c 但是随着使用时间从增长 xff0c 数据表存放的数据量也会急剧增长 此时 xff0c 仍然需要有合适的方案来解决数据量产生的系统性能瓶颈 本
  • 我的2013——学习、工作与生活

    一直觉得应该写阶段性总结 xff0c 以知道自己这段时间在干什么 xff0c 下一个阶段该干什么 xff0c 没实施过 xff1b 一直觉得学技术就应该多些博客 xff0c 以和同行共同学习交流 xff0c 分享是美德 xff0c 也是对
  • POI Excel导出样式设置

    HSSFSheet sheet 61 workbook createSheet 34 sheetName 34 创建sheet sheet setVerticallyCenter true 下面样式可作为导出左右分栏的表格模板 sheet
  • SQL强化:将相同的或连续的时间段合并

    问题描述 xff1a 有一张签到表 xff0c 需要将连续或相同的时间段合并 xff0c 即把多条记录查询合并成一条连续的时间段记录 数据表如下 xff1a DROP TABLE IF EXISTS 96 timesheets 96 CRE
  • Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答

    最近做数据处理时候 xff0c 遇到一个问题 用一个id自增主键时候 xff0c 数据表中会插入大量重复数据 xff08 除ID不同 xff09 这虽然对最终数据处理结果没有影响 xff0c 但是有1个问题 xff0c 如果数据量超大 xf
  • 2014年秋找工作经历

    博主学渣一枚 xff0c 读研期间做过几个不上档次的管理系统 xff0c 学历不太好 xff0c 基础知识不太牢固 xff0c 所以校招找工作难免辛酸 记下这个过程 xff0c 以便日后回顾来时的路 9月 xff0c 酱油了 xff0c 只
  • 服务器端获取webservice客户端IP地址

    一 基于xfire发布的webservice获取客户端ip的方法 public String getClientIp String ip 61 34 34 try HttpServletRequest request 61 XFireSer
  • @Autowired,@Qualifier @Required @Resource @Component,@Service,@Controller,@Repository @PostConstruct

    1 64 Autowired 注解 xff1a 首先在使用时候需要引入配置 xff1a lt 该 BeanPostProcessor 将自动起作用 xff0c 对标注 64 Autowired 的 Bean 进行自动注入 gt lt bea