Java tutorial
/* * 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 nl.avans.ivh5a1.proftaak.config; /** * * @author Gebruiker */ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.MessageSource; import org.springframework.context.annotation.*; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver; import org.thymeleaf.spring4.SpringTemplateEngine; import org.thymeleaf.spring4.view.ThymeleafViewResolver; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; import java.util.Properties; /** * @author Petri Kainulainen * * Dit is een van de configuratiebestanden die vanuit de Application.java class worden * aangeroepen om je applicatie te initialiseren. * */ @Configuration @EnableAutoConfiguration @ComponentScan(basePackages = { "nl.avans.ivh5a1.proftaak" }) @Import({ PersistenceContext.class }) @PropertySource("classpath:application.properties") public class ApplicationContext extends WebMvcConfigurerAdapter { private static final String VIEW_RESOLVER_PREFIX = "templates/"; private static final String VIEW_RESOLVER_SUFFIX = ".html"; private static final String VIEW_RESOLVER_MODE = "HTML5"; private static final String VIEW_RESOLVER_ENCODING = "UTF-8"; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("static"); } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setUseCodeAsDefaultMessage(true); return messageSource; } @Bean public SimpleMappingExceptionResolver exceptionResolver() { SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver(); Properties exceptionMappings = new Properties(); exceptionMappings.put("net.petrikainulainen.exception.TodoNotFoundException", "error/404"); exceptionMappings.put("java.lang.Exception", "error/error"); exceptionMappings.put("java.lang.RuntimeException", "error/error"); exceptionResolver.setExceptionMappings(exceptionMappings); Properties statusCodes = new Properties(); statusCodes.put("error/404", "404"); statusCodes.put("error/error", "500"); exceptionResolver.setStatusCodes(statusCodes); return exceptionResolver; } @Bean public ViewResolver viewResolver() { ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(); templateResolver.setTemplateMode(VIEW_RESOLVER_MODE); templateResolver.setPrefix(VIEW_RESOLVER_PREFIX); templateResolver.setSuffix(VIEW_RESOLVER_SUFFIX); templateResolver.setCharacterEncoding(VIEW_RESOLVER_ENCODING); SpringTemplateEngine engine = new SpringTemplateEngine(); engine.setTemplateResolver(templateResolver); ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(engine); return viewResolver; } }