Java 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。
"1.0" encoding="UTF-8" xml version=<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
public class service { public void print(){ System.out.println("Service print method is invoked"); } }
然后将这个bean注入到其他bean中去使用
public class Faction { Service service; public void show(){ service.print(); } }
JSR330还定义了@Qualifier和@Provider,对应到spring都给出了标准的实现。
使用JSR330代替原注解的好处是无论使用任何反向依赖注入工具或框架,只要他是支持JSR330的,都可以平滑的切换。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java的内存 -JVM 内存管理
一.综述 如果你学过C或者C++,那么你应该感受过它们对内存那种强大的掌控力。但是强大的能力往往需要更强大的控制力才能保证能力不被滥用,如果滥用C/C++的内存管理那么很容易出现指针满天飞的情况,不出问题还好,一出问题debug起来简直让人头疼得不要不要的。借用一句话,“指针一时爽,重构火葬场”。 而对java程序员来说,则没有这样的烦恼,因为java直接将内存管理交由jvm来管理,这样程序员在编写程序的时候就不用担心内存的使用情况而可以专注内容的实现。但这其实也造成了一点隐患,如果你不了解jvm内存管理的机制,很可能会因一些错误的代码写法而导致内存泄漏或内存溢出。 注:所述内容取自Jdk1.6。 二.jvm内存结构 三.每部分存储了哪些数据 1.程序计数器 程序计数器是一块较小的内存空间,可以看作当前线程所执行字节码的行号指示器,即指向正在执行的字节码。在概念模型中,字节码解释器的工作就是通过改变这个程序计数器的值来选取下一条字节码的指令。 值得一提的是,因为java的多线程是通过线程轮流切换并分配处理器执行时间来实现的(即一个小的时间段内仍然只有一个线程处于运行状态),每个线程的执...
- 下一篇
技术 | Python从零开始系列连载(二十三)
跟奥巴马一起学编程 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长N(3=N=20)和组成正方形边的某种字符C,间隔一个空格。 输出格式: 输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。 输入样例: 10 a 输出样例: aaaaaaaaaa a a a a a a aaaaaaaaaa 上代码: 注意点: 1.input()可以一次接受多个值,用空格隔开,使用split()即可分开,用对应个数变量接收这些值即可 2. int类型的 // 含义? 3.代码是否可以优化,或者换种写法? show me the code ! 原文发布时间为:2018-08-17 本文作者:Python爱好者社区 本文来自云栖社区合作伙伴“ 灯塔大数据”,了解相关信息可以关注“ 灯塔大数据”。
相关文章
文章评论
共有0条评论来说两句吧...