1.springBoot启动类
- @SpringBootApplication
该注解标记的类为springBoot启动类
该类中可以定义一个或多个Bean,并自动触发自动配置Bean和自动扫描组件,相当于@Configuration + @EnableAutoConfiguration + @ComponentScan- @Bean
在spring启动类中配置bean,使用时直接@Autowired获取 - @Scope
标注@Compenent或@Bean的作用范围(singleton、prototype、request、session、globalSession或者其他的自定义范围)
默认是singleton(单例)
- @Bean
2.扫包,为Mapper接口生成实现类
- @MapperScan(basePackages = {“com.xxx.test.dao”})
不用在每一个需要动态代理生成实现类的Mapper接口上打@Mapper注解
在xxx启动类上添加该注解,就会自动为指定包的接口生成实现类
3.启用Eureka客户端
- @EnableEurekaClient @EnableDiscoveryClient
在spring启动类上配置,启用Eureka客户端
使用Eureka注册中心时,使用@EnableEurekaClient
使用其他注册中心时,使用@EnableDiscoveryClient
4.启用Feign客户端
- @EnableFeignClients(basePackages = {“com.xxx.goods.feign”,“com.xxx.wxpay.feign”})
在xxx启动类上配置,启用Feign客户端
默认扫描当前包及子包,basePackages配置要扫描的其他包 - @FeignClient(name = “goods”)
feign客户端,name配置微服务在yml文件中设置的名字
5.公共异常处理类
- @RestControllerAdvice
相当于@ControllerAdvice+@ResponseBody,是@Component的延伸,
spring会自动扫描并检测被其标注的类,主要用来处理控制器(Controller层)抛出的异常。
被@RestControllerAdvice标注的类需要定义一个用于处理异常的方法,并使用注解@ExceptionHandler(value = Exception.class) - @ExceptionHandler(value = Exception.class)
标注公共异常处理类中处理异常的方法,value属性配置处理的异常范围
6.扫包
- @ComponentScan
扫包,如果其他包都在@xxxApplication注解的Main App所在的包及其下级包,则不用配置,xxx会自动扫描
7.标注该类是一个组件类/控制层/服务层/持久层
- @Component @Controller @Service @Repository
标注该类是一个组件类/控制层/服务层/持久层
8.跨域
- @CrossOrigin
跨域(使用gateway后就不用使用该注解了)
9.控制层
-
@RestController
相当于@Controller+@ResponseBody,是@Component的延伸,
Spring会自动扫描并配置被该注解标注的类。此注解用于标注Spring MVC的控制器 -
@ResponseBody
只能用在被@Controller标注的类
将返回对象通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区(一般是将返回对象转化为json串) -
@RequestMapping
将Web请求与请求处理类中的方法进行映射
六个配置属性:
- value:映射的请求URL或者其别名
- method:兼容HTTP的方法名
- params:根据HTTP参数的存在、缺省或值对请求进行过滤
- header:根据HTTP Header的存在、缺省或值对请求进行过滤
- consume:设定在HTTP请求正文中允许使用的媒体类型
- product:在HTTP响应体中允许使用的媒体类型- @GetMapping @PostMapping @PutMapping @DeleteMapping
相当于@RequestMapping(method=RequestMethod.GET/POST/PUT/DELETE)
- @GetMapping @PostMapping @PutMapping @DeleteMapping
-
@PathVariable(name= “id”)
将对应的方法形参与restful风格的请求URI变量映射
如果参数是一个非必须的 可选的项,则可以在@PathVariable中设置require = false -
@RequestParam(name = “id”,defaultValue = “0”)
将对应的方法形参与对应的web请求传递的参数进行映射
如果参数为空,可以通过defaultValue设置一个默认值 -
@RequestBody
处理请求方法的参数列表中使用,将请求体中的参数封装到一个对象中 -
@Autowired
标记要解析和注入的依赖项,可用于构造函数、Setter和字段上
一般直接在字段上标记获得对应的实例