Merge pull request #321 from gmaipady/master
Moved from XML config to Java config
This commit is contained in:
commit
1b38cdf40d
@ -11,12 +11,6 @@
|
|||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="optional" value="true"/>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
@ -28,5 +22,11 @@
|
|||||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -112,6 +112,9 @@
|
|||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
<version>${maven-war-plugin.version}</version>
|
<version>${maven-war-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||||
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.baeldung.thymeleaf.config;
|
||||||
|
|
||||||
|
import javax.servlet.ServletRegistration.Dynamic;
|
||||||
|
|
||||||
|
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java configuration file that is used for web application initialization
|
||||||
|
*/
|
||||||
|
public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer {
|
||||||
|
|
||||||
|
public WebApp() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?>[] getRootConfigClasses() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?>[] getServletConfigClasses() {
|
||||||
|
return new Class<?>[] { WebMVCConfig.class };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String[] getServletMappings() {
|
||||||
|
return new String[] { "/" };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void customizeRegistration(final Dynamic registration) {
|
||||||
|
super.customizeRegistration(registration);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
package org.baeldung.thymeleaf.config;
|
||||||
|
|
||||||
|
import org.baeldung.thymeleaf.formatter.NameFormatter;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Description;
|
||||||
|
import org.springframework.context.support.ResourceBundleMessageSource;
|
||||||
|
import org.springframework.format.FormatterRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
|
||||||
|
import org.thymeleaf.spring4.SpringTemplateEngine;
|
||||||
|
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
|
||||||
|
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableWebMvc
|
||||||
|
@ComponentScan({ "org.baeldung.thymeleaf" })
|
||||||
|
/**
|
||||||
|
* Java configuration file that is used for Spring MVC and Thymeleaf
|
||||||
|
* configurations
|
||||||
|
*/
|
||||||
|
public class WebMVCConfig extends WebMvcConfigurerAdapter {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Description("Thymeleaf Template Resolver")
|
||||||
|
public ServletContextTemplateResolver templateResolver() {
|
||||||
|
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
|
||||||
|
templateResolver.setPrefix("/WEB-INF/views/");
|
||||||
|
templateResolver.setSuffix(".html");
|
||||||
|
templateResolver.setTemplateMode("HTML5");
|
||||||
|
|
||||||
|
return templateResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Description("Thymeleaf Template Engine")
|
||||||
|
public SpringTemplateEngine templateEngine() {
|
||||||
|
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
|
||||||
|
templateEngine.setTemplateResolver(templateResolver());
|
||||||
|
|
||||||
|
return templateEngine;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Description("Thymeleaf View Resolver")
|
||||||
|
public ThymeleafViewResolver viewResolver() {
|
||||||
|
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
|
||||||
|
viewResolver.setTemplateEngine(templateEngine());
|
||||||
|
viewResolver.setOrder(1);
|
||||||
|
return viewResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Description("Spring Message Resolver")
|
||||||
|
public ResourceBundleMessageSource messageSource() {
|
||||||
|
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
|
||||||
|
messageSource.setBasename("messages");
|
||||||
|
return messageSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
|
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Description("Custom Conversion Service")
|
||||||
|
public void addFormatters(FormatterRegistry registry) {
|
||||||
|
registry.addFormatter(new NameFormatter());
|
||||||
|
}
|
||||||
|
}
|
@ -1,53 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:context="http://www.springframework.org/schema/context"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
|
|
||||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
|
||||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
|
|
||||||
|
|
||||||
<!-- Enables the Spring MVC @Controller programming model -->
|
|
||||||
<annotation-driven conversion-service="conversionService" />
|
|
||||||
|
|
||||||
<!-- Standard Spring formatting-enabled implementation -->
|
|
||||||
<beans:bean id="conversionService"
|
|
||||||
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
|
|
||||||
<beans:property name="formatters">
|
|
||||||
<beans:set>
|
|
||||||
<beans:bean class="org.baeldung.thymeleaf.formatter.NameFormatter" />
|
|
||||||
</beans:set>
|
|
||||||
</beans:property>
|
|
||||||
</beans:bean>
|
|
||||||
|
|
||||||
<!-- Handles HTTP GET requests for /resources/** by efficiently serving
|
|
||||||
up static resources in the ${webappRoot}/resources directory -->
|
|
||||||
<resources mapping="/resources/**" location="/resources/" />
|
|
||||||
|
|
||||||
<!-- Message source -->
|
|
||||||
<beans:bean id="messageSource"
|
|
||||||
class="org.springframework.context.support.ResourceBundleMessageSource">
|
|
||||||
<beans:property name="basename" value="messages" />
|
|
||||||
</beans:bean>
|
|
||||||
|
|
||||||
<!-- Resolves views selected for rendering by @Controllers to .html resources
|
|
||||||
in the /WEB-INF/views directory -->
|
|
||||||
<beans:bean id="templateResolver"
|
|
||||||
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
|
|
||||||
<beans:property name="prefix" value="/WEB-INF/views/" />
|
|
||||||
<beans:property name="suffix" value=".html" />
|
|
||||||
<beans:property name="templateMode" value="HTML5" />
|
|
||||||
</beans:bean>
|
|
||||||
|
|
||||||
<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
|
|
||||||
<beans:property name="templateResolver" ref="templateResolver" />
|
|
||||||
</beans:bean>
|
|
||||||
|
|
||||||
<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
|
|
||||||
<beans:property name="templateEngine" ref="templateEngine" />
|
|
||||||
<beans:property name="order" value="1" />
|
|
||||||
<beans:property name="viewNames" value="*" />
|
|
||||||
</beans:bean>
|
|
||||||
|
|
||||||
<context:component-scan base-package="org.baeldung.thymeleaf.controller" />
|
|
||||||
|
|
||||||
</beans:beans>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
|
||||||
|
|
||||||
<!-- Root Context: defines shared resources visible to all other web components -->
|
|
||||||
|
|
||||||
</beans>
|
|
@ -1,34 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
|
||||||
id="WebApp_ID" version="3.0">
|
|
||||||
<display-name></display-name>
|
|
||||||
<!-- The definition of the Root Spring Container shared by all Servlets
|
|
||||||
and Filters -->
|
|
||||||
<context-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>/WEB-INF/root-context.xml</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<!-- Creates the Spring Container shared by all Servlets and Filters -->
|
|
||||||
<listener>
|
|
||||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
<!-- Processes application requests -->
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>appServlet</servlet-name>
|
|
||||||
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>/WEB-INF/appServlet/servlet-context.xml</param-value>
|
|
||||||
</init-param>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>appServlet</servlet-name>
|
|
||||||
<url-pattern>/</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
</web-app>
|
|
Loading…
x
Reference in New Issue
Block a user