优雅的设置FreeMarker的后缀与资源路径
最近想写一个后台系统,想着把之前的FreeMarker捡起来。
现在都前后端分离了,后端不用写前端代码了。时间久了,前端的东西都忘完了,以前想写个后台系统什么的,什么FreeMarker,Bootstrap,jQuery 用的那是66的。
现在全忘了,一个页面跳转费了半天劲,还是404,哎,果然时间是一种解药,也是我现在正服下的毒药…
SpringBoot自动配置的秘密在这个包里spring-boot-autoconfigure-2.0.2.RELEASE.jar
。
2.0、2.RELEASE版本的:
2、2、6.RELEASE版本的:
可以看到后缀变成了 .ftlh
。
默认模板路径为 classpath:/templates/
而模板路径templateLoaderPath
是一个String的数组。所以我们可以自己添加其他的路径。 可以在application.properties
里配置。
可是我不想这样配置,每个项目都要编辑application.properties
,很容易忘。如果可以使用配置类的方式就好了。
有了想法,现在就要去实现。我们配置的关于FreeMarker
的配置,其实是设置到了FreeMarkerProperties
这个类里,我们只要在启动的时候改变这个类的属性就好了。
具体实现如下:
import javax.annotation.Resource;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
/** * @author lww * @date 2020-06-24 16:22 */ @Configuration public class FreeMarkerConfig implements InitializingBean { @Resource private ApplicationContext context; @Override public void afterPropertiesSet() { FreeMarkerProperties properties = context.getBean(FreeMarkerProperties.class); properties.setTemplateLoaderPath("classpath:/templates/", "classpath:/static/"); properties.setSuffix(".ftl"); } }
在启动之后,手动设置templateLoaderPath
和suffix
就可以了,这也是修改其他默认配置一种思路。
搞了半天,写了一个登陆页面,关键是太不优雅了,jc,css引了一大堆,以后如果还要其他组件,又要引一大堆东西,算了,还是用前后端分离的方式吧,等哪天用React来写吧,感觉前端没有特别优雅的解决方案。
最近在写一个配置中心,基于Mina的,所以看了一些关于SpringBoot的启动,配置相关的东西。
先说一下,虽然是为了学Mina练手的,但是写出来后,发现很好用,比Nacos还好用(自夸一下),超级0侵入,实时推送,等有空了写一下。敬请期待!
本文使用 tech.souyunku.com 排版