21、自动装配[email protected]&@Inject

21、自动装配[email protected]&@Inject

  • Spring 还支持使用@Resource(JSR250)和@Inject(JSR330)[Java规范的注解]
  • AutowiredAnnotationBeanPostProcessor 完成解析自动装配功能

21.1 @Resource

  • 可以和@Autowired一样实现自动注入功能,默认是按照组件名称进行装配的。
  • 没有能支持@Primary功能,没有支持@Autowired(required = false)

21.2 @Inject

  • @Inject 需要导入javax.inject依赖才能使用,和@Autowired功能一样,但没有required=false属性值设定。

22.3 区别

  • @Autowired 是Spring定义的,@Resource@Inject 都是Java的规范
<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>

22.4 代码实例

//    @Autowired(required = false)
//    @Qualifier("bookRepository")
//    @Resource(name = "bookRepository")
    @Inject
    private BookRepository bookRepository2;

原文地址:https://www.cnblogs.com/Grand-Jon/p/10040014.html

时间: 2024-08-28 17:38:07

21、自动装配[email protected]&@Inject的相关文章

24、自动装配[email&#160;protected]环境搭建

24.自动装配[email protected]环境搭建 Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能. 开发环境.测试环境.正式环境 数据源切换 24.1 添加 数据源和jdbc驱动 pom 依赖 <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifac

25、自动装配[email&#160;protected]根据环境注册bean

25.自动装配[email protected]根据环境注册bean 指定组件在哪个环境的情况下才能被注册到容器中 加了环境标识的,只有这个环境被激活才能注册到组件中 默认是default环境 写在类上,整个配置类的激活的时候才能生效 没有标注环境标识的bean,在任何环境下都是加载的 package org.springframework.context.annotation; import java.lang.annotation.Documented; import java.lang.a

从头认识Spring-2.4 基于java的标准注解装配[email&#160;protected](2)-通过set方法或者其它方法注入

这一章节我们来讨论一下基于java的标准注解装配标签@Inject是如何通过通过set方法或者其它方法注入? 在使用@Inject标签之前.我们须要在pom文件中面增加以下的代码: <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency>

从头认识Spring-2.4 基于java的标准注解装配[email&#160;protected]限定器@Named

这一章节我们来讨论一下基于java的标准注解装配标签@Inject的限定器@Named. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_16; import javax.inject.Named; @Named("myCake") public class Cake { private String name = ""; public String getName(

从头认识Spring-2.4 基于java的标准注解装配[email&#160;protected](3)-通过构造器方法注入

这一章节我们来讨论一下基于java的标准注解装配标签@Inject是怎样通过通过构造器方法注入? 在使用@Inject标签之前,我们需要在pom文件里面加入下面的代码: <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> 上面是j

从头认识Spring-2.3 注解装配[email&#160;protected](4)-required(1)

这一章节我们来详细讨论一下@autowired里面的参数required. 1.domain(重点) 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_9; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name) { this

从头认识Spring-2.3 注解装配[email&#160;protected](3)-通过构造器方法注入

这一章节我们来讨论一下注解装配的@autowired是怎样通过set方法或者其他方法注入? 1.domain 蛋糕类:(不变) package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_8; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name

从头认识Spring-2.3 注解装配[email&#160;protected](5)-限定器@Qualifier(1)

这一章节我们来具体讨论一下配合@autowired一起使用的限定器@Qualifier. 1.domain(重点) 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch02.topic_1_11; public class Cake { private String name = ""; public String getName() { return name; } public void setName(String name

[email&#160;protected]注解与自动装配

1   配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss 拥有 Office 和 Car 类型的两个属性:       清单 3. Boss.java [java] view plaincopy package com.baobaotao; public class Boss { private Car car; private Office office