springboot注解@PostContruct以及@Cacheable
1.@PostContruct
@PostConstruct和@PreDestroy两个注解被用来修饰一个非静态的void()方法。
@PostConstruct
加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
执行顺序为:
Constructor 构造方法>> @Autowired 依赖注入>> @PostConstruct后期构造 >> 静态方法
@PreDestroy
服务器卸载Servlet的时候运行,且只会被服务器调用一次,类似Servlet的destroy()方法。
被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
2.@Cacheable 注意: 使用spring缓存注解之前需要开启注解
@Cacheable
value/cacheNames属性意义相同 将方法的返回结果存入哪里
key属性:来指定缓存数据所使用的key 默认使用方法调用传过来的参数作为 key
keyGenerator属性:通过自定义配置类方式,将 keyGenerator 注册到 IOC 容器来使用
key/keyGenerator属性二选一使用
cacheManager属性:用来指定缓存管理器
cacheResolver属性:用来指定缓存管理器 使用配置同 cacheManager 类似
cacheManager指定管理器/cacheResolver指定解析器 它俩也是二选一使用
condition属性:
条件判断属性,用来指定符合指定的条件下才可以缓存,
可以通过SpEL 表达式设置 condition = "#id >1 and #controller.methodName eq 'findAllDept'"
unless属性:意为"除非"的意思。即只有 unless 指定的条件为 true 时,
方法的返回值才不会被缓存。可以在获取到结果后进行判断。
sync属性:该属性用来指定是否使用异步模式,该属性默认值为 false,默认为同步模式。
异步模式指定 sync = true 即可,异步模式下 unless 属性不可用。
@CacheEvict 清空指定缓存
前面几个属性和@Cacheable属性相同
allEntries属性: 将这个缓存中的数据都删除
beforeInvocation属性:缓存的清除是否在方法之前执行,默认代表在方法执行之后执行 true是先操作缓存,再执行方法。
springboot注解@PostContruct以及@Cacheable的更多相关文章
- springboot注解使用说明
springboot注解 @RestController和@RequestMapping注解 我们的Example类上使用的第一个注解是 @RestController .这被称为一个构造型(ster ...
- springBoot系列-->springBoot注解大全
一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration ...
- SpringBoot注解大全(转)
原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Co ...
- springboot注解大全
springboot注解:@Service: 注解在类上,表示这是一个业务层bean@Controller:注解在类上,表示这是一个控制层bean@Repository: 注解在类上,表示这是一个数据 ...
- SpringBoot注解验证参数
SpringBoot注解验证参数 废话不多说,直接上表格说明: 注解 作用类型 解释 @NotNull 任何类型 属性不能为null @NotEmpty 集合 集合不能为null,且size大于0 @ ...
- SpringBoot注解把配置文件自动映射到属性和实体类实战
SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...
- 转-spring-boot 注解配置mybatis+druid(新手上路)-http://blog.csdn.net/sinat_36203615/article/details/53759935
spring-boot 注解配置mybatis+druid(新手上路) 转载 2016年12月20日 10:17:17 标签: sprinb-boot / mybatis / druid 10475 ...
- 【转载】springboot注解
https://blog.csdn.net/yitian_66/article/details/80866571 springboot注解:@Service: 注解在类上,表示这是一个业务层bean@ ...
- SPRINGBOOT注解最全详解(
# SPRINGBOOT注解最全详解(整合超详细版本) 使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 ...
- springboot + 注解 + 拦截器 + JWT 实现角色权限控制
1.关于JWT,参考: (1)10分钟了解JSON Web令牌(JWT) (2)认识JWT (3)基于jwt的token验证 2.JWT的JAVA实现 Java中对JWT的支持可以考虑使用JJWT开源 ...
随机推荐
- pycharm激活教程
激活地址:https://shimo.im/docs/YW9Gc3vHhJkWtRyQ/read 细节注意:下载版本,在官网下载,选择左下角更多版本,下载2019,3月份版本
- 【confluence】jira issue宏中如何把优先级图标转义成文字
在confluece中,关于表格处理有2个非常好的插件. Table Filter and Charts for Confluence (插件文档:https://docs.stiltsoft ...
- mysql数据库用sql语句在指定的一个字段后面添加一个字段
alert table (新增列的表名) add (新列名) comment (添加备注)+[after + 要跟随的字段名]可写可不写 ALTER TABLE ch_poliy_info AD ...
- HTML-CSS常用代码
注释标签:对代码进行说明<!-- 单行注释,也可以对多行文字进行注释 -->常用格式标签<b>加粗</b> <i>斜体</i> <u& ...
- 虚拟环境 venv的使用--(venv 一)
一.引言最近在学习<Flask Web Development 2nd Edition>的时候,作者开篇就介绍如何使用 venv 来管理 Python 环境 .自我觉得作者讲的非常好,想要 ...
- python内置函数len()
len() len()函数用于返回对象(字符串.元组.列表和字典等)的长度或元素个数 len()函数的语法: len(s) 代码示例 print(len(range(10))) print(len([ ...
- 对于MyBatis的模糊查询的实现+文本框、单选框以及复选框的数据回显的实现
MyBatis的模糊查询sql语句与之前使用的不太一样 主要是利用下面这种语句实现的(查了好久的,认真记一下吧!) select * from huodong where theme like con ...
- 我们为什么要阅读webpack源码
相信很多人都有这个疑问,为什么要阅读源码,仅仅只是一个打包工具,会用不就行了,一些配置项在官网,或者谷歌查一查不就好了吗,诚然在大部分的时候是这样的,但这样在深入时也会遇到以下几种问题. webpac ...
- 声网 X 远程超声:实时音视频解决基层“看病难” 推动医疗资源均衡化
实时互联网像触角一样,通过情景的共享延伸开来,链接着我们彼此的线下.线上生活,形成一张不可分割的网络.随着社交直播.在线教育.视频会议成为大众生活不可或缺的一部分的同时,智能手表.智能作业灯.视频双录 ...
- RunnerGo可视化场景管理,还原真实场景
在进行性能测试时,测试场景的正确配置非常关键.首先,需要根据业务场景和需求,设计出合理的测试场景,再利用相应的工具进行配置,实现自动化的性能测试. 在JMeter中,用户需要自己组织测试场景,或是在同 ...