当前位置:   article > 正文

使用Gradle的简单Spring MVC Web应用程序

gradle component-scan

除了我们现在将使用Spring MVC而不是原始servlet之外,该文章将与我们以前的文章Simple Gradle Web Application相似。 使用Gradle运行基本的Spring MVC应用程序确实很容易。 您可以在Github上下载本教程的源代码。

先决条件

安装Gradle

我们的基本项目结构将是:

  1. spring-mvc
  2. src
  3. main
  4. java
  5. com
  6. codetutr
  7. controller
  8. HomeController.java
  9. springconfig
  10. WebConfig.java (for Java-based Spring configuration)
  11. webapp
  12. WEB-INF
  13. web.xml
  14. spring
  15. sample-servlet.xml (for XML-based Spring configuration)
  16. view
  17. home.jsp

首先,创建一个名为spring-mvc的文件夹,然后创建基本文件夹结构:src / main / java,src / main / webapp / WEB-INF。 然后,让我们在根文件夹中创建Gradle构建文件:

build.gradle
  1. apply plugin: 'war'
  2. apply plugin: 'jetty'
  3. apply plugin: 'eclipse-wtp'
  4. repositories {
  5. mavenCentral()
  6. }
  7. dependencies {
  8. providedCompile 'javax.servlet:servlet-api:2.5'
  9. compile 'org.springframework:spring-webmvc:3.2.2.RELEASE'
  10. runtime 'javax.servlet:jstl:1.1.2'
  11. }
  12. /* Change context path (base url). otherwise defaults to name of project */
  13. jettyRunWar.contextPath = ''

现在,打开命令提示符到spring-mvc文件夹并运行gradle eclipse 。 您将看到gradle下载Spring-webmvc依赖的所有(许多)必需的Spring jar。 现在,将项目导入Eclipse(文件->导入->现有项目到工作区)。 现在,我们将创建web.xml,Spring配置和基本控制器。 配置Spring应用程序的经典方法是通过XML配置。 从Spring 3.1开始,还可以使用Java配置轻松配置Spring应用程序(Spring 3.0支持此功能,但是Spring 3.1带来了自定义名称空间支持,这确实很吸引人)。 我的首选是Java配置,但是我将向仍在使用XML配置的用户展示这两种方法。 遵循Java配置或XML配置。 如果要使用XML配置,请跳过本部分并滚动到XML配置部分。

基于Java的Spring配置

src/main/webapp/WEB-INF创建web.xml文件:

web.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  5. <servlet>
  6. <servlet-name>sample</servlet-name>
  7. <servlet-class>
  8. org.springframework.web.servlet.DispatcherServlet
  9. </servlet-class>
  10. <init-param>
  11. <param-name>contextClass</param-name>
  12. <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
  13. </init-param>
  14. <init-param>
  15. <param-name>contextConfigLocation</param-name>
  16. <param-value>com.codetutr.springconfig</param-value>
  17. </init-param>
  18. </servlet>
  19. <servlet-mapping>
  20. <servlet-name>sample</servlet-name>
  21. <url-pattern>/</url-pattern>
  22. </servlet-mapping>
  23. </web-app>

注意,我们创建了一个Spring DispatcherServlet映射到所有URL“ /”。 我们还告诉DispatcherServlet在com.codetutr.springconfig包中查找我们基于Java的Spring配置类。 让我们在com.codetutr.springconfig包中创建一个名为WebConfig Java配置类:

WebConfig.java
  1. package com.codetutr.springconfig;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  6. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  7. @Configuration
  8. @EnableWebMvc
  9. @ComponentScan(basePackages="com.codetutr.controller")
  10. public class WebConfig {
  11. @Bean
  12. public InternalResourceViewResolver viewResolver() {
  13. InternalResourceViewResolver resolver =
  14. new InternalResourceViewResolver();
  15. resolver.setPrefix("/WEB-INF/view/");
  16. resolver.setSuffix(".jsp");
  17. return resolver;
  18. }
  19. }

首先,请注意@Configuration批注。 这告诉Spring这是一个配置类(等同于<beans> XML文件)。 接下来, @EnableWebMvc行初始化一些Spring MVC魔术(用于转换器,序列化等)。 等效于<mvc:annotation-driven/> 。下一行带有@ComponentScan行告诉Spring寻找带有Spring @Service, @Component, @Repository, @Controller型注释( @Service, @Component, @Repository, @Controller )的类。在本例中,我们将拥有列出的软件包中的某些MVC控制器。 我们将在稍后讨论视图解析器。 跳过以下基于XML的配置部分,因为我们已经通过Spring Java-Configuration配置了应用程序。

基于Spring XML的配置(如果您选择不使用上述基于Java的配置)

src/main/webapp/WEB-INF创建web.xml文件:

web.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  5. <servlet>
  6. <servlet-name>sample</servlet-name>
  7. <servlet-class>
  8. org.springframework.web.servlet.DispatcherServlet
  9. </servlet-class>
  10. <init-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>/WEB-INF/spring/sample-servlet.xml</param-value>
  13. </init-param>
  14. </servlet>
  15. <servlet-mapping>
  16. <servlet-name>sample</servlet-name>
  17. <url-pattern>/</url-pattern>
  18. </servlet-mapping>
  19. </web-app>

注意,我们创建了一个Spring DispatcherServlet映射到所有URL“ /”。 我们还告诉DispatcherServlet在WEB-INF/sping/sample-servlet.xml查找我们的Spring配置文件。 让我们现在创建它:

sample-servlet.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
  9. <context:component-scan base-package="com.codetutr.controller" />
  10. <mvc:annotation-driven />
  11. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  12. <property name="prefix" value="/WEB-INF/view/"/>
  13. <property name="suffix" value=".jsp"/>
  14. </bean>
  15. </beans>

第一行带有context:component-scan告诉Spring寻找带有Spring @Service, @Component, @Repository, @Controller型注释( @Service, @Component, @Repository, @Controller )的类。 <mvc:annotation-driven />告诉Spring添加一些MVC好东西。 我们将在稍后讨论视图解析器。

构建一个控制器(每个人都这样做–对于XML和Java配置都是一样的)

现在,我们已经告诉Spring在com.codetutr.controller包中寻找MVC控制器,让我们构建一个简单的控制器。 在com.codetutr.controller包中创建一个名为SampleController的新类。 输入以下内容:

SampleController.java
  1. package com.codetutr.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. @Controller
  6. public class SampleController {
  7. @RequestMapping("home")
  8. public String loadHomePage(Model m) {
  9. m.addAttribute("name", "CodeTutr");
  10. return "home";
  11. }
  12. }

还记得我们在sample-servlet.xml Spring配置文件中创建viewResolver bean的时候吗? 我们将前缀设置为WEB-INF/view ,后缀设置为.jsp 。 使用此解析器,在上述方法以返回值home执行之后,Spring将寻找一个名为WEB-INF/view/home.jsp来呈现视图。 现在创建该文件:

home.jsp
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <title>Sample Application</title>
  5. </head>
  6. <body>
  7. <h1>Hello, ${name}!</h1>
  8. </body>
  9. </html>

而已! 现在,您已经建立了一个基本的Spring-MVC应用程序。 打开命令提示符到项目目录的根目录,然后键入gradle jettyRunWar 。 这将在端口8080上启动嵌入式Jetty服务器。导航到http:// localhost:8080 / home ,您应该看到:

现在您已经运行了基本的Spring MVC应用程序,请遵循Spring MVC Form Submission教程

全文: ZIPGitHub
要运行本教程中的代码:必须已安装Gradle 。 下载ZIP。 提取。 打开命令提示符以提取位置。 运行gradle jettyRunWar。 在浏览器中导航到http:// localhost:8080 / home。

资源资源

SpringSource博客– MVC命名空间的增强和配置
SpringSource Docs – EnableWebMvc文档


翻译自: https://www.javacodegeeks.com/2013/04/simple-spring-mvc-web-application-using-gradle.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/305875
推荐阅读
相关标签
  

闽ICP备14008679号