Java JSR330

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

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的,都可以平滑的切换。

相关文章
|
人工智能 前端开发 Java
Java真过饱和了吗?现在学Java迟了?
Java真过饱和了吗?现在学Java迟了?
117 0
|
7月前
|
算法 Java 开发者
Java:求正整数分解为质因数Java
Java:求正整数分解为质因数Java
|
7月前
|
Java 程序员 C++
【Java】Java与C++:比较与对比
【Java】Java与C++:比较与对比
112 0
|
7月前
|
Java
L1-7 谁是赢家(Java)
L1-7 谁是赢家(Java)
68 0
|
设计模式 Oracle NoSQL
关于JAVA
讲述关于Java的一些相关知识点及晦涩难懂知识点举例
|
存储 Java PHP
【零基础学Java】—初识Java(一)
【零基础学Java】—初识Java(一)
|
JSON Java 数据格式
Java插件化开发
在java程序开发过程中. 可能需要加载插件的功能. 所以要动态加载Jar文件来实现插件的加载.
176 0
|
Java 编译器
【JAVA】初识Java
一些IDEA 里面的快捷键 JAVA开发环境 操作IDEA的动作分解 以类(class)为基本单位进行组织 数据(data) 基本数据类型 变量 字面量
137 0
|
Cloud Native Oracle Java
一篇文章和你从 Java1 聊到 Java18
002-2022 年的 20 年里 Java 始终保持在前三的水平,其中在 2005 年、2013-2015 年间、2021 年等时间还多次登顶过第一,这么一个已经发布了 27 年的语言在这些年是怎么始终保持在编程语言前三的呢?这么多年 Java 各个版本间又有什么变化?Java 语言在未来还会继续保持成为语言的常青树吗?这篇文章就来和大家回顾一下 Java 的历史。
299 0
一篇文章和你从 Java1 聊到 Java18
|
Oracle IDE Java
从Java8到Java17
背景Java8的前世今生作为一名程序员,笔者从大学开始接触Java这门编程语言,还记得当时的版本是1.4,不过这个版本的寿命还挺长,目前在一些金融行业的存量系统中依然还有1.4版本的影子。从C/C++到Java,Java给我的第一印象,就是这门语言的语法非常之啰嗦,比如内部类,像下面这段排序的代码,在C语言里面可以很方便地通过函数指针来解决,C++可以通过运算符重载来解决,唯独Java语言的写法最
从Java8到Java17
下一篇
DataWorks