一、Lombok常用注解
官网:https://projectlombok.org/contributing/index
github地址:https://github.com/rzwitserloot/lombok
Lombok项目是一个Java库,应用注解简化JavaBean的开发!
常用注解如下:
注解 | 描述 |
---|---|
@Data | 类上注解,为类的所有属性都提供get()、set(),、equals()、canEquals、hashCode()、toString() |
@Setter | 类上注解,为所有属性添加set();属性上注解,为该属性提供set() |
@Getter | 类上注解,为所有属性添加get();属性上注解,为该属性提供get() |
@NoArgsConstructor | 无参构造器 |
@RequiredArgsConstructor | 部分参数构造器 |
@AllArgsConstructor | 全参构造器 |
@EqualsAndHashCode | 重写equal和hashcode方法 |
@Log | 快速使用slf4j日志 |
@Log4j | 快速使用log4j日志 |
@Slf4j | 内置log对象,直接调用日志方法输出日志 |
@ToString | 提高toString方法 |
@NotNull | 使用参数,如果调用传值null类型,就会抛出空指针异常 |
二、Swagger常用注解
官网:https://swagger.io/
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化Restful风格和Web服务(swagger2生成实时接口文档,,直接进行服务接口调用测试)。
注解 | 描述 |
---|---|
@Api(tags="xxxx类专用于测试") | 用于请求类上,描述当前类 |
@ApiOperation(value="xxxxx") | 用于请求方法上,说明该方法的用途、作用 value=“说明方法的用途作用” |
@ApiImplicitParams | 用于请求方法上,表示一组参数说明 @ApiImplicitParam:指定一个请求参数的参数说明 |
@ApiImplicitParam | value :参数的中文说明、解释required :参数是否必须传递paramType :参数存放在哪个位置(header:请求头、query:请求参数、path:用于restful接口、body、form)dataType :参数类型,默认String–"dataType=“Integer”defaultValue :参数的默认值 |
@ApiResponses | 用在请求方法上,表示一组响应 @ApiRespnse |
@ApiRespnse | 一般用于表达一个错误的响应信息 code:状态码、message:返回信息、response:抛出异常的类 |
@ApiModel | 用于响应类上,返回响应数据信息 入参实体:使用RequestBody场景,请求参数无法使用ApiImplicitParam注解进行扫描 ApiModelProperty:用在属性上,描述响应类的属性 |
三、SpringBoot常用注解
官方:https://spring.io/projects
SpringBoot底层是Spring,简化Spring开发应用,约定大于配置,无需配置XML,无代码生成,开箱即用。快速创建独立运行的Spring项目以及主流框架集成!
注解 | 描述 |
---|---|
@SpringBootApplication | 主程序标注,@ComponentScan+@Configuration+@EnableAutoConfiguration |
@MapperScan("com.xxxx.ssm.dao") | 主程序标注,专门扫描dao接口,作为dao的代理对象,注入给service层 |
@EnableTransactionManagement | 主程序启动声明式事务 |
@Transactional(readOnly=true) | 在service层进行注解,开启事务 |
@ServletComponentScan | 扫描@WebServlet @ WebFilter @ WebListener |
@SpringBootConfiguration | springboot提供的,推荐使用,代替了@Configuration<spring提供> |
@Controller | 在类上注解,表示一个控制层bean |
@Service | 在类上注解,表示一个业务层bean |
@Respository | 在类上注解,表示一个持久层bean |
@Component | 泛指组件,一般公共的方法会用上这个注解。 |
@Autowired | 按类型注入bean,默认required=为true; 当不能确定 Spring 容器中一定拥有某个类的Bean 时, 可以在需要自动注入该类 Bean 的地方@Autowired(required = false); 与注解@Qualifier 结合使用时,策略由 byType 转变byName 。它是Spring的注解! |
@Resource | 按名称注入bean,它是JavaEE的注解! |
@RestController | @RestController 结合了@ResponseBody 和 @Controller 的注解 |
@PathVariable | Restful风格接收参数 |
@RequestParam(value="name",required=false) | 一般的数据请求风格,接收请求参数 |
@ComponentScan | 扫描Configuration类,并把它加入到上下文 |
@ConfigurationProperties(prefix = "spring.xxxxxx") | 将配置文件内参数映射成一个对象,通过prefix设定前缀,将后面的和对象的属性名一致就能实现注入 |
@Value 与上的注解性质类同 | 读取配置文件中参数值,value注解放在变量上,是单值读取,value标注变量并不需要和配置文件的参数名字一致。 |
@Bean | 标注在方法上,等价在XML配置bean,返回一个实体对象 |
@RequestMapping | 用来处理请求地址映射的注解,可用于类或方法上 |
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping | 用来处理请求地址映射的注解,组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写 |
@RequestBody | 异步获取数据时使用,用于构建Restful的api,返回json数据 |
四、SpringCloud常用注解
SpringCloud工程:https://spring.io/projects
SpringCloud英文网:https://spring.io/projects/spring-cloud/#quick-start
SpringCloud中文网:https://www.springcloud.cc/
SpringCloud是分布式系统的解决方案,底层用的SpringBoot构建项目,SpringCloud新增很多的starter。
SpringCloud是一系列框架的有序集合,它简化了分布式系统基础设施开发,如服务发现注册(Eureka)、智能路由(Zuul)、消息总线、负载均衡(Ribbon)、熔断器(Hystrix)、远程调用(Feign)等,利用SpringBoot的开发风格做到一起启动与部署。
注解 | 描述 |
---|---|
@SpringBootApplication | 包含三个启动类 @Configuration:表示将该类作用SpringBoot配置文件类 @EnableAutoConfiguration:表示启动类时,自动创建SpringBoot的默认配置 @ComponentScan:表示程序启动,扫描当前包及其子包下所有类 |
@EnableDiscoveryClient | @EnableAutoConfiguration:表示程序启动时,自动加载springboot默认的配置启动服务发现客户端,客户端和注册中心之间采用心跳机制通讯,不续约就会过期 |
@EnableFeignClients | @ComponentScan:表示程序启动是,自动扫描当前包及子包下所有类启动Feign远程调用接口 |
@EnableCircuitBreaker | 启动熔断器保护功能 |
@EnableHystrixDashboard | 启动熔断器仪表盘 例如:http://127.0.0.1:10000/hystrix |
@FeignClient(value="xxx-service",fallback=xxxFeignExceptionHandler.class) | Feign进行远程调用,value表示服务名,fallback表示远程异常处理,这里会有一个兜底的数据 |
@GetMapping ("/getMovieById/{id}") | RestFul风格,处理请求地址映射 |
@PathVariable (“id”) Integer id | RestFul风格,接收参数 |
@LoadBalanced | 实现负载均衡 |
@ResquestBody | 接收前端页面传递的多个参数 |
♚学习、实战、总结、分享,让生活变得更美好!
☞林大侠博客:https://coding0110lin.blog.csdn.net/ 欢迎转载,一起技术交流探讨!