超级全的一大波spring常用注解

1. @Component,@ Service,@ Repository,@ Controller注解的区别
@Component是任何Spring管理组件的通用构造型。@Repository,@Service和,并且@Controller是@Component更具体的用例的特化,例如,分别在持久性,服务和表示层中。
2. @PostConstruct 和 @PreDestory
实现初始化和销毁bean之前进行的操作。
3. @Primary
自动装配时出现多个bean候选者,将@Primary的作为首选
4. @Lazy(true)
代表是否取消预初始化。
5. @DependsOn
用于强制初始化其他Bean。
6. @ConditionalOnMissingBean,@ConditionalOnClass,@ConditionalOnBean
满足on后面的条件才会实例化这个bean。比如没有xxBean,存在xxClass,存在xxBean。
7. @Autowired, @Resource
自动装配。区别:Autowired by type.Resouce by name.
8. @Async
会在新线程中执行。
9. @Singleton
单例类。
10. @PathVariable,@RequestHeader,@CookieValue,@RequestParam, @RequestBody,@SessionAttributes, @ModelAttribute, @ResponseStatus,@RequestMapping
PathVariable :处理url参数
RequestHeader :请求头
CookieValue :请求头中的cookie
RequestParam : url中?后面的参数
RequestBody :请求体
SessionAttributes :多个请求可共用session
ModelAttribute :把数据添加到模型对象上
ResponseStatus : 修饰异常类,返回状态码。
RequestMapping : 处理映射请求
11. @Scope
Singleton: 单例
Prototype: 每次getBean都是新的
以下3个都是用于web程序
Request:request可以看做prototype的一种特例,场景更加具体。程序为每个请求创建一个新的对象,请求结束,对象销毁。
Session:作用时间比request长,相当于session,其他的类似。
Global session: global session只有应用在基于porlet的web应用程序中才有意义,它映射到porlet的global范围的session,如果普通的servlet的web 应用中使用了这个scope,容器会把它作为普通的session的scope对待。
12. @RestController,@Controller
@RestController = @Controller + @ResponseBody。

13. @Configuration
@Configuration用于定义配置类,内部包含有一个或多个被@Bean注解的方法。
14. @Bean
注册bean
15. @ComponentScan
扫描包
16. @EnableAutoConfiguration
让Springboot根据应用所声明的依赖来对spring框架进行自动配置,一般加在主类上
17. @SpringBootApplication
@Configuration+@EnableAutoConfigeration+@ComponentScan
18. @Qualifier
当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定,与@Autowired配合使用
19. @Profiles
与maven中的profile很相似,通过配置来改变参数
20. @ConfigurationProerties
加载外部配置
21. @ControllerAdvice
用于统一处理异常
21. @ExceptionHandler
与ControllerAdvice配合使用,用于方法上表示遇到这个异常就执行这个方法
22. @EnableDiscoveryClient && @EnableEurekaClient
@EnableDiscoveryClient基于spring-cloud-commons,@EnableEurekaClient基于spring-cloud-netflix
如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。
23. @Mapper && @MapperScan
Mapper类上面添加注解@Mapper,@MapperScan可以指定要扫描的Mapper类的包的路径
24. @EnableAsync
为了让@Async注解能够生效,需要在Spring Boot的主程序中配置@EnableAsync
25. @LoadBalanced
Spring Cloud的commons模块提供了一个@LoadBalanced注解,方便我们对RestTemplate添加一个LoadBalancerClient,以实现客户端负载均衡。通过源码可以发现这是一个标记注解,我们可以通过ribbon实现客户端的负载均衡功能。
26. @EnableScheduling @Scheduled
EnableScheduling启动spring 自带定时任务。Scheduled编写定时任务。
27. @Cacheable
调用方法是会查询缓存,如不存在则执行方法,并将结果保存到缓存中。
28. @EnableCaching
如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了
29. @EnableAspectJAutoProxy
开启aop
30. @EnableTransactionManagement
开启spring 事务管理
31. @EnableWebMvc
开启mvc
32. @Value
可以将值绑定到对应属性
33. @ConfigurationProperties
一个一个用@ Value比较麻烦,可以直接在properties文件中注入属性。
34. @Import @ImportResource
Import导入配置类,ImportResource导入配置文件

Spring cloud
1. @EnableConfigServer
设置为spring cloud config 的server
2. @EnableEurekaServer
启动一个服务注册中心给其他应用使用
3. @EnableDiscoveryClient
该注解在服务启动的时候,可以触发服务注册的过程,向配置文件中指定的服务注册中心(Eureka-Server)的地址注册自己提供的服务,同时开启服务发现能力
4. @EnableFeignClients
用于启动Fegin功能
5. @FeignClient
定义远程调用的接口
6. @RibbonClients
通过@RibbonClients 引入了一个默认配置类,会将这个配置类注册为一个RibbonClientSpecification类型的Bean,EurekaRibbonClientConfiguration 这个类作为此Bean的构造函数的一个参数
7. @AutoConfigureAfter @AutoConfigureBefore
AutoConfigureAfter在加载配置的类之后再加载当前类
8. @EnableHystrixDashboard
启用Hystrix Dashboard功能。
9. @HystrixCommand
断路器。
10. @EnableZuulServer
使用zuul微服务网关,它包含了对请求的路由和过滤两个功能。
11. @EnableZuulProxy
@EnableZuulProxy简单理解为@EnableZuulServer的增强版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值