/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package net.acesinc.util.test.service1.config;
import java.util.Arrays;
import nz.net.ultraq.thymeleaf.LayoutDialect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
/**
*
* @author andrewserff
*/
@Configuration
@ComponentScan(basePackages = "net.acesinc")
public class MVCConfig extends WebMvcConfigurationSupport {
private Logger log = LoggerFactory.getLogger(MVCConfig.class);
@Autowired
private Environment env;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
@Bean
public ThymeleafViewResolver thymeleafViewResolver(WebApplicationContext wac) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateEngine.setTemplateResolver(templateResolver);
resolver.setTemplateEngine(templateEngine);
resolver.setOrder(2);
resolver.setApplicationContext(wac);
resolver.setCharacterEncoding("UTF-8");
//Enable the Spring Security Thymeleaf integration
templateEngine.addDialect(new LayoutDialect());
// caching
String[] activeProfiles = env.getActiveProfiles();
if (Arrays.asList(activeProfiles).contains("dev")) {
log.info("DEV Profile is active. Disabling template caching.");
templateResolver.setCacheable(false);
templateEngine.setCacheManager(null);
resolver.setCache(false);
}
return resolver;
}
}