@Repository | 用于标注数据访问组件,即DAO组件。 |
@Service | 用于标注业务层组件。 |
@RestController | 用于标注控制层组件(如struts中的action),包含@Controller和@ResponseBody |
@ResponseBody | 表示该方法的返回结果直接写入HTTP response body中 |
@Component | 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 |
@ComponentScan | 组件扫描。相当于,如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean |
@Configuration | 指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上。 |
@Bean | 相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。 |
@EnableAutoConfiguration | 让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。 |
@Qualifier | 当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用 |
@Resource(name=“name”,type=“type”) | 没有括号内内容的话,默认byName。与@Autowired干类似的事。 |
@RequestMapping | RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 |
@RequestParam | 用在方法的参数前面。 |
@PathVariable | 路径变量。参数与大括号里的名字一样要相同。 |
@Profiles | Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。 |
@ControllerAdvice | 包含@Component。可以被扫描到。统一处理异常 |
@ExceptionHandler(Exception.class): | 用在方法上面表示遇到这个异常就执行以下方法 |
@SpringBootApplication | 启动类注解 |
@ImportAutoConfiguration | 导入配置类,一般做测试的时候使用,正常优先使用@EnableAutoConfiguration |
@SpringBootConfiguration | 注释是一个类级别的注释,它指示此类提供了应用程序配置 |
@ImportResource | 将资源导入容器 |
@PropertySource | 导入properties文件 |
@Role | bean角色定义为ROLE_APPLICATION(默认值)、ROLE_SUPPORT(辅助角色)、ROLE_INFRASTRUCTURE(后台角色,用户无感) |
@Scope | 指定bean的作用域,默认singleton,其它包括prototype、request、session、globalSession |
@Lazy | 使bean懒加载,取消bean预初始化。 |
@Primary | 自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否者将抛出异常。 |
@Profile | 指定Bean在哪个环境下被激活 |
@DependsOn | 依赖的bean注册完成,才注册当前类,依赖bean不存在会报错。用于控制bean加载顺序 |
@PostConstruct | bean的属性都注入完毕后,执行注解标注的方式进行初始化工作 |
@Autowired | 注入,默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。 |
@Lookup | 根据方法返回的类型,去容器中捞出对应 |
@Qualifier | 申明bean名字,且可以按bean名字加载bean |
@Required | 检查bean的属性setXXX()方法,要求属性配置阶段必须已配置 |
@Description | 添加bean的文字描述 |
@EnableAspectConfiguration | 启动AspectJ自动配置 |
@EnableLoadTimeWeaving | 启动类加载器动态增强功能,使用instrumentation实现 |
@AutoConfigurationPackage | 包含该注解的package会被AutoConfigurationPackages注册 |
@AutoConfigureBefore | 在指定配置类初始化前加载 |
@AutoConfigureAfter | 在指定配置类初始化后加载 |
@AutoConfigureOrder | 指定配置类初始化顺序,越小初始化越早 |
@ModelAttribute | 注解在方法上的@ModelAttribute说明了方法的作用是用于添加一个或多个属性到model上。这样的方法能接受与@RequestMapping注解相同的参数类型,只不过不能直接被映射到具体的请求上 |
@Conditional | 当指定的条件都满足时,组件才被注册 |
@ConditionalOnBean | 指定bean在上下文中时,才注册当前bean。用在方法上,则默认依赖类为方法的返回类型 |
@ConditionalOnClass | 指定类在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型 |
@ConditionalOnCloudPlatform | 在指定云平台才注册配置 |
@ConditionalOnExpression | 指定spel为true时注册配置 |
@ConditionalOnJava | 在指定java版本时注册配置 |
@ConditionalOnMissingBean | 指定bean不在上下文中时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型 |
@ConditionalOnMissingClass | 指定类不在classpath上时,才初始化当前bean。用在方法上,则默认依赖类为方法的返回类型 |
@ConditionalOnNotWebApplication | 不是在web环境才注册配置 |
@ConditionalOnProperty | 配置文件中的值与指定值是否相等,相等才注册配置 |
@EnableCaching | 开启缓存配置,支持子类代理或者AspectJ增强 |
@CacheConfig | 在一个类下,提供公共缓存配置 |
@Cacheable | 缓存方法或类下所有方法的返回值 |
@CachePut | 每次先执行方法,再将结果放入缓存 |
@CacheEvict | 删除缓存 |
@Caching | 可以配置@Cacheable、@CachePut、@CacheEvict |
@EnableScheduling | 开启定时任务功能 |
@Scheduled | 按指定执行周期执行方法 |
@Schedules | 包含多个@Scheduled,可同时运行多个周期配置 |
@EnableAsync | 开启方法异步执行的能力,通过@Async或者自定义注解找到需要异步执行的方法。通过实现AsyncConfigurer接口的getAsyncExecutor()和getAsyncUncaughtExceptionHandler()方法自定义Executor和异常处理。 |
@Async | 标记方法为异步线程中执行 |
@EnableConfigurationProperties | 启动@ConfigurationProperties功能 |
@ConfigurationProperties | 将properties文件里的内容,自动注入bean对应的属性中 |
@DeprecatedConfigurationProperty | 用在配置文件的getter()方法上,标记字段已经过期,并提示替换的字段。一般给spring-boot-configuration-processor使用。 |
@NestedConfigurationProperty | 标记在配置文件的字段上,提示spring-boot-configuration-processor,配置包含嵌套的配置 |
@Entity ,@Table(name="") | 表明这是一个实体类,一般用于jpa,这两个注解一块使用,但是如果表名和实体类名相同的话,@Table可以省略。 |
@MappedSuperClass | 将实体类的多个属性分别封装到不同的非实体类中。例如,数据库表中都需要id来表示编号,id是这些映射实体类的通用属性,交给jpa统一生产主键id编号,那么使用一个父类来封装这些通用属性,并用@MappedSuperClass标识 |
@NoRepositoryBean | 一般用做父类的repository,有这个注解,spring不会去实例化该repository。 |
@Column | 如果字段名和列名相同,则可以省略。 |
@Id | 表示该属性为主键。 |
@Transient | 表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。 |
@Basic | 是实体类与数据库字段映射时最简单的类型。 |
@JsonIgnore | 在实体类向前台返回数据时用来忽略不想传递给前台的属性或接口。 |
@PropertySource | 引入单个properties文件:@PropertySource(value = {“classpath:xxxx/xxxx.properties”}) |
@Value | 注解取配置文件中的值,@Value("${properties中的键}")private String xxx; |
@Transactional | 在Spring中,事务有两种实现,分别是编程式事务和声明式事务。 |
@EnableEurekaServer | 用在springboot启动类上,表示这是一个eureka服务注册中心; |
@EnableDiscoveryClient | 用在springboot启动类上,表示这是一个服务,可以被注册中心找到; |
@LoadBalanced | 开启负载均衡能力; |
@EnableCircuitBreaker | 用在启动类上,开启断路器功能; |
@HystrixCommand(fallbackMethod=”backMethod”) | 用在方法上,fallbackMethod指定断路回调方法; |
@EnableConfigServer | 用在启动类上,表示这是一个配置中心,开启Config Server; |
@EnableZuulProxy | 开启zuul路由,用在启动类上; |