Spring的注解总结。

  地址:https://docs.spring.io/spring/docs/4.3.12.RELEASE/spring-framework-reference/htmlsingle/

1、标记注解

@Configuration

定义:标记该类作为一个特殊配置类,可以理解为xml文件中的<beans></beans>

Tip:内部@bean注解方法返回的实例为完全体

原文:Annotating a class with @Configuration indicates that its primary purpose is as a source of bean definitions.

@ComponentScan

定义:与@Configuration配合使用,默认将此类的包作为根,自动扫描目录下所有注解,可以理解为<context:component-scan/>

Tip:<context:component-scan>隐式的声明了<context:annotation-config>,所以只需声明一个

原文:To autodetect these classes and register the corresponding beans, you need to add @ComponentScan to your @Configuration class

@EnableAutoConfiguration

定义:让SpringBoot根据引入的jar包,决定用对应方式来进行初始化操作

原文:This annotation tells Spring Boot to “guess” how you will want to configure Spring, based on the jar dependencies that you have added.

@Profile

定义:描述性注解,仅当条件满足时激活类

原文:The @Profile annotation allows you to indicate that a component is eligible for registration when one or more specified profiles are active.

2、类注解

@Component

定义:注明该类会被Spring管理,属于一般性注解

原文:@Component is a generic stereotype for any Spring-managed component.

@Service、@Controller、@Repository

定义:与@Component作用相同,区别在于语义化

原文:@Repository@Service, and @Controller are specializations of @Component for more specific use cases

@Named、@ManagedBean

定义:分别来自于JS-R330、JSR-250,作用与Component类似,可以自定义名字

Tip:JSR-330注解不支持组合注解

@scope

定义:辅助注解,指定类的作用域

Tip:JSR-330的类注解默认scope为'prototype',为了保持一致,Spring将其默认设置为'singleton'

@Qualifier

定义:辅助注解,指定类的id(name)

@ImportResource

定义:引入外部配置文件,配合@Value可以进行配置初始化

3、实例方法注解

@Bean

定义:该注解作用于一个方法,方法必须实例化一个类并交给IOC容器管理,功能类似于xml配置文件中的<bean/>

Tip:若方法所在的类未被注解为@configuration,则返回lite状态的类,此时不允许实例化中引用其他类

原文:The @Bean annotation is used to indicate that a method instantiates, configures and initializes a new object to be managed by the Spring IoC container.

@Description

定义:对@Bean的描述

原文:it is helpful to provide a more detailed textual description of a bean.

@value

定义:用于对类中实例变量进行初始化赋值

4、基于依赖的方法注解

@Resource

定义:来源于JSR-250,默认通过name注入,失败退化为type

@Inject

定义:来源于JSR-330,默认通过type注入,失败退化为name

Tip:可用Java8的optional,等价于required

@Autowired

定义:Spring自定义注解,功能类似于@inject

Tip:可用required表示该依赖是否必须赋值

5、组合注解

@SpringBootApplication

定义:该注解等价于@Configuration、@EnableAutoConfiguration、@ComponentScan三个注解的组合

原文:The @SpringBootApplication annotation is equivalent to using @Configuration@EnableAutoConfiguration and @ComponentScan with their default attributes.

@RestController

定义:该注解等价于@ResponseBody、@Controller的组合

Spring学习之路-注解的更多相关文章

  1. Spring学习之事务注解@Transactional

    今天学习spring中的事务注解,在学习Spring注解事务之前需要明白一些事务的基本概念: 事务:并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位.通 ...

  2. Spring学习之路-SpringBoot简单入门

    简单讲SpringBoot是对spring和springMVC的二次封装和整合,新添加了一些注解和功能,不算是一个新框架. 学习来源是官方文档,虽然很详细,但是太墨迹了… 地址:https://doc ...

  3. Spring学习之常用注解(转)

    使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...

  4. spring学习笔记二 注解及AOP

    本节需要导入spring-aop包 注解 使用注解的目的是为了代替配置,在使用注解时,省略键时,则是为value赋值. 扫描某个包下的所有类中的注解 <?xml version="1. ...

  5. Spring学习笔记5——注解方式AOP

    第一步:注解配置业务类 使用@Component("Pservice")注解ProductService 类 package com.spring.service; import ...

  6. spring学习 十四 注解AOP 通知传递参数

    我们在对切点进行增强时,不建议对切点进行任何修改,因此不加以使用@PointCut注解打在切点上,尽量只在Advice上打注解(Before,After等),如果要在通知中接受切点的参数,可以使用Jo ...

  7. Spring学习之路-从放弃到入门

    AOP:方法拦截器 IOC:类管理容器 主要讲讲这一天看Spring视频学到的东西,以下的叫法全是自创的. 1.类实例管理容器 关于Spring,首先是对类的管理,在常规情况,生成一个类需要调用new ...

  8. Spring学习笔记--使用注解装配

    使用@Autowired注解 从Spring2.5开始,最有趣的一种装配Spring Bean的方式是使用注解自动装配Bean的属性.Spring默认禁用注解装配,最简单的启用方式是使用Spring的 ...

  9. Spring学习之-各注解的含义总结

    注解配置 @ComponentScan("spittr.web"):/在加载Spring上下文时,会扫描spittr.web包查找组件 @ComponentScan注解扫描的组件有 ...

随机推荐

  1. scikit-FEM-mesh

    # -*- coding: utf-8 -*- """ “Mesh”模块包含了有限元网格的不同类型. See the following implementations: ...

  2. Cerebro_变量名搜索插件

    Cerebro 安装 兼容环境:Windows, MacOS, Linux 插件依赖于 Cerebro,下载地址: https://github.com/KELiON/cerebro/releases ...

  3. Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

    一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name  = "Jonathan&q ...

  4. Android-WebView加载网页(new WebView(this)方式)

    之前的博客,都是 findViewById(R.id.webview);,来得到WebView, 此博客使用 new WebView(this)方式; AndroidManifest.xml中配置网络 ...

  5. MySQL--binlog和relay log的生成和删除

    ##================================================================================================== ...

  6. Android SDK Mangaer 需要下载的组件

    以 Windows 下为例,安装完 Android SDK 后,可以看到 SDK 的目录结构如下: 其中: SDK Manager.exe 是 Android SDK 的管理工具, AVD Manag ...

  7. 解决C#项目出现“此项目引用这台计算机上缺少的 NuGet 程序包。使用 NuGet 程序包还原可下载这些程序包。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props”

    1.打开项目的.csproj文件 2.删掉如下选中的内容: 3.右键项目-->管理NuGet程序包(N) 找到Microsoft.CodeDom.Providers.DotNetCompiler ...

  8. 【UML】:时序图

    时序图表达了类之间调用关系,以及调用时序关系. Actor: 调用者实例化类的对象,执行者. Lifeline: 生命线,竖的虚线.上方方框是类名表示存在的时间,从上至下表示时间流逝.Lifeline ...

  9. 并发上下文控制包Context

    Context,是golang用来控制并发流程的库,它能方便的将主控程序的停止信号传递到goroutinue中,从而实现一键中止关联goroutinue的执行,除此之外,它还能将外部变量通过Value ...

  10. JS数组去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...