springboot+thymeleaf后端设置全局变量前端js接收

公司旧的项目用play,新的项目改用springboot,前端同学问我,新的项目怎么拿baseUrl?

其实springboot+thymeleaf是可以做到的,我就贴个代码记录一下吧

后端代码如下:

@Resource
    private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver) {
        if(viewResolver != null) {
            Map vars = Maps.newHashMap();
            vars.put("picUrl", env.getProperty("picUrl"));
            vars.put("baseUrl", env.getProperty("baseUrl"));
            viewResolver.setStaticVariables(vars);
        }
    }

只要放在spring能扫描到的地方就可以了.

不过这里有个问题,一般来说,这些地址都是通过properties文件,或者yml文件,分环境配置的,要拿配置文件的值,我第一时间就想用@value,但是由于加载顺序的关系,@value加载在后面,所以这里就不能用@value了,用environment

@Resource
    private Environment env;

然后到前端的代码:

把这段代码放到header.html,统一加载就行了





你可能感兴趣的:(spring,springboot,thymleaf)