Ich werde die grundlegende Methode zur Einstellung der WEB-Anwendung von Spring MVC als Memorandum beschreiben. Wenn Sie diese Einstellung vornehmen, können Sie eine App wie Hello World erstellen.
Ich selbst habe Erfahrung in der Erstellung von Apps bei Spring Boot während des internen Trainings. Ich habe keine App erstellt, indem ich sie mit Spring MVC von Grund auf neu festgelegt habe, also habe ich sie erstellt. Dies war eine sehr gute Gelegenheit, da der Großteil meiner Arbeit mit Dingen erledigt wurde, die bereits eingerichtet waren und funktionierten.
Übrigens sind XML-basierte Einstellungen möglich, aber dieses Mal werden wir Java-basierte Einstellungen vornehmen. Zunächst werde ich einige Beispiele für die Grundeinstellungsklassen vorstellen.
WebAppInitializer
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {ApplicationConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected FrameworkServlet createDispatcherServlet(WebApplicationContext servletAppContext) {
return new DispatcherServlet(servletAppContext);
}
}
Die später zu erstellende Einstellungsklasse (ApplicationConfig) und das unformatierte DispatcherServlet werden registriert. Wenn Sie eine eigene Implementierung hinzugefügt haben, können Sie diese festlegen, indem Sie diese Einstellung ändern.
ApplicationConfig
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ComponentScan(basePackageClasses = Application.class)
class ApplicationConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Hiermit wird hauptsächlich die Anwendungsschnittstelle festgelegt, die das Ziel des Komponentenscannens ist. Erstellen Sie die im Attribut basePackageClasses festgelegte Application.class als Schnittstelle im zu scannenden Paket. Außerdem ist @EnableAspectJAutoProxy erforderlich, um AspectJ zu verwenden.
WebMvcConfig
@Configuration
class WebMvcConfig extends WebMvcConfigurationSupport {
private static final String CHARACTER_ENCODING = "UTF-8";
private static final String VIEW_LOCATION = "/WEB-INF/view/";
private static final String[] PROPERTIES_LIST = { "classpath:/MessageResources" };
@Bean(name = "messageSource")
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames(PROPERTIES_LIST);
messageSource.setCacheSeconds(5);
messageSource.setDefaultEncoding(CHARACTER_ENCODING);
return messageSource;
}
@Bean(name = "messageResources")
public MessageResources messageResources() {
return new MessageResources();
}
@Override
protected void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp().prefix(VIEW_LOCATION).suffix("");
}
}
Hier werden hauptsächlich die Nachrichtenressource und ViewResolver festgelegt. Ändern Sie den Einstellwert entsprechend.
Wenn Sie jsp verwenden, ist das obige Einstellungsformat in Ordnung. Wenn Sie jedoch eine Vorlagen-Engine wie Thymeleaf verwenden, müssen Sie die Einstellung ändern. Hier sind auch Einstellungen zum Hochladen von Dateien (Multipart Resolver) und zu Kacheln möglich, aber diesmal ist dies kein Muss, daher werde ich darauf verzichten. (Schreiben wir in separaten Artikel)
Dies ist die Haupteinstellung auf der Java-Seite. Danach werde ich web.xml so viel schreiben, wie ich fühle.
web.xml
<?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_2_5.xsd"
version="2.5">
<display-name>Spring-MVC</display-name>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/view/error/404.jsp</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/WEB-INF/view/error/405.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/view/error/500.jsp</location>
</error-page>
</web-app>
Es ist einfach, indem Sie die Fehlerseite einstellen. Ich denke, dass Sie hier nach Bedarf Filter- und Listener-Einstellungen, Taglib-Anpassungen usw. hinzufügen können. (Filter / Listener kann auch in Java Config eingestellt werden)
Mit den oben genannten Einstellungen kann Hello World durch Implementierung eines einfachen Controllers und von jsp erstellt werden.
Ich bin glücklich. Ich hoffe, es wird hilfreich sein, wenn Sie Apps mit Spring MVC erstellen.
Das ist es.
Recommended Posts