首页IT科技spring jaxrs(Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解)

spring jaxrs(Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解)

时间2025-06-15 05:05:25分类IT科技浏览6348
导读:1.使用@Inject和@Named进行依赖注入...

1.使用@Inject和@Named进行依赖注入

(1) Spring提供了对JSR 330标准注解的支持                ,因此我们也可以使用JSR 330标准注解来进行依赖注入                    ,不过       ,在此之前            ,我们得先使用maven添加相关依赖                     ,如下

<dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency>

(2) JSR 330标准注解提供了@Inject注解进行依赖注入          ,它的作用同@Autowired        ,我们可以将它用于变量                      ,方法或构造函数参数上             ,如下

@Component public class ExampleA { //使用@Inject注解    ,来进行依赖项的注入                       ,它的作用跟@Autowired是完全一样的                ,只不过它是java提供的注解,Spring对其作了实现 @Inject private ExampleB exampleB; private ExampleC exampleC; @Inject public ExampleA(ExampleC exampleC) { this.exampleC = exampleC; } }

(3) @Named注解的作用同@Qualifier注解                    ,也是指定候选的bean的名称                    ,排除其他依赖项的干扰

@Component public class ExampleA { //使用@Named注解标识候选bean的名称    ,如果容器中存在多个ExampleB实例                ,则选择其中bean的名称为exampleB的那个bean进行注入 @Inject @Named("exampleB") private ExampleB exampleB; }

2.@Named注解与@ManagedBean注解

(1) @Named注解与JSR 250中的注解@ManagedBean可以用来替换掉@Component注解                    ,如下

//使用@Named注解定义一个bean       ,没错            ,@Named注解还可用在类上                     ,用于声明一个bean          ,下面这个例子等同于@Component("aaa") @Named("aaa") public class ExampleA { } //此外        ,我们还可以用@ManagedBean注解来声明一个bean @ManagedBean("bbb") public class ExampleB { } //开启注解扫描                      ,则Spring也会把被@Named注解与@ManagedBean注解标注的bean添加至容器中 @Configuration @ComponentScan(basePackages = "cn.example.spring.boke") public class Config { }

(2) @Component注解可以组合衍生出其他注解             ,如@Service    ,@Controller注解等                       ,而@Named注解与@ManagedBean注解不具备这一功能

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
seo教程网站优化上排名推广(seo网站优化工具大全) 前端面试手写题是手写还是打印(手撕前端面试题【javascript~ 总成绩排名、子字符串频次统计、继承、判断斐波那契数组等】)