标签:head 部署 return 持久化 response mis ignore content component
Spring4 MVC HelloWorld 注释/JavaConfig为示例,一步一步以简单的方式学习Spring4 MVC 的注解,项目设置,代码,部署和运行。
我们已经使用XML配置开发了一个Hello World Web应用程序。但是,XML不是配置Spring应用程序的唯一途径。或者,我们可以使用Java配置来配置应用程序.
我们将再次创建一个Hello world的例子,但这个时候我们使用Java配置。 我们将删除上面提到的XML文件,并通过它们对应的Java替换这些XML配置。
目录结构:
访问路径是:http://localhost:8080/gugua5/
包名:springmvc
HelloController.java
package springmvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.ui.ModelMap; @Controller @RequestMapping(value="/") public class HelloWorldController { @RequestMapping(method=RequestMethod.GET) public String sayHello(ModelMap model) { model.addAttribute("greeting", "hello world from spring mvc 4"); return "hello_say"; } @RequestMapping(value="/helloagain", method=RequestMethod.GET) public String sayHelloAgain(ModelMap model) { model.addAttribute("greeting", "hello world again, spring mvc 4"); return "hello_say"; } }
配置jsp视图路径,以及包下的controller/bean等自动引入,webmvc开启
package springmvc.configuration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration @EnableWebMvc @ComponentScan(basePackages="springmvc") public class HelloWorldConfiguration { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); return viewResolver; } }
初始化WebApplicationInitializer
可以用AbstractAnnotationConfigDispatcherServletInitializer 来替代WebApplicationInitializer
package springmvc.configuration; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { // TODO Auto-generated method stub return new Class[] { HelloWorldConfiguration.class }; } @Override protected Class<?>[] getServletConfigClasses() { // TODO Auto-generated method stub return null; } @Override protected String[] getServletMappings() { // TODO Auto-generated method stub return new String [] { "/" }; } }
jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page isELIgnored="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>javaconfiguration</title> </head> <body> ${greeting} </body> </html>
我们来说一说pom.xml配置
以 Spring Java为基础的配置取决于Servlet 3.0 的API, 因此,我们需要包含的依赖在 pom.xml 中。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>gugua4</groupId> <artifactId>gugua5</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>gugua5 Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <springVersion>4.3.5.RELEASE</springVersion> <hibernate.validator>5.1.2.Final</hibernate.validator> <!-- hibernate.validator --> <javax.validation>1.1.0.Final</javax.validation> <!-- JSR303 的验证注解 --> <mysqlVersion>5.0.11</mysqlVersion> <commonsDbcpVersion>1.4</commonsDbcpVersion> <aspectjweaverVersion>1.8.13</aspectjweaverVersion> <commonsLoggingVersion>1.2</commonsLoggingVersion> </properties> <dependencies> <!-- spring-test支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${springVersion}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- spring模块库 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springVersion}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${springVersion}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springVersion}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${springVersion}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${springVersion}</version> </dependency> <!-- (aop)@Aspect注解及代理 --> <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.8</version> </dependency> <!-- https://mvnrepository.com/artifact/cglib/cglib-nodep --> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.1_3</version> </dependency> <!-- 依赖的持久化类库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.8</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>3.0.5.RELEASE</version> </dependency> <!-- io流/上传类插件 --> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <!-- 连接池 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>${commonsDbcpVersion}</version> </dependency> <!-- 公共基础类(字符处理,数组,日期,范围) --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.0</version> </dependency> <!-- jsp依赖的web模块库 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <!-- servlet(HttpServletRequest,HttpServletResponse) --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <!-- <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> --> </dependency> <!-- jsr303 validation dependencies/ JSR303 的验证注解--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>${javax.validation}</version> </dependency> <!-- hibernate validation 数据验证--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${hibernate.validator}</version> </dependency> </dependencies> <build> <!-- javaConfig配置 --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <!-- jsp目录 --> <warSourceDirectory>src/main/webapp</warSourceDirectory> <warName>gugua5</warName> <!-- 取消xml配置:web.xml --> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </pluginManagement> <finalName>gugua5</finalName> </build> </project>
重点是此段代码:
<build> <!-- javaConfig配置 --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <!-- jsp目录 --> <warSourceDirectory>src/main/webapp</warSourceDirectory> <warName>gugua5</warName> <!-- 取消xml配置:web.xml --> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </pluginManagement> <finalName>gugua5</finalName> </build>
标签:head 部署 return 持久化 response mis ignore content component
原文地址:https://www.cnblogs.com/achengmu/p/9081443.html