Spring Boot启动加载
- @SpringBootApplication
- spring boot 启动注解
- 包含了@SpringBootConfiguration;@EnableAutoConfiguration;
@ComponentScan三个注解.
- @ComponentScan
- 扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中
- @SpringBootConfiguration
- -继承自@Configuration,二者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
- -继承自@Configuration,二者功能也一致,标注当前类是配置类,
- @EnableAutoConfiguration
- -启用Spring的自动加载配置
- @ServletComponentScan
- -Servlet可以直接通过@WebServlet注解自动注册
- Filter可以直接通过@WebFilter注解自动注册
- Listener可以直接通过@WebListener 注解自动注册
Controller层注解
- @Controller
- 返回指定的页面.
- 返回对象是ModelAndView + 模板引擎,可以渲染页面.
- 在方法上加上@ResponseBody返回josn对象.
- @RestController
- 等于@Controller + @ResponseBody,返回的是json对象.
- @RequestMapping
- -指定访问的URL路径.
- @GetMapping
- -指定Get请求的URL路径.
- @PostMapping
- -指定Post请求的URL路径.
- @PutMapping
- -指定Put请求的URL路径.
- @DeleteMapping
- -指定Delete请求的URL路径.
- @RequestParam
- -普通风格下接收请求头参数(例:@GetMapping(/tset) ; 127.0.0.1:8080/test?id=1 ).
- value : 参数的名称.
- required : 是否必须传参.
- defaultValue : 默认参数.
- @PathVariable
- -Restfil风格下接收请求头参数(例:@GetMapping(/tset/{id}) ; 127.0.0.1:8080/test/1 ).
- @ResponseBody
- -返回json对象.
- @ResponseBody
- -接收一个json对象.
- @Crossorigin
- -解决跨域.
- @Valid
- -配合@NotNull使用,在接受对象的某个字段上加上@NotNull,在接受参数时加上@Valid,那么这个对象中的这个字段不能为空.
- @Null 被注释的元素必须为null
- @AssertTrue 被注释的元素必须为true
- @AssertFalse 被注释的元素必须为false
- @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
- @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
- @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
- @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
- @Size(max,min) 被注释的元素的大小必须在指定的范围内。
- @Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
- @Past 被注释的元素必须是一个过去的日期
- @Future 被注释的元素必须是一个将来的日期
- @Pattern(value) 被注释的元素必须符合指定的正则表达式。
- @Email 被注释的元素必须是电子邮件地址
- @Length 被注释的字符串的大小必须在指定的范围内
- @NotEmpty 被注释的字符串必须非空
- @Range 被注释的元素必须在合适的范围内
业务层,注入IOC容器注解
- @Configuration
- -声明当前类是一个配置类,相当于一个spring配置的xml文件
- @Bean
- -bean注册(一般用在方法上).
- @Service
- -bean注册,一般都是service层使用.
- @Component
- --bean注册,用于普通的bean注册.
- @Repository
- -bean注册,用于dao层(需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中).
- @Mapper
- -bean注册,用于dao层(不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中).
- @Transactional
- -事务管理注解.
- @Aspect
- -面向切面编程注解,Spring AOP 中用来自定义切面
- @Before
- -方法前执行
- @After
- -方法后执行
- @Around
- -环绕执行
- @Scheduled
- -执行计划
去IOC获取注解
- @Autowired
- -获取bean,接口单一实现的时候使用
- @Resource
- -获取bean,接口多实现的时候使用,指定具体实现类
- @Autowired + @Qualifier
- -获取bean,等于@Resource
- @Values
- 读取配置文件参数
缓存
- @Cacheable
- -最常用的一个,若缓存中没有对应键,则执行方法,并把返回值放入缓存,如果有则从缓存中取,不执行方法
- @CacheEvict
- -删除缓存
- @CachePut
- -修改缓存
- @Caching
- -同时使用上面多个的时候使用
- @CacheConfig
- -放在类上统一类中的其它缓存注解,如下相当于在这个类中的其它所有缓存注解都被默认加上了cacheNames = "",cacheManager = ""
MyBatis常用注解
- @Select
- -查询
- @Update
- -修改
- @Insert
- -新增
- @Delete
- -删除
- @TableName
- -实体对应数据库表名称
- @TableId
- -主键注解
- @TableField
- -实体中字段对应数据库字段
- @EnumValue
- -通枚举类注解(注解在枚举字段上)
- @TableLogic
- -表字段逻辑处理注解(逻辑删除)
- @SqlParser
- -租户注解
- @CacheNamespace
- -开启mybatis二级缓存
- @Options(useCache=true,flushCache=Options.FlushCachePolicy.FALSE,timeout=10000)查询时
- -useCache=true,表示会缓存本次查询结果
- flushCache=Options.FlushCachePolicy.FALSE,表示查询时不会刷新缓存;
- timeout=10000,表示查询结果缓存10000秒;
- @Options(useGeneratedKeys=true, keyProperty="Id", keyColumn="id")新增时
- -插入一条数据并返回主键值
Dubbo常用注解
- @Service
- -表示提供者
- @Reference
- -表示消费者
- @EnableDubbo
- -启用Dubbo整合配置
Spring Cloud常用注解
- @EnableEurekaServer
- -把当前微服务标记为Eureka注册中心 接收其他微服务的注册
- @EnableEurekaClient
- -注册该微服务到Eureka中
- @LoadBalanced
- -该注解写在配置RestTemplate的配置类方法上来启动ribbon负载均衡
- @EnableFeignClients
- -写在主程序上来支持feign
- @EnableCircuitBreaker
- -启用对Hystrix熔断机制的支持
- @FeignClient(value="服务名",fallbackFactory=实现FallbackFactory的类.class)
- -实现服务降级
- @EnableHystrixDashboard
- -加在主程序上启动服务监控
- @FeignClient(value=“服务名”)
- -写在接口上 来调用远程服务
- @EnableZuulProxy
- -写在主程序上启动zuul路由访问功能