Spring5使用JSR(330标准注解的方法)

从Spring3.0之后,除了Spring自带的注解,我们也可以使用JSR330的标准注解,本文主要介绍了Spring5使用JSR330标准注解,感兴趣的可以了解一下

Spring5使用JSR,330标准注解的方法,久久派带你了解更多相关信息。

目录
  • @Inject 和 @Named
  • @Named 和 @ManagedBean

之前的文章我们有讲过,从Spring3.0之后,除了Spring自带的注解,我们也可以使用JSR330的标准注解。不过需要加入maven依赖如下:

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

下面是标准注解和Spring注解的区别:

Spring javax.inject.* javax.inject限制/描述
@Autowired @Inject @Inject没有required属性,可以使用Java8的Optional代替
@Component @Named / @ManagedBean JSR-330没有提供组合模式,只有一种方式来标记命名组件
@Scope(“singleton”) @Singleton JSR-330默认范围类似Spring的prototype,但是为了和Spring的默认值保持一致,在Spring中定义的JSR-330 bean默认是singleton。如果要使用其他的作用范围,那么需要使用Spring的@Scope注解。javax.inject也提供了一个@Scope注解。但是这个注解仅用来创建你自己的注解。
@Qualifier @Qualifier / @Named javax.inject.Qualifier只是一个用来构建自定义Qualifier的元注解。具体的字符串限定符(如带value的Spring的@Qualifier)可以通过javax.inject.Named关联。
@Value 没有相同功能
@Required 没有相同功能
@Lazy 没有相同功能
ObjectFactory Provider javax.inject.Provider是Spring的ObjectFactory的直接替代品,它只使用了较短的get()方法名。它还可以与Spring的@Autowired结合使用,或者与无注解的构造函数和setter方法结合使用。

下面我们分别来介绍。

@Inject 和 @Named

@Inject可以用来替换@Autowired:

public class SimpleMovieLister {    private MovieFinder movieFinder;    @Inject    public void setMovieFinder(MovieFinder movieFinder) {        this.movieFinder = movieFinder;    }    public void listMovies() {        this.movieFinder.findMovies();    }}

与@Autowired一样,你可以在字段级、方法级和构造函数参数级使用@Inject。此外,可以将注入点声明为Provider,允许通过Provider.get() 调用按需访问较短作用域的bean或延迟访问其他bean。下面是Provider的例子:

public class SimpleMovieProviderLister {    private Provider<MovieFinder> movieFinder;    @Inject    public void setMovieFinder(Provider<MovieFinder> movieFinder) {        this.movieFinder = movieFinder;    }    public void listMovies() {        this.movieFinder.get().findMovies();    }}

可以使用@Named注解来为注入的参数限定名字:

    @Inject    public void setMovieFinderNamed(@Named(\"main\") MovieFinder movieFinder) {        this.movieFinder = movieFinder;    }

与@Autowired一样,@Inject也可以与java.util.Optional或@Nullable一起使用。下面是例子:

    @Inject    public void setMovieFinder(Optional<MovieFinder> movieFinder) {    }    @Inject    public void setMovieFinder(@Nullable MovieFinder movieFinder) {    }

@Named 和 @ManagedBean

除了使用@Component,你也可以使用@javax.inject.Named 或者 javax.annotation.ManagedBean,如下:

@Named(\"movieListener\")  // @ManagedBean(\"movieListener\") could be used as wellpublic class SimpleMovieNamedLister {        private MovieFinder movieFinder;    @Inject    public void setMovieFinder(MovieFinder movieFinder) {        this.movieFinder = movieFinder;    }}

到此这篇关于Spring5使用JSR 330标准注解的方法的文章就介绍到这了,更多相关Spring5 JSR 330注解内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/20311.html

(0)
nan
上一篇 2021-09-02
下一篇 2021-09-02

相关推荐

  • 官方明确烂尾楼优先退购房款 !作为购房者也要具备一定的风险意识和判断能力!

    近日,国家住建部明确表示,烂尾楼的购房者可以优先退回购房款。这一政策的出台,对于那些长期挂着未完成工程名单的烂尾楼购房者来说是一个利好消息。烂尾楼问题在中国已经存在了很长一段时间,而且今年7月还发生了多起业主集体宣布断供的事件,引起了社会广泛关注。随着房地产市场的不断膨胀,一些房地产开发商为了追求更

    热点头条 2023-04-23
    0
  • 华裔小将夺美网冠军(青春对决拉杜卡努胜出)

    在我小时候,李娜启发了我,直到现在依然如此,她是一位斗士。——拉杜卡努拉杜卡努庆祝得分。这是一场必将载入史册的比赛。今晨结束的20…

    2021-09-12
    0
  • 四川大学回应女生曝光地铁大叔:此事已经在调查,会有官方通知 !

    据报道,近日,大叔被疑偷拍自证清白后仍遭女子曝光引发关注。据报道,6月7日,广州地铁8号线上,女子看见一大叔蹲着玩手机,怀疑对方偷拍自己,要求检查相册,大叔让她检查自证清白。随后,该女子在网络曝光大叔是猥琐男,称手法娴熟不是第一次作案,并表示既然没有偷拍,他为什么不为自己发声。女子的做法引发众多网友

    热点头条 2023-06-09
    0
  • 家养宠物大全(适合室内养的50种动物有哪些)

    适合室内养的动物有很多,根据人的不同需求和要求,有不同的选择。下面介绍适合室内养的50种动物。一、适合没有时间又怕麻烦的人养的动物上班族、学生党、怕麻烦、怕脏的人群,他们由于工作原因、时间限制或自身原因,没有太多时间和精力精心照顾宠物,可又想在室内养

    2021-12-31
    0
  • 图书管理软件开发环境(图书馆管理系统需求分析)

    在线图书销售管理系统对于网上图书销售管理和图书购买是非常重要的。用户可以在网上查询自己所需要的购物信息,足不出户就可以了解各方面的信息,进行网上交易,再利用物流公司就可以达到远程购物的目的。用户通过远程登录图书销售管理系统,可以查询出自己所

    2022-01-13
    0
  • 女子花10万雇凶 杀手用番茄酱骗佣金 !杀手”和“雇主”双双被警方刑拘 !

    女子花10万雇凶,杀手用番茄酱骗佣金,目前“杀手”和“雇主”均已被警方抓获并刑事拘留,案件正在进一步侦办中。张某在网上认识了女子陈某,对方曾表示欲领养一个女儿,而张某有一个刚出生的女儿,最近几年,陈某给予张某父女不少经济上的帮助。后来,双方因收养问题产生矛盾,张某在社交平台上的一些言论让陈某“很生气

    热点头条 2023-05-08
    0

发表回复

登录后才能评论