@RequestParam 将客户端请求中的参数值映射到相应方法的参数上;
RequestParam中的required是指这个参数是否客户端必须提供,defaultValue则是如果没有提供该参数默认值是什么;
@RestController 返回json字符串的数据,直接可以编写RESTFul的接口;
@CrossOrigin 可以处理跨域请求,让你能访问不是一个域的文件;
@ApiOperation
首先@ApiOperation注解不是Spring自带的,它是是swagger里的
注解@ApiOperation是用来构建Api文档的
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;
使用参考链接:https://www.jianshu.com/p/8033ef83a8ed
@NotNull 被注释的元素不能为null:
@NotNull
private String name;
@NotNull
private Integer age;
@SpringBootApplication 申明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan;
@RefreshScope 如果代码中需要动态刷新配置,在需要的类上加上该注解就行。但某些复杂的注入场景下,这个注解使用不当,配置可能仍然不动态刷新;
@FeignClient springboot调用外部接口:
声明接口之后,在代码中通过@Resource注入之后即可使用。@FeignClient标签的常用属性如下:
name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
url: url一般用于调试,可以手动指定@FeignClient调用的地址
decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
path: 定义当前FeignClient的统一前缀
@controller 控制器(注入服务)
@service 服务(注入dao)
@component 定义spring管理Bean(把普通pojo实例化到spring容器中,相当于配置文件中的
@Autowired 可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法
在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的
通过这种方式来,配置比较繁琐,而且代码比较多。在Spring 2.5 引入了 @Autowired 注释
注意事项:
在使用@Autowired时,首先在容器中查询对应类型的bean
如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据
如果查询的结果不止一个,那么@Autowired会根据名称来查找。
如果查询的结果为空,那么会抛出异常。解决方法时,使用required=false
@Override 在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性。
@RefreshScope 如果代码中需要动态刷新配置,在需要的类上加上该注解就行,使用参考链接:https://www.cnblogs.com/yjmyzz/p/8085530.html;
常用的 lombok 注解
@EqualsAndHashCode 实现equals()方法和hashCode()方法 @ToString:实现toString()方法
@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter 注解在属性上;为属性提供 setting 方法
@Getter 注解在属性上;为属性提供 getting 方法
@Log4j 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor 注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor 注解在类上;为类提供一个全参的构造方法
@Cleanup 关闭流 @Synchronized:对象同步 @SneakyThrows:抛出异常
使用参考链接:https://blog.csdn.net/mccand1234/article/details/53456411;
@ConfigurationProperties 把同类的配置信息自动封装成实体类:可以使属性文件中的值和类中的属性对应起来;
使用方式有两种 :
1、在类上使用该注解
2、在工厂方法上使用该注解 (@bean)
注意:在springBoot中除了使用这个注解读取属性文件值外,还可以用@Value注解。
@Value(“${redis.config}”)
@component 把普通pojo实例化到spring容器中,相当于配置文件中的
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类
lombok:
@Accessors 注解用来配置lombok如何产生和显示getters和setters的方法。
默认情况下,lombok按照豆豆说明书产生getters和setters:例如一个名为pepper(弗兰特产辣椒,lombok的logo是一只小辣椒)属性的getter方法是getPepper。然而一些人可能为了一个更好看的API,想去打破豆豆说明书。@Acessors就是让我们做这个的.
@Accessors 因此有3个选择:
1. fluent 一个布尔值。如果为真,pepper的getter就是 pepper(),setter方法就是pepper(T newValue)。并且,除非特别说明,chain默认为真。
2. chain 一个布尔值。如果为真,产生的setter返回的this而不是void。默认是假。如果fluent=true,那么chain默认为真
3. prefix 一系列string类型。如果显示,属性必须加上某些定义的前缀。每个属性名反过来与列表中的每个前缀进行比较,一个找到一个匹配,这个前缀被提取出来为属性创建基本的名字。前缀列表中不包含任何前缀也是合法的,为空则总是匹配。字符都是字母,紧接着前缀后的字符一定不能是小写字母。例如,pepper对前缀p不是相等匹配,而跟pEpper是匹配的(也就意味着属性的基本名字是epper)