springboot问题
- 前端thymeleaf,使用jar包模式运行后找不到页面
解决方法: 代码中所有直接返回String进行页面跳转的改为使用ModelAndView - 集成shiro之后自定义Realm中注入的service事务,缓存失效
解决方法:在注入的service上增加@Lazy注解,原理请参考此博客 - spring事件机制使用service继承ApplicationListener的方式处理事务导致项目启动报错
The bean 'xxx' could not be injected as a 'xxxx' because it is a JDK dynamic proxy that implements: org.springframework.context.ApplicationListener
有的人说需要在配置文件中增加spring.aop.proxy-target-class=true此配置,但是经尝试无法解决.
解决方法:使用注解的方式来监听事件,例如:
@EventListener
public void listenInformEvent(InformEvent informEvent) {} - springboot启动tomcat临时目录随机,导致上传文件的功能不能正常使用
解决方法:增加配置手动指定docBase,出处
5. springboot上传本地图片不能及时展示(不用上面的方式存储文件),刷新页面后正常展示
解决方法:
1.存储文件时使用不加"/"的文件名例如"upload/test.jpg"
2.在WebMvcConfigurer中配置目录对应关系registry.addResourceHandler("/upload/**").addResourceLocations("file:upload/")
问题原因: 静态文件是在项目启动时加载的,不重新请求不会加载,参考:stackoverflow中VK321这位大哥的回复
thymeleaf问题
1.内联语法导致的页面报错,内联语法格式: [[...]]或[(...)]
解决方法:如页面js有多维数组会导致thymeleaf解析错误
解决方案:<script type="text/javascript" th:inline="none">新增红色字体内容,来禁用内联表达式
2.js里中文变unicode编码
问题描述:从后台传入的中文在js中通过[[...]]来取值会显示unicode编码
解决方法::使用[(...)]来取值,但是需要手动增加引号
说明:[[...]]等价于th:text(即结果将被HTML转义),[(...)]等价于th:utext,不会执⾏任何HTML转义。