一、问题描述
在系统中应用了spring的@Cacheable注解功能,首次请求方法没问题,但在二次加载中,会抛出类转换异常,根本原因是:同一个类的加载类不同,既:applicationClassLoader 和 RestartClassLoader。
@Override@Cacheable(cacheNames = {"all_menus"})public List<Menu> selectAll() {return menuMapper.selectAll();}
二、 最终解决方案:
原因是因为我的项目中应该是采用了热部署,devtools,因为类加载器的不同所以会导致类型转换失败,是spring的devtools引起的,把下面的依赖去掉应该就可以了。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency>