WebApplicationInitializer in Spring MVC

Mit Spring 3.1 wurde eine neue Funktion zum Konfigurieren des Bereitstellungsdeskriptors mithilfe des Java Config-Ansatzes eingeführt. Wir müssen die web.xml-Datei nicht schreiben, um die Webanwendungen zu initialisieren. Alles kann über eine Java-Klasse selbst erledigt werden. Die Java-Klasse muss den org.springframework.web.WebApplicationInitializer implementieren, der beim Start der Webanwendung geladen wird. Wenn Sie sich das Beispiel ansehen, lädt eine Klasse, die WebApplicationInitializer implementiert, die Spring-Kontextkonfigurationsdatei.

Schauen wir uns das Beispiel an.

1. Spring MVC-Controller

SpringMVCController.java

package javabeat.net.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class SpringMVCController {

	@RequestMapping(value = "/springmvctest", method = RequestMethod.GET)
	public String redirectTest(Model model) {
		model.addAttribute("msg", "Test Message");
		return "hello";
	}
}

2. WebApplicationInitializer

SpringWebAppInitializer.java

package javabeat.net.spring.controller;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.XmlWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class SpringWebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext container) throws ServletException {
        XmlWebApplicationContext appContext = new XmlWebApplicationContext();
        appContext.setConfigLocation("/WEB-INF/spring-dispatcher-servlet.xml");

        ServletRegistration.Dynamic dispatcher = container.addServlet(
                "spring-dispatcher", new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }

}

3. Ansichten

hallo.jsp

<html>
<body>
	<h1>JavaBeat Spring MVC - WebApplicationInitializer</h1>
	<h2>Value : ${msg}</h2>
</body>
</html>

4. Federkonfigurationen

spring-dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	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-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<context:component-scan base-package="javabeat.net.spring.controller" />
	<bean id="jspViewResolver"
		 >
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

5. Führen Sie WebApplicationInitializer mit JavaConfig aus

Sie können das obige Spring-MVC-Beispiel einfach ohne zusätzliche Änderungen ausführen. Die Klasse SpringWebAppInitializer wird vom Server geladen und initialisiert den Spring-Kontext. Beachten Sie, dass Sie Spring 3.1 und Tomcat 7.0 verwenden müssen, damit es funktioniert. Diese Funktion wird ab der Servlet-Version 3.0 eingeführt.

(wpdm_file id=97)

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen