返回顶部
首页 > 资讯 > 后端开发 > Python >Spring5使用JSR 330标准注解的方法
  • 260
分享到

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

2024-04-02 19:04:59 260人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录@Inject 和 @Named@Named 和 @ManagedBean之前的文章我们有讲过,从spring3.0之后,除了Spring自带的注解,我们也可以使用jsR330的

之前的文章我们有讲过,从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 well
public class SimpleMovieNamedLister {
    
    private MovieFinder movieFinder;

    @Inject
    public void setMovieFinder(MovieFinder movieFinder) {
        this.movieFinder = movieFinder;
    }
}

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

--结束END--

本文标题: Spring5使用JSR 330标准注解的方法

本文链接: https://lsjlt.com/news/134402.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring5使用JSR 330标准注解的方法
    目录@Inject 和 @Named@Named 和 @ManagedBean之前的文章我们有讲过,从Spring3.0之后,除了Spring自带的注解,我们也可以使用JSR330的...
    99+
    2024-04-02
  • Python标准库calendar的使用方法
    目录Calendarcalendar.Calendar(firstweekday=0)类calendar.TextCalendar(firstweekday=0)calendar.H...
    99+
    2024-04-02
  • Python标准库之typing的用法(类型标注)
    PEP 3107引入了功能注释的语法,PEP 484 加入了类型检查 标准库 typing 为类型提示指定的运行时提供支持。 示例: def f(a: str, b:int) -> str: ret...
    99+
    2022-06-02
    Python typing 类型标注
  • Java注解类型的语法标准是什么
    这篇文章主要介绍“Java注解类型的语法标准是什么”,在日常操作中,相信很多人在Java注解类型的语法标准是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java注解类型的语法标准是什么”的疑惑有所帮助!...
    99+
    2023-06-26
  • Python标准库time使用方式详解
    目录1、time库1.1、获取格林威治西部的夏令时地区的偏移秒数1.2、时间函数1.3、格式化时间、日期1.4、单调时钟1、time库 时间戳(timestamp)的方式:通常来说,...
    99+
    2024-04-02
  • Python3 常用数据标准化方法详解
    数据标准化是机器学习、数据挖掘中常用的一种方法。包括我自己在做深度学习方面的研究时,数据标准化是最基本的一个步骤。 数据标准化主要是应对特征向量中数据很分散的情况,防止小数据被大数据...
    99+
    2024-04-02
  • java怎么获取注解标注的方法
    可以使用反射机制来获取注解标注的方法。 首先,需要获得要获取注解的类的Class对象,可以通过类名.class或者对象.getCla...
    99+
    2023-10-26
    java
  • JUnit5常用注解的使用方法
    这篇文章主要介绍“JUnit5常用注解的使用方法”,在日常操作中,相信很多人在JUnit5常用注解的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JUnit5常用注解的使用方法”的疑惑有所帮助!接下来...
    99+
    2023-06-20
  • C++STL标准库std::vector的使用详解
    目录1. 简介2. 使用示例3. 构造、析构、赋值3.1 std::vector::vector 构造函数3.2 std::vector::~vector 析构函数3.3 std::...
    99+
    2024-04-02
  • MyBatisPlus标准数据层CRUD的使用详解
    目录标准CRUD使用新增删除修改根据ID查询查询所有标准CRUD使用 对于标准的CRUD功能在MP中都提供了方法供我们使用。 此案例环境是根据上篇让入门案例内容。 MyBatisP...
    99+
    2024-04-02
  • 解析golang 标准库template的代码生成方法
    curd-gen 项目 curd-gen 项目的创建本来是为了做为 illuminant 项目的一个工具,用来生成前端增删改查页面中的基本代码。 最近,随着 antd Pro v5 ...
    99+
    2024-04-02
  • Spring使用注解开发的方法
    这篇文章主要介绍了Spring使用注解开发的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring使用注解开发的方法文章都会有所收获,下面我们一起来看看吧。在Spring4之后 要使用注解开发 必须保证...
    99+
    2023-06-30
  • Python标准库中的logging用法示例详解
    目录1、logging的介绍2、简单用法示例3、日志级别4、打印格式的各个参数5、日志输出到指定文件6、日志回滚(按照文件大小滚动)7、日志回滚(按照时间滚动)1、logging的介...
    99+
    2024-04-02
  • Python+OpenCV实现鼠标画瞄准星的方法详解
    目录函数说明cv2.circle()cv2.line()简单的例子利用鼠标回调函数画瞄准星所谓瞄准星指的是一个圆圈加一个圆圈内的十字线,就像玩射击游戏狙击枪开镜的样子一样。这里并不是...
    99+
    2024-04-02
  • 使用TypeScript类型注解的方法详解
    目录类型注解类型推导TS和JS共有的数据类型TS独有的数据类型anyunknownvoidnevertuple函数参数和返回值类型断言非空类型断言字面量类型缩小总结类型注解 Type...
    99+
    2024-04-02
  • SpringBoot之@ConditionalOnProperty注解使用方法
    目录1、SpringBoot实现1.1 设置配置属性1.2 编写加载类2、ConditionalOnProperty属性与源码2.1 属性2.2 源码@ConditionalOnPr...
    99+
    2023-05-19
    SpringBoot @ConditionalOnProperty注解 SpringBoot @ConditionalOnProperty SpringBoot注解
  • Python标准库之time库的使用教程详解
    目录1.时间戳2.结构化时间对象3.格式化时间字符串4.三种格式之间的转换time模块中的三种时间表示方式: 时间戳 结构化时间对象 格式化时间字符串 1.时间戳 时间戳1970.1...
    99+
    2024-04-02
  • MySQL中标准时间同步服务器的使用方法是怎样的
    本篇文章给大家分享的是有关MySQL中标准时间同步服务器的使用方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。标准时间同步服务器接收...
    99+
    2024-04-02
  • 提升网页制作质量的方法:了解W3C标准
    标题:了解W3C标准如何提高网页制作质量引言:随着互联网的迅猛发展,网页已经成为人们获取信息和交流的重要途径。在网页制作过程中,采用符合W3C标准的技术和规范是提高网页制作质量的重要手段。本文将探讨W3C标准对网页制作的重要性以及如何应用W...
    99+
    2023-12-26
    质量提升 WC标准 网页制作
  • 使用 Golang 准备 MongoDB 查询的方法
    哈喽!今天心血来潮给大家带来了《使用 Golang 准备 MongoDB 查询的方法》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golan...
    99+
    2024-04-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作