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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绘制Nine-Patch图片

Android sdk----->tools----->draw9patch.bat 打开draw9patch.bat文件 File--》open 0-patch将要绘制的.png图片加载进来 ctrl 图片边缘点击鼠标左键 绘制出线条&#xff0c;表示图片需要被拉伸的部分 File--save 9-patch 文件名pp.9.png。

jms spring_JMS和Spring:有时很重要的小事情

jms springJmsTemplate和DefaultMessageListenerContainer是用于访问JMS兼容MOM的Spring帮助器。 他们的主要目标是在JMS API之上形成一层&#xff0c;并处理诸如事务管理/消息确认之类的基础结构&#xff0c;并隐藏JMS API的某些重复和笨拙的部分&#xff08;保留在那里&#…

重温1 Android系统架构及版本

1、Linux内核层(Linux Kernel) 为Android设备的各种硬件提供了底层驱动&#xff0c;Display Driver/Camera Driver/Bluetooth Driver/Flash Memory Driver/Binder(IPC)Driver/USB Driver/Keypad Driver/WiFi Driver/Audio Drivers/Power Management 2、Libraries/Android Run…

REST资源何时应获得其自己的地址?

在纯粹的REST方法中&#xff0c;所有端点&#xff08;起始端点除外&#xff09;都是不透明的&#xff0c;不需要发布其各种详细信息。 即使使用这种方法&#xff0c;本文中的要点也很重要&#xff0c;因为服务器逻辑将必须确定何时需要结束点。 介绍 在REST体系结构中&#xf…

重温2 在Activity中使用Menu

1、引用string.xml中的字符串 1) 代码中 R.string.hello_world 2) XML中string/hello_world 2、AndroidManifest <activityandroid:name".MainActivity"android:label"string/app_name" ><intent-filter><action android:name"andr…

玩转大数据22:常见的关联规则挖掘算法

引言 关联规则挖掘是数据挖掘中的一种重要技术&#xff0c;主要用于发现数据集中项之间的有趣关系。关联规则挖掘在许多领域都有广泛的应用&#xff0c;如市场篮子分析、推荐系统等。常见的关联规则挖掘算法包括Apriori算法和FP-Growth算法。 一、Apriori算法 关联规则挖掘是…

Java 9:欢迎来到Module World

Java 9已于9月21日正式发布&#xff0c;Eclipse从Eclipse Oxygen.1a&#xff08;4.7.1a&#xff09;支持Java 9&#xff0c;让我们进入模块世界。 从此处下载Java 9&#xff0c;然后将其添加到Eclipse Installed JRE中&#xff0c;如下所示 就是这样&#xff0c;我们很高兴在…

重温5 UI开发

public class TextView extends View implements ViewTreeObserver.OnPreDrawListenerjava.lang.Object ↳android.view.View ↳android.widget.TextView Known Direct Subclasses Button,CheckedTextView,Chronometer,DigitalClock,EditText,TextClockButtonRepresents a…

JWT令牌的秘密轮换

当您使用JSON Web令牌 &#xff08; JWT &#xff09;或需要对有效载荷信息进行签名或加密的任何其他令牌技术时&#xff0c;设置令牌的到期日期很重要&#xff0c;因此&#xff0c;如果令牌到期&#xff0c;则可以假定这可能被视为安全漏洞&#xff0c;您拒绝使用此令牌进行任…

重温6 ListView相关|单位dp/sp

dp:密度无关像素。 sp&#xff1a;可伸缩像素。解决文字大小适配问题。 密度&#xff1a;Android中的密度即屏幕每英寸所包含的像素数&#xff0c;通常以dpi为单位&#xff0c;例如一个宽2英寸长3英寸手机屏幕&#xff0c;若分辨率为320*480&#xff0c;则屏幕密度为320dpi。…

wso2 esb_通过运行示例从WSO2 ESB开始

wso2 esb我最近加入了一个新任务&#xff0c;我们必须基于WSO2工具栈实施ESB解决方案。 尽管我熟悉ESB的大多数概念以及其他一些实现&#xff08;例如Mule ESB &#xff09;&#xff0c;但这是我第一次必须使用WSO2 ESB 。 幸运的是&#xff0c;有很多文档可以找到&#xff0c;…

持久化技术SharedPreferences存储

public interface SharedPreferences android.content.SharedPreferences Class Overview Interface for accessing and modifying preference data returned by getSharedPreferences(String, int). 1、调用SharedPreferences对象的edit()方法获得SharedPreferences.Editor对象…

我们相信加密! 教程

许多人认为加密是一个复杂的主题&#xff0c;这很难理解。 虽然可以实现它的某些方面&#xff0c;但是每个人都可以理解它在更高层次上的工作方式。 这就是我要处理的这篇文章。 用简单的术语解释它是如何工作的&#xff0c;然后使用一些代码。 是的&#xff0c;我们信任加密…

使用Http协议访问网络--HttpURLConnection

public abstract classHttpURLConnection extends URLConnectionjava.lang.Object ↳java.net.URLConnection ↳java.net.HttpURLConnection 1、获取HttpURLConnection实例Protected ConstructorsHttpURLConnection(URL url)Constructs a new HttpURLConnection instance …

Spring Cloud –基本设置

Spring Cloud解决了分布式系统的常见问题。 但是&#xff0c;对于只使用广为人知的整体应用程序工作的人来说&#xff0c;从一开始就跳入一长串为分布式服务设计的模式可能会让人不知所措。 本文将通过实用的方法为您介绍Spring Cloud的基础知识。 完成后&#xff0c;您不仅应该…

Eclipse中的Tomcat:6个流行的“如何做”问题

学习新技术总是一个艰难的过程。 当您尝试学习将要相互交互的两种技术时&#xff0c;此过程变得更加困难。 Tomcat和Eclipse是Java EE开发中最流行的先决条件之一。 因此&#xff0c;要成为一名专业的开发人员&#xff0c;您需要知道如何使用此对执行最需要的操作以及如何进行一…

Spring Boot中带有CKEditor的AJAX

1.概述 在本文中&#xff0c;我们将介绍如何在Spring Boot中使用CKEditor 。 在本教程中&#xff0c;我们将导入一个包含大量数据的XML文档&#xff0c;对使用GET请求将一组数据加载到CKEditor实例的能力进行编程&#xff0c;并执行POST请求以保存CKEditor的数据。 我们将使用…

使用Http协议访问网络--HttpClient

public interface HttpClient org.apache.http.client.HttpClient HttpClient是Apache提供的Http网络访问接口。1、创建HttpClient实例HttpClient是一个接口&#xff0c;无法直接创建实例&#xff0c;通常创建一个DefaultHttpClient&#xff08;HttpClient 的SubClass&#xff…

编写测试用例

1、创建测试用例 为ComeOnBroadcastReceiverDo创建一个测试用例&#xff1a; 在导航栏File-->New-->Other 选择AndroidTestProject 2、点击next输入测试工程的name&#xff0c;选择测试工程路径 点击next,选择要测试的工程&#xff1a; 点击Finish完成测试工程的新建 被…