🎉🎉《Spring Boot实战案例合集》目前已更新155个案例,我们将持续不断的更新。文末有电子书目录。
💪💪永久更新承诺
我们郑重承诺,所有订阅合集的粉丝都将享受永久免费的后续更新服务。
💌💌如何获取
订阅我们的合集《点我订阅》,并通过私信联系我们,我们将第一时间将电子书发送给您。
环境:SpringBoot3.4.2
1. 简介
想要在Spring Boot开发领域脱颖而出,成为令人艳羡的开发大神?那这篇内容你可千万别错过!本文精心为你揭秘Spring Boot的10个高级开发技巧,每一个技巧都犹如一把利器,能让你在开发过程中披荆斩棘。
我们将介绍如下10个高级开发技巧:
2.1 编程重启应用
如果你不希望完全结束进程的方式来重启应用,那么我们还可以通过编程的方式异步重启应用,如下示例:
@SpringBootApplicationpublic class App {private static ConfigurableApplicationContext context ;public static void main(String[] args) {context = SpringApplication.run(App.class, args) ;}public static void restart() {ApplicationArguments args = context.getBean(ApplicationArguments.class);// 启动新的线程异步重启应用Thread thread = new Thread(() -> {context.close();context = SpringApplication.run(App.class, args.getSourceArgs());});thread.setDaemon(false) ;thread.start();}}
接口调用
("/restart")public void restart() {App.restart();}
2.2 清理缓存
Spring 提供了两种驱逐缓存的方法,一种是在方法上使用 @CacheEvict 注解,另一种是通过 CacheManger 并调用 clear() 方法清除缓存。
使用@CacheEvict
// 1.缓存数据;并且是只有返回结果不为null时(value = "usermgr", key="#id", unless="#result==null")public User queryUser(Long id) {// 从数据库中查询数据return this.userRepository.findById(id).orElse(null) ;}// 2.清理缓存(value = "usermgr", key="#user.id")public void updateUser(User user) {// ...}
你也可以清理缓存中的所有数据:
(value = "usermgr", allEntries = true)public void clearAllCache() {// ...}
注意:如果你将allEntries设置为true后,你就不能再指定key属性了。


