微服务中常用注解

1.@Component(spring注解)
用来标注将普通类交给Spring管理。交给Spring管理就是注册到spring容器中,让spring帮你创建对象。可以通过spring容器获得该对象。相当于spring xml配置文件中的bean标签

2.@Repository(spring注解)
用来标注将mapper层接口的实现类交给Spring管理。@Component的衍生注解,用于标注mapper层(数据层)。

3.@Service(spring注解)
用来标注将业务层实现类交给Spring管理。@Component的衍生注解,用于标注service层(业务层)。

4.@Controller(spring注解)
用来标注将控制层Class交给Spring管理。@Component的衍生注解,用于标注controller层(控制层)。表明该类是springmvc的控制器,会走视图解析器,返回jsp页面,返回json数据需要添加@ResponseBody注解。

5.@Bean(spring注解)
用于告诉方法,产生一个Bean对象,然后将这个Bean对象注册到spring容器中。(和xml中配置bean标签的作用是一样的,可用于配置类当中)@Bean注解用在配置类的方法上。

6.@Configuration(spring注解)
用来定义配置类,可替换xml配置文件,被注解的类内部包含一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。@Configuration注解的类会在项目启动的时候加载。@Configuration注解的类相当于spring配置的xml文件。

7.@Mapper(mybatis注解)
添加了@Mapper注解之后的接口会在编译时生成相应的实现类。

8.@MapperScan(mybatis注解)
扫描要生成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。

9.@ComponentScan(spring注解)
用来寻找bean(注册到spring容器的类)。ComponentScan做的事情就是告诉Spring从哪里找到bean。@SpringBootApplication注解中包含@ComponentScan注解。如果你的其他包都在使用了@SpringBootApplication注解的启动类所在的包及下级包,则你什么都不用做,SpringBoot会自动帮你把其他包都扫描了。

10.@SpringBootApplication(springboot注解)
spring boot提供的一个统一的注解。@SpringBootApplication =@Configuration + @EnableAutoConfiguration + @ComponentScan。
@Configuration用于定义配置类。@EnableAutoConfiguration用于自动为你添加需要的配置。@ComponentScan用于扫描bean。

11.@Resource(java注解)和@Autowired(Spring注解,推荐使用)
给属性注入bean。@Autowired先按照byType注入,在按照name注入,@Resource默认按照 byName注入,在按照type注入。type指的是bean的数据类型,name指的是bean的名称

12.@ResponseBody(将后端查询到的数据转为json格式返回给前端)
将controller中方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。用了此注解后,控制器将不返回视图、只返回数据。

13.@RequestBody(将前端传来的参数放到方法的参数中)
将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。用来接收前端传递给后端的json字符串中的数据(请求体中的数据);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是使用POST方式进行提交。

14.@RestController(如果在控制层的类中使用它,则只能返回json或xml数据,不能返回视图)
@RestController = @Controller + @ResponseBody

15.@RequestMapping
用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

16.@EnableAutoConfiguration
这个注解就是会根据你引入的依赖猜想你需要的配置,然后去自动配置。

17.@EnableEurekaServer
在项目启动类上使用@EnableEurekaServer,可以将项目作为SpringCloud中的注册中心

18.@EnableDiscoveryClient和@EnableEurekaClient
共同点就是:都是让注册中心能够发现,扫描到该服务。让微服务被注册中心发现然后注册,而不是当做注册中心。
不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心。

19.@EnableHystrix
启动熔断降级服务

20.@SpringCloudApplication
包括@SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker,分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说,这是每一微服务必须应有的三个注解,所以才推出了@SpringCloudApplication这一注解集合。

21.@FeignClient(定义feign客户端)
用于微服务之间的调用

22.@EnableScheduling和@Scheduled
定时任务在配置类上添加@EnableScheduling开启对定时任务的支持,在相应的方法上添加@Scheduled声明需要执行的定时任务。
一个是开启定时任务,一个是声明要执行的定时任务。

23.
(1)@GetMapping,处理get请求
(2)@PostMapping,处理post请求
(3)@PutMapping,处理put请求
(4)@DeleteMapping,处理delete请求

24.@Value
给属性注入值
@Value(“${}”)用来读取配置文件中的key对应的value值

25.
(1)@Entity :表明是一个实体类
(2)@Table :对应的数据库表名
(3)@Id :主键
(4)@GeneratedValue:主键生成策略
(5)@Column : 映射表对应的字段名
(6)@Basic : 表示该属性是表字段的映射。 如果实体的字段上没有任何注解默认就是@Basic
(7)@Transient : 表示该属性不是表字段的映射
(8)@Lob : 将属性映射成支持的大对象类型 ,如Clob、Blob
(9)@IdClass 联合主键,一般不用也不推荐用
(10)@Temporal : 用来设置Date类型的属性映射到对应精度的字段
(11)@Enumerated 直接映射枚举类型的字段

26.@RequestParam
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

27.@Import
导入配置类并注册到spring容器中。
当一个类没有使用注解,没有交给Spring管理,这个时候又需要这个类的bean。就可以使用@Import来导入这个类创建bean。

28.@ImportResource(@ImportResource(“classpath:beans.xml”))
用来导入xml文件使用

29.@PathVariable
是spring3.0的一个新功能:接收请求路径中占位符的值。

30.lombok相关注解
(1)@Data
注解在类上, 为类(实体类)提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法。
(2)@AllArgsConstructor
注解在类上,提供类的全参构造
(3)@NoArgsConstructor
注解在类上,提供类的无参构造
(4)@Setter @Getter
可以为相应的属性自动生成Getter/Setter方法
(5)@EqualsAndHashCode
注解在类上,提供对应的 equals 和 hashCode 方法
(6)@Log4j/@Slf4j
注解在类上,提供对应的 Logger 对象,变量名为 log
(7)@Builder
为你的类生成相对略微复杂的构建器API
(8)@ToString
让lombok生成toString()方法的实现
(9)@Accessors
@Accessors用于配置getter和setter方法的生成结果。
【1】fluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。
【2】chain的中文含义是链式的,设置为true,则setter方法返回当前对象
【3】prefix的中文含义是前缀,用于生成getter和setter方法的字段名会忽视指定前缀

31.@EnableFeignClients
开启feign客户端

32.
(1)@EnableTransactionManagement
启动事务支持,等同于xml配置方式的 <tx:annotation-driven />
(2)@Transactional
在需要事务支持的实现类或者public方法上添加此注解实现事务回滚

33.@Override
用于表示被标注的方法是一个重写方法。

34.@PropertySource
加载指定的属性文件

35.@Deprecated
若某类或某方法加上该注解,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用。

36.@Slf4j
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(XXX.class); 可以在类上使用注解@Slf4j

37.@DependsOn
@DependsOn注解可以定义在类和方法上,意思是我这个组件要依赖于另一个组件,也就是说被依赖的组件会比该组件先注册到IOC容器中。

38.@JsonProperty
主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名

39.@JsonInclude
后端返回给前端JSON格式的对象数据中,当对象的字段为NULL时,该字段也会写入JSON返回;而很多时候前端期望后端只返回对象中非null的字段数据。在Jackson框架中提供了 @JsonInclude 注解以实现该功能不返回null字段数据

40.@PostConstruct
@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

41.@JsonIgnore
在json序列化时将pojo中的一些属性忽略掉,标记在属性或者方法上,返回的json数据即不包含该属性。

42.shiro相关注解
(1)@RequiresAuthentication
验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时。

43. @NonNull
是JSR 305(缺陷检查框架)的注解,是告诉编译器这个域不可能为空,当代码检查有空值时会给出一个风险警告,目前这个注解只有IDEA支持。告诉编译器,参数非空。

44.@Aspect
把当前类标识为一个切面供容器读取

45.@Order
注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序。值越小拥有越高的优先级,可为负数。

46.@Scope
@Scope注解的目的是用来调节作用域
(1)@Scope(“prototype”) //多实例,IOC容器启动创建的时候,并不会创建对象放在容器中,当你需要的时候,从容器当中取该对象的时候,就会创建。
(2)@Scope(“singleton”) //单例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
(3)@Scope(“request”) //同一个请求创建一个实例
(4)@Scope(“session”) //同一个session创建一个实例

47.@ControllerAdvice(@RestControllerAdvice)和@ExceptionHandler
@ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理。最常用的就是异常处理。
统一异常处理
需要配合@ExceptionHandler使用。
当将异常抛到controller时,可以对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面
@RestControllerAdvice,用于返回json错误信息

48.spring中AOP相关注解
Advice(通知、切面): 某个连接点所采用的处理逻辑,也就是向连接点注入的代码, AOP在特定的切入点上执行的增强处理。

1.@Before: 标识一个前置增强方法,相当于BeforeAdvice的功能.
2.@After: final增强,不管是抛出异常或者正常退出都会执行.
3.@AfterReturning: 后置增强,似于AfterReturningAdvice, 方法正常退出时执行.
4.@AfterThrowing: 异常抛出增强,相当于ThrowsAdvice.
5.@Around: 环绕增强,相当于MethodInterceptor.

JointPoint(连接点):程序运行中的某个阶段点,比如方法的调用、异常的抛出等。

Pointcut(切入点): JoinPoint的集合,是程序中需要注入Advice的位置的集合,指明Advice要在什么样的条件下才能被触发,在程序中主要体现为书写切入点表达式。

Advisor(增强): 是PointCut和Advice的综合体,完整描述了一个advice将会在pointcut所定义的位置被触发。

@Aspect(切面): 通常是一个类的注解,里面可以定义切入点和通知

AOP Proxy:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以是JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类。

49.@Primary
在众多相同的Bean中,优先使用@Primary注解的Bean(主Bean)。

50.@ConfigurationProperties
将配置文件(application.yaml)的每个属性的值,映射到这个组件(类)中。
告诉Springboot将本类中的所有属性和配置文件中的配置进行绑定;
在springBoot配置文件中配置的数据会和框架中的类相互绑定

51.@Plugin
Plugin 注解提供了一种便捷的方法将一个类声明成 log4j2 的插件
1.@ConverterKeys
2.@PerformanceSensitive

52.@JsonFormat
@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型时,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。

53.@Lazy
一般情况下,Spring容器在启动时会创建所有的Bean对象,使用@Lazy注解可以将Bean对象的创建延迟到第一次使用Bean的时候。

54.@SuppressWarnings
告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
(1)@SuppressWarnings(“unchecked”)
告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
(2)@SuppressWarnings(“serial”)
如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long
使用这个注释将警告信息去掉。
(3)@SuppressWarnings(“deprecation”)
如果使用了@Deprecated注释的方法,编译器将出现警告信息。
使用这个注释将警告信息去掉
(4)@SuppressWarnings(“unchecked”, “deprecation”)
告诉编译器同时忽略unchecked和deprecation的警告信息
(5)@SuppressWarnings(value={“unchecked”, “deprecation”})
等同于@SuppressWarnings(“unchecked”, “deprecation”)

55.junit测试相关注解
(1)@Test
@Test 注解是TestNG的核心注解,被打上该注解的方法,表示为一个测试方法。
测试方法类似主方法,可以直接运行。
(2)@Before
初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
(3)@After
释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
(4)@Ignore
忽略的测试方法
(5)@BeforeClass
针对所有测试,只执行一次,且必须为static void
(6)@AfterClass
针对所有测试,只执行一次,且必须为static void
(7)一个JUnit4的单元测试用例执行顺序为:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
(8)每一个测试方法的调用顺序为:
@Before -> @Test -> @After;

56.@Qualifier
指明使用哪个实现类bean注入对象

57.@ConditionalOnxxx注解
conditional:有条件的,只有在满足条件的情况下才创建bean
@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)

58.@RequestHeader注解(spring注解)
用于映射请求头数据到Controller方法的对应参数。

59.@FunctionalInterface注解(java基础注解)
标志注解,用在接口上,表明该接口只能定义一个抽象方法,函数式接口可使用lambda表达式。

60.@EnableConfigurationProperties
开启@ConfigurationProperties

61.mybatis相关注解
(1)@Insert:插入语句
(2)@Delete:删除语句
(3)@Update:修改语句
(4)@Select:查询语句
(5)@Result:结果映射
(6)@InsertProvider、@DeleteProvider、@UpdateProvider、@SelectProvider:增删改查,可以动态的拼接sql语句
(7)@Results:返回结果集映射
(8)@Result:返回单条结果映射

62.@AliasFor
给注解的属性起别名

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Firm陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值