spring jaxrs(Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解)
导读: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版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!