Skip to content

Commit 0274021

Browse files
committed
Moved from XML config to Java config
1 parent b6ba166 commit 0274021

File tree

2 files changed

+109
-0
lines changed

2 files changed

+109
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.baeldung.thymeleaf.config;
2+
3+
import javax.servlet.ServletRegistration.Dynamic;
4+
5+
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
6+
7+
/**
8+
* Java configuration file that is used for web application initialization
9+
*/
10+
public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer {
11+
12+
public WebApp() {
13+
super();
14+
}
15+
16+
@Override
17+
protected Class<?>[] getRootConfigClasses() {
18+
return null;
19+
}
20+
21+
@Override
22+
protected Class<?>[] getServletConfigClasses() {
23+
return new Class<?>[] { WebMVCConfig.class };
24+
}
25+
26+
@Override
27+
protected String[] getServletMappings() {
28+
return new String[] { "/" };
29+
}
30+
31+
@Override
32+
protected void customizeRegistration(final Dynamic registration) {
33+
super.customizeRegistration(registration);
34+
}
35+
36+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package org.baeldung.thymeleaf.config;
2+
3+
import org.baeldung.thymeleaf.formatter.NameFormatter;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.ComponentScan;
6+
import org.springframework.context.annotation.Configuration;
7+
import org.springframework.context.annotation.Description;
8+
import org.springframework.context.support.ResourceBundleMessageSource;
9+
import org.springframework.format.FormatterRegistry;
10+
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
11+
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
12+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
13+
import org.thymeleaf.spring4.SpringTemplateEngine;
14+
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
15+
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
16+
17+
@Configuration
18+
@EnableWebMvc
19+
@ComponentScan({ "org.baeldung.thymeleaf" })
20+
/**
21+
* Java configuration file that is used for Spring MVC and Thymeleaf
22+
* configurations
23+
*/
24+
public class WebMVCConfig extends WebMvcConfigurerAdapter {
25+
26+
@Bean
27+
@Description("Thymeleaf Template Resolver")
28+
public ServletContextTemplateResolver templateResolver() {
29+
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
30+
templateResolver.setPrefix("/WEB-INF/views/");
31+
templateResolver.setSuffix(".html");
32+
templateResolver.setTemplateMode("HTML5");
33+
34+
return templateResolver;
35+
}
36+
37+
@Bean
38+
@Description("Thymeleaf Template Engine")
39+
public SpringTemplateEngine templateEngine() {
40+
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
41+
templateEngine.setTemplateResolver(templateResolver());
42+
43+
return templateEngine;
44+
}
45+
46+
@Bean
47+
@Description("Thymeleaf View Resolver")
48+
public ThymeleafViewResolver viewResolver() {
49+
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
50+
viewResolver.setTemplateEngine(templateEngine());
51+
viewResolver.setOrder(1);
52+
return viewResolver;
53+
}
54+
55+
@Bean
56+
@Description("Spring Message Resolver")
57+
public ResourceBundleMessageSource messageSource() {
58+
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
59+
messageSource.setBasename("messages");
60+
return messageSource;
61+
}
62+
63+
@Override
64+
public void addResourceHandlers(ResourceHandlerRegistry registry) {
65+
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
66+
}
67+
68+
@Override
69+
@Description("Custom Conversion Service")
70+
public void addFormatters(FormatterRegistry registry) {
71+
registry.addFormatter(new NameFormatter());
72+
}
73+
}

0 commit comments

Comments
 (0)