Spring框架的常用注解包括SpringBoot和SpringCloud

本文目前借鉴了 https://blog.csdn.net/ght886/article/details/81251919以及自己搜索的一些解释,力求一句话解释清楚。(因为不知道文章最早是谁发的,这个是目前找到最早发的了,若是发现原作者请告知)此文只是根据我个人在开发中常用的配置来写的,若您发现有文章有不对或需要补充的地方请指明,谢谢。

Spring framework部分

  1. 声明Bean的注解
    (Bean因为在使用的时候要将类实例化,Bean就是类代理或代言人,将类实例化,实际上确实是通过反射、代理来实现的)
    @Component 组件
    在配置组件或不太好分类的时候用@Component
    @Service 在业务逻辑层使用
    用于标注业务层组件(service层),用注解的方式把这个类注入到spring的工厂中,若不自定义Service的名字,则他会自动配置为当前类的名字(符合驼峰规则)。
    @Repository 在数据访问层使用
    用于标注数据访问组件(dao层),即DAO组件
    @Controller 在展现层使用,控制器的声明
    标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象
  2. 注入Bean的注解
    (就是将有下述标记的方法/属性放入Bean工厂当中,让工厂来统一控制)
    @Autowired @Inject @Resource
    因为这三个的使用方法一致,我就在这里不一一赘述了,都是将方法或属性放入Bean工厂,我一般使用的是@Resource,它可以默认将属性的名字设置为你写的名字。例如:
    在使用的时候直接用channelDao。
	@Resource
	ChannelDao channelDao;
  1. java配置类相关注解
    (在使用零配置的时候的注解)
    @Configuration
    该类等价与XML中配置beans,相当于Ioc容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean,与xml中配置的Bean意思一样。
    @Bean
    告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次(可以通过改配置取消单一模式,默认是单一模式),随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
    @ComponentScan
    该注解默认会扫描该类所在的包下所有的配置类。
    @WishlyConfiguration
    为@Configuration与@ComponentScan的组合注解,可以替代这两个注解。
  2. 切面(AOP)相关注解
    Spring支持AspectJ的注解式切面编程。
    @Aspect
    声明一个切面类,有该注释的就是剖面。
    @Pointcut:
    Pointcut是植入Advice的触发条件。每个Pointcut的定义包括2部分,一是表达式,二是方法签名。方法签名必须是 public及void型。可以将Pointcut中的方法看作是一个被Advice引用的助记符,因为表达式不直观,因此我们可以通过方法签名的方式为 此表达式命名。因此Pointcut中的方法只需要方法签名,而不需要在方法体内编写实际代码。
    @Around:环绕
    @AfterReturning:后置增强,方法正常退出时执行
    @Before:标识一个前置增强方法
    @AfterThrowing: 异常抛出
    @After: 不管是抛出异常或者正常退出都会执行
  3. @Bean的属性支持(就是设置Bean的属性)
    @Scope
    设置Spring容器如何新建Bean实例(方法上,得有@Bean)

其设置类型包括:
Singleton (单例,一个Spring容器中只有一个bean实例,默认模式),
Protetype (每次调用新建一个bean),
Request (web项目中,给每个http request新建一个bean),
Session (web项目中,给每个http session新建一个bean),
GlobalSession(给每一个 global http session新建一个Bean实例)

  1. @Value:
    (我在使用的时候是配合着 @PropertySource(" classpath:application.properties ") 一起使用,中间的字符串是配置文件的路径。@PropertySource是加载指定的属性文件(*.properties)到 Spring 的 Environment 中。)
    @Value("${jdbc.driverClass}")
    private String driverClass;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    
    配置文件
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/cms
    jdbc.username=root
    jdbc.password=123456
    
  2. @Enable*注解说明
    这些注解主要用来开启对xxx的支持。
    @EnableAspectJAutoProxy
    开启对AspectJ自动代理的支持
    @EnableAsync
    开启异步方法的支持
    @EnableScheduling
    开启计划任务的支持
    @EnableConfigurationProperties
    开启对@ConfigurationProperties注解配置Bean的支持
    @EnableJpaRepositories
    开启对SpringData JPA Repository的支持
    @EnableTransactionManagement
    开启注解式事务的支持
    @EnableCaching
    开启注解式的缓存支持

SpringMVC部分

  1. @EnableTransactionManagement
    开启注解式事务的支持,启用事务管理,在类里面去扫描,拦截有 @Transactional 注解的类或方法,给他进行代理。
  2. @EnableWebMvc
    开启Web MVC的配置支持,在使用的时候会读取 application.properties 或 application.yml 文件中的配置。
  3. @RequestMapping
    使用@RequestMapping 注解映射请求路径,写在controller中。
  4. @RestController
    这个注解相当于@Controller,@RequestBody,@ResponseBody三个注解的集合,只要在类前添加这个注解,这三个注解都不用再配置。并且所有方法响应的对象都会转换json串并响应到客户端

Spring Boot部分

  1. @ConfigurationProperties
    用于放在需要自动装配的类的上面。
  2. @EnableConfigurationProperties
    使使用 @ConfigurationProperties 注解的类生效,他的括号里是数组,可以传多个类进去。
  3. @SpringBootApplication
    是用来开启下面三个注释
    • @EnableAutoConfiguration:启用Spring Boot的自动配置机制
    • @ComponentScan:在应用程序所在的包上启用@Component扫描(参见最佳实践)
    • @Configuration:允许在上下文中注册额外的bean或导入额外的配置类
      说明该类是SpringBoot的启动类。在使用是用SpringApplication.run(类.class)。
  4. @SpringBootConfiguration
    说明这是一个配置文件类,就像xml配置文件,而现在是用java配置文件。并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

SpringCloud部分:

  1. @EnableEurekaServer
    声明该类是一个EurekaServer(注册中心)
  2. @EnableDiscoveryClient
    开启EurekaClient功能,将该类注册在注册中心,是其能访问到被注册的类。
  3. @LoadBalanced
    开启Ribbon负载均衡。
  4. @EnableCircuitBreaker
    启动微服务的熔断,防止服务器雪崩。
  5. @HystrixCommand(fallbackMethod=“queryUserByIdFallback”) :
    声明一个失败回滚处理函数queryUserByIdFallback,当queryUserById执行超时(默认是1000毫秒),就会执行配置函数,返回错误提示。
  6. @SpringCloudApplication
    该注解包函了:
    • @SpringBootApplication
    • @EnableDiscoveryClient
    • @EnableCircuitBreaker
  7. @EnableFeignClients
    开启Feign功能。
  8. @FeignClient
    声明这是一个Feign客户端,类似 @Mapper 注解。同时通过 value 属性指定服务
    名称
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值