gradle spring

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

先决条件

安装Gradle

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

spring-mvcsrcmainjavacomcodetutrcontrollerHomeController.javaspringconfigWebConfig.java (for Java-based Spring configuration)webappWEB-INFweb.xmlspringsample-servlet.xml (for XML-based Spring configuration)viewhome.jsp

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

build.gradle

apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'eclipse-wtp'repositories {mavenCentral()
}dependencies {providedCompile 'javax.servlet:servlet-api:2.5'compile 'org.springframework:spring-webmvc:3.2.2.RELEASE'runtime 'javax.servlet:jstl:1.1.2'
}/* Change context path (base url). otherwise defaults to name of project */
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

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>sample</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></init-param><init-param><param-name>contextConfigLocation</param-name><param-value>com.codetutr.springconfig</param-value></init-param></servlet><servlet-mapping><servlet-name>sample</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

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

WebConfig.java

package com.codetutr.springconfig;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;@Configuration
@EnableWebMvc
@ComponentScan(basePackages="com.codetutr.controller")
public class WebConfig {@Beanpublic InternalResourceViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/view/");resolver.setSuffix(".jsp");return resolver;}}

首先,请注意@Configuration批注。 这告诉Spring这是一个配置类(相当于<beans> XML文件)。 接下来, @EnableWebMvc行初始化一些Spring MVC魔术(用于转换器,序列化等)。 等效于<mvc:annotation-driven/> 。下一行@ComponentScan告诉Spring寻找带有Spring @Service, @Component, @Repository, @Controller型注释( @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

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>sample</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/sample-servlet.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>sample</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

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

sample-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:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/mvc    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsdhttp://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context-3.2.xsd"><context:component-scan base-package="com.codetutr.controller" />  <mvc:annotation-driven /><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/view/"/><property name="suffix" value=".jsp"/></bean></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

package com.codetutr.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class SampleController {@RequestMapping("home")public String loadHomePage(Model m) {m.addAttribute("name", "CodeTutr");return "home";}
}

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

home.jsp

<!DOCTYPE HTML>
<html><head><title>Sample Application</title></head><body><h1>Hello, ${name}!</h1></body>
</html>

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

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

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

资源资源

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

参考: CodeTutr博客上来自JCG合作伙伴 Steve Hanson的使用Gradle的简单Spring MVC Web应用程序 。

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

gradle spring

gradle spring_使用Gradle的简单Spring MVC Web应用程序相关推荐

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

    除了我们现在将使用Spring MVC而不是原始servlet之外,该文章将与我们以前的文章Simple Gradle Web Application相似. 使用Gradle运行基本的Spring M ...

  2. 如何使用recaptcha_在Spring MVC Web应用程序中使用reCaptcha

    如何使用recaptcha CAPTCHA是一个程序,可以生成人类可以通过但计算机程序" 不能 "通过的测试并对其进行评分. 所采取的策略之一是向用户显示具有扭曲文本的图像,并且用 ...

  3. 将社交登录添加到Spring MVC Web应用程序:配置

    过去,用户使用用户名和密码组合登录. 尽管如今有些人仍然偏爱传统方式,但越来越多的用户希望使用其社交媒体帐户登录. 这就是使Spring Social(及其子项目)成为Spring项目组合有用的补充的 ...

  4. 在Spring MVC Web应用程序中使用reCaptcha

    CAPTCHA是一种程序,可以生成人类可以通过的测试并对其进行评分,而计算机程序" 不能 "通过. 所采取的策略之一是向用户显示具有扭曲文本的图像,并且用户应在输入区域中书写文本. ...

  5. 集成spring mvc_向Spring MVC Web应用程序添加社交登录:集成测试

    集成spring mvc 我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但它并不能真正告诉我们我们的应用程 ...

  6. spring基于注释的配置_基于注释的Spring MVC Web应用程序入门

    spring基于注释的配置 这是使Maven启动Spring 3 MVC项目的最小方法. 首先创建spring-web-annotation/pom.xml文件,并包含Spring依赖项: <? ...

  7. 在Spring MVC Web应用程序中添加社交登录:集成测试

    我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...

  8. 在Spring MVC Web应用程序中添加社交登录:单元测试

    Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...

  9. 基于注释的Spring MVC Web应用程序入门

    这是使Maven启动Spring 3 MVC项目的最小方法. 首先创建spring-web-annotation/pom.xml文件,并包含Spring依赖项: <?xml version=&q ...

最新文章

  1. 阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器
  2. 给你的数据一个家,一个有DOI的地方 | 生物数据库承建
  3. Effective Java之用EnumSet代替位域(三十二)
  4. 管理运筹学软件计算机解咋看,运筹学软件结果解析总结计划题1-20210618123710.docx-原创力文档...
  5. 【AI面试题】什么是数据不平衡,如何解决
  6. Chainlink预言机正式集成至币安智能链
  7. 初学者虚拟机使用虚拟机
  8. vs code 问题:preLaunchTask“build”已终止,退出代码为 1。解决办法
  9. UVA255 Correct Move【国际象棋】
  10. 838计算机专业课包含什么,华南农业大学
  11. 那些想替代 C 的语言怎么样?Go、Rust、C++ 和 Zig 生产力对比
  12. AssetBundle接口详解与优化
  13. 驱动开发笔记2—PAGED_CODE(),IRQL,分页内存
  14. Panel的基本用法
  15. 光伏电站清扫机器人_光伏电站清扫机器人_雷曼科林
  16. kubeadm安装配置指南
  17. 如何高效地阅读论文:三遍阅读法
  18. Android蓝牙打印机,带你真正了解各种打印格式
  19. Spark 1.6 SparkSQL实践
  20. 【程序源代码】微信小程序商城-最新源码

热门文章

  1. Maven精选系列--私库搭建及使用
  2. 【Python】Scrapy的安装与使用
  3. java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321
  4. 81. 搜索旋转排序数组 II---Leecode----java
  5. 类的继承python 简明_[简明python教程]学习笔记2014-05-04
  6. python3多线程第三方库_Python3 多线程
  7. spring(6) 渲染web视图
  8. java并发编程实践(1)intro
  9. MySQL的CRUD操作+使用视图
  10. java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)