Spring核心注解

这篇具有很好参考价值的文章主要介绍了Spring核心注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、@Bean注解

  • 作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
  • 位置: 一般出现在方法上面
  • 属性: name:用于指定bean的id。当不写时,默认值是当前方法的名称
  • 细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。查找的方式和Autowired注解的作用是一样的

2、@Primary注解

该注解是框架在3.0版中引入的

其作用与功能,当有多个相同类型的bean时,使用@Primary来赋予bean更高的优先级


3、@DependsOn注解

         @DependsOn注解是Spring中提供的一个指定Spring创建Bean的依赖顺序的注解。例如,在Spring中需要创建A对象和B对象,可以使用@DependsOn注解指定创建A对象时依赖B对象,此时,在Spring中就会先创建B对象,然后再创建A对象。


4、@Lazy

组件懒加载(最后使用的时候才创建)


5、@Scope

        类注解,设置在类的上方,设置该类创建对象的作用范围,可以用来设置创建出来的bean是否为单例对象,属性定义bean的作用范围,默认为singleto(单例),可填prototype(非单例)


6、 @Configuration

声明这是一个配置类,替换以前配置文件

作用:用于定义配置类,,可替换xml配置文件,也可以理解为Spring配置文件当中的上下文。被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
位置: 一般出现在类上面
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。


7、@Component

它是这些注解里面最普通的一个注解,一般用于把普通pojo实例化到spring容器中
@Controller和@Service和@Repository是它的特殊情况,当一个类不需要进行这几种特殊归类的时候,只是作为一个普通的类,被Spring管理就OK的时候,比较适合采用@Component注解。
原理:将普通JavaBean实例化到spring容器中,Spring容器统一管理,用起来不用自己new了,相当于配置文件中的< bean id=“” class=“”/>


8、@Indexed

        Spring包org.springframework.stereotype下,除了@Component@Controller@Service@Repository外,在5.0版本中新增了@Indexed注解。

        应用中使用<context:component-scan />@ComponentScan扫描的package包含的类越来越多的时候,Spring启动时模式注解解析时间就会变得越长

        @Indexed注解的引入正是为了解决这个问题,项目编译打包时,会在自动生成META-INF/spring.components文件,文件包含被@Indexed注释的类的模式解析结果。当Spring应用上下文进行组件扫描时,META-INF/spring.components会被org.springframework.context.index.CandidateComponentsIndexLoader读取并加载,转换为CandidateComponentsIndex对象,此时组件扫描会读取CandidateComponentsIndex,而不进行实际扫描,从而提高组件扫描效率,减少应用启动时间。


9、@Order

        注解@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order的影响; 

        数字越小优先级越高,越先工作


10、@ComponentScan 

        这是 Spring 3.1 添加的一个注解,用来代替配置文件中的 component-scan 配置,开启组件扫描,即自动扫描包路径下的 @Component 注解进行注册 bean 实例到 context 中。另外,@ComponentScans 是可重复注解,即可以配置多个,用来配置注册不同的子包。


11、@Conditional 

        @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean


12、@Import

作用:用于导入其他的配置类,导入第三方jar包中的组件,或定制批量导入组件逻辑,用来引入额外的一个或者多个 @Configuration 修饰的配置文件类。
位置: 一般出现在主配置类上面
属性:value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就是父配置类,而导入的都是子配置类


13、@ImportResource

 @ImportResource 是导入 xml 配置,等同于 xml 文件的 resources

 替代 XML 元素<import>,如果有些通过类的注册方式配置不了的,可以通过这个注解引入额外的 XML 配置文件,有些老的配置文件无法通过 @Configuration 方式配置的非常管用

14、@Profile

        在Spring容器中如果存在同一类型的多个组件,可以使用@Profile注解标识实际要获取的是哪一个bean,这在不同的环境使用不同的变量的场景下非常有用

        最典型的例子:开发环境、测试环境、生产环境会配置不同的数据源,在尽量不修改代码的情况下,可以使用这个注解来动态指定要连接的数据源


15、@PropertySource

        @PropertySource注解用于指定资源文件读取的位置,它不仅能读取properties文件,也能读取xml文件,并且通过YAML解析器,配合自定义PropertySourceFactory实现解析YAML文件。 


16、@PropertySources

        Spring4中对@PropertySource这个注解进行了功能增强,增加了@PropertySources注解,相当于其父标签,下面可以包括多个子PropertySource注解,示例如下 

@PropertySources({
	@PropertySource("classpath:config.properties"),
	@PropertySource("classpath:db.properties")
})

17、@Lookup

单例组件依赖非单例组件,非单例组件获取需要使用方法文章来源地址https://www.toymoban.com/news/detail-471740.html

到了这里,关于Spring核心注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring基于注解管理bean及全注解开发

    Spring是一款主流的Java EE 轻量级开源框架,目的是用于简化Java企业级引用的开发难度和开发周期。从简单性、可测试性和松耦合度的角度而言,任何Java应用都可以从Spring中受益。Spring框架提供自己提供功能外,还提供整合其他技术和框架的能力。 Spring自诞生以来备受青睐,

    2024年02月14日
    浏览(39)
  • Spring使用注解管理Bean

    引入lib包 Spring对Bean管理的常用注解 @Component组件(作用在类上) Spring中提供了@Component的三个衍生注解:(功能在目前为止是一致的) @Controller WEB层 @Service 业务层 @Repository 持久层 属性注入的注解:(使用注解注入的方式,可以不用提供set方法) @Value  用于注入普通类型 @Autowired  自动装

    2024年01月17日
    浏览(42)
  • Spring Bean 的作用域(Bean Scope)

    大家好,我是 god23bin,今天我们来聊一聊 Spring 框架中的 Bean 作用域(Scope)。 我们在以 XML 作为配置元数据的情况下,进行 Bean 的定义,是这样的: 我们写了一个 Bean 定义(Bean Definition),就是用于创建所定义的类的实例的。 一个 Bean 定义,我们可以类比一个类的定义,你

    2024年02月09日
    浏览(40)
  • Spring使用注解存储Bean对象

    在前一篇博客中( Spring项目创建与Bean的存储与读取(DL))介绍的是通过配置文件注册对象从而存储到 Spring 中,这种方式其实还是挺繁琐的。 实际上,在使用学习使用 Spring过程中,当我们要实现一个功能的时候,先应该考虑的是有没有相应的注解是实现对应功能的,Spring 中

    2024年02月16日
    浏览(38)
  • Spring 非自定义Bean注解

    1.概述 在xml中配置的Bean都是自己定义的, 例如:UserDaolmpl,UserServicelmpl。但是,在实际开发中有些功能类并不是我们自己定义的, 而是使用的第三方jar包中的,那么,这些Bean要想让Spring进行管理,也需要对其进行配置配置非自定义的Bean需要考虑如下两个问题: 被配置的B

    2024年02月13日
    浏览(34)
  • 【Spring】Bean的作用域

    根据 【动力节点】最新Spring框架教程,全网首套Spring6教程,跟老杜从零学spring入门到高级 以及老杜的原版笔记 https://www.yuque.com/docs/share/866abad4-7106-45e7-afcd-245a733b073f?# 《Spring6》 进行整理, 文档密码:mg9b Spring 相关文章整理汇总归纳于:https://www.yuque.com/u27599042/zuisie singleto

    2024年02月14日
    浏览(42)
  • Spring 中存取 Bean 的相关注解

    了解Spring框架中存取Bean的相关注解,包括五大类注解(@Controller, @Service, @Repository, @Component, @Configuration)以及方法注解(@Bean),并掌握它们的用法和区别。

    2024年02月10日
    浏览(38)
  • 7、Spring之基于注解管理bean

    本质上:所有一切的操作都是Java代码来完成的,XML和注解只是告诉框架中的Java代码如何执行。 创建名为spring_ioc_annotation的新module,过程参考3.1节 注解 含义 @Component 将类标识为普通组件 @Controller 将类标识为控制层组件 @Service 将类标识为业务层组件 @Repository 将类标识为持久

    2024年02月14日
    浏览(39)
  • Spring系列三:基于注解配置bean

    上文中, 我们学习到了 Spring系列二:基于XML配置bean 接下来我们学习, 通过注解配置bean 基于注解的方式配置 bean , 主要是项目开发中的组件, 比如 Controller, Service 和 Dao. 组件注解的形式有 1. @Component 表示当前注解标识的是一个组件 2. @Controller 表示当前注解标识的是一个控制器

    2024年02月13日
    浏览(35)
  • 【Spring】使用@Bean和@Import注解配置Bean,与Bean的实例化

    目录 1、bean是什么 2、配置bean 2.1、使用@Bean注解配置Bean 2.2、使用@Import注解配置Bean  3、实例化Bean         在 Spring 中,Bean 是指由 Spring 容器管理的对象。Spring IOC 容器负责创建、配置和管理这些 Bean 对象的生命周期。Spring IOC 容器会管理应用程序中的组件,并通过依赖注

    2024年04月15日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包