JSR330

    JSR330是Jcp给出的官方标准反向依赖注入规范。Java大部分反向依赖注入的工具或者框架目前基本上都满足JSR330规范、例如spring、guice以及Dagger。

    以我们最常用的spring为例。

    JSR中@Inject可以当做@AutoWired来使用。而@Named可以当做@Component来使用。

    使用JSR330首先要引入javax.inject包:

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

目前Maven中央仓库中就一个inject的jar。

首先使用xml配置通过注解扫描添加bean。

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.1.xsd">  
    <context:component-scan  base-package="com.demo.jsr330"/>  
</beans>  

然后像下面这个添加一个bean

@Named  
public class service {  
  public  void   print(){        
     System.out.println("Service  print  method is invoked");  
  }  
}  

然后将这个bean注入到其他bean中去使用

@Named  
public class Faction {  
  @Inject
  Service service;

  public  void  show(){        
     service.print(); 
  }  
}  

JSR330还定义了@Qualifier和@Provider,对应到spring都给出了标准的实现。

使用JSR330代替原注解的好处是无论使用任何反向依赖注入工具或框架,只要他是支持JSR330的,都可以平滑的切换。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏bboysoul

体验一键php/java环境安装工具oneinstack

这个东西其实我很早之前就听说了,但是一直没有去尝试使用,我一直使用的是lnmp一键安装包,但是lnmp一键安装包是安装java环境的,oneinstack更强大...

2212
来自专栏闻道于事

使用Spring Initializr创建项目

Spring initializr 是Spring 官方提供的一个很好的工具,可以用来用来创建一个Spring boot 的项目。可以选择使用Maven管理或者...

4075
来自专栏

Spring MVC 3中关于url-pattern设成"/"后,资源访问问题

SpringMVC3中关于url-pattern设成"/"后,CSS等资源的访问会报错:No mapping found for HTTP request wi...

1304
来自专栏云霄雨霁

SpringMVC--配置笔记

1620
来自专栏Android相关

Gradle For Android(8)--建立持续集成

Continuous Integration(CI)持续集成可以在团队中每天构建非常多次。每一次自动构建都可以验证最新Push到主仓库的提交。这种方式可以帮助我...

1493
来自专栏编程

Spring-Data-REST轻松搞定RESTfulAPI

背景 昨天同事问我有没有研究过 ,没有~但是看名字就大概知道是做什么的(命名的重要性),因为之前有了解过 ,过一会发过两个截图过来。真的很强大,感觉这个在使用...

2676
来自专栏Danny的专栏

【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1403
来自专栏LeoXu的博客

[Hibernate]有关jar文件 原

http://sourceforge.net/projects/hibernate/files/hibernate3/

651
来自专栏Ken的杂谈

Spring Boot入门教程3-1、使用Spring Boot+Freemarker模板引擎开发Web应用

在最早的Java Web应用中,最为广泛使用的就是JSP,但是JSP已经是陈旧的技术了,ken.io觉得JSP主要有三个问题: 1、视图代码不能与Java代码完...

1072
来自专栏杂烩

分布式服务框架之Dubbo整合Spring项目(一)

        先说一下架构,项目采用Maven管理依赖,总共三个项目,一个是接口包common-inter,一个是服务提供者provider,最后一个是服务消...

1481

扫码关注云+社区

领取腾讯云代金券