sts + gradle + tomcat 运行 spring mvc

环境

各软件版本

sts : spring-tool-suite-3.7.3.RELEASE-e4.5.2-win32-x86_64

gradle : 2.7

tomcat : 7

以上环境自行安装

gradle 插件配置

sts 的 gradle 插件 安装,你需要打开eclipse市场,然后搜索gradle,会看到如下两个插件,都要安装

Alt sts gradle 插件

创建项目

创建

新建gradle项目,这里要注意,不要选择gradle sts,选上面的

Alt sts gradle 创建项目01

填写你的gradle和jdk路径

Alt sts gradle 创建项目02

修改项目配置

修改项目结构如下:

Alt sts gradle 项目目录结构

项目右键属性,做如下修改

Alt sts gradle 项目目录结构

如果没有 Project and External Dependentcies 这一项,则点击右侧的Add

Alt sts gradle 创建项目02

选择 Java Build Path Entries

Alt sts gradle 创建项目02

选择,finish

Alt sts gradle 创建项目02

增加Dynamic Web Module 3.0支持,这里要注意,sts会自动添加一个WebContent目录,删除即可

Alt sts gradle 创建项目02

到这里项目的配置基本上就算完成了,最后的Java Build Path Entries 和 Dynamic Web Module 3.0配置主要是为了项目可以运行在tomcat中

编码

编码参考自这里:http://blog.csdn.net/jpweb2013/article/details/39673329

我的代码如下:

build.gradle

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'


// JDK 7
sourceCompatibility = 1.7
targetCompatibility = 1.7

repositories {
	mavenLocal()
    mavenCentral()
    jcenter()
}

String springVersion = '4.0.2.RELEASE' 

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.12'
    
    // j2ee base
	providedCompile 'javax.servlet:javax.servlet-api:3.0.1'
    compile 'javax.servlet:jstl:1.2'
    
    // spring core
    compile ('org.springframework:spring-context:' + springVersion)  
    compile ('org.springframework:spring-core:' + springVersion)  
    compile ('org.springframework:spring-webmvc:' + springVersion)  

    testCompile 'junit:junit:4.12'
}

jettyRun {
	httpPort = 8080
	contextPath = 'sshone'
}

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_3_0.xsd"
	version="3.0">

	 <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>/WEB-INF/spring/root-context.xml</param-value>  
    </context-param>  
      
    <!-- Creates the Spring Container shared by all Servlets and Filters -->  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
  
    <!-- Processes application requests -->  
    <servlet>  
        <servlet-name>appServlet</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>/WEB-INF/spring/dispatcherServlet-servlet.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
          
    <servlet-mapping>  
        <servlet-name>appServlet</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping> 

	<display-name>bookstore</display-name>
	<welcome-file-list>
		<welcome-file>/index.jsp</welcome-file>
	</welcome-file-list>

</web-app>  

root-context.xml

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">  
  
    <!-- Root Context: defines shared resources visible to all other web components -->  
  
</beans>  

dispatcherServlet-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">


	<mvc:annotation-driven />
	<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
	<context:component-scan base-package="com.laolang.ssh" />
	
	<!--对静态资源文件的访问 -->
	<mvc:resources mapping="static/**" location="static/" />
	
	<!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>


</beans>

BookTypeController

package com.laolang.ssh.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/goodtypes")
public class BookTypeController {
	
	
	@RequestMapping(value="goodtypes",method=RequestMethod.GET,produces="text/html")
	public String list( Model model ){
		System.out.println("goodtype list");
		model.addAttribute("msg", "Hello Gradle!");
		return "goodtype/list";
	}

}

运行

建议你把sts的自动build关掉,手动build。

你需要创建一个tomcat server new -> other -> server -> apache -> tomcat

选择适合你的版本,写好名字,

Alt sts gradle server

然后再把你的项目添加到你创建服务中,手动build,然后debug启动,在BookTypeController的list方法第一行批一断点,在浏览器中输入如下地址:

http://localhost:8088/sshone/goodtypes/goodtypes

如果成功,那么你会看到如下的debug画面

Alt sts gradle debug

结语

之所以选择这种运行方式,是因为gradle的jettyRun只能开,不能关,如果想关闭,要么在任务管理器中关闭,要么用命令行运行,而且我不会gradle的debug模式。这种新建一个服务的方式不仅可以为每个项目定制tomcat配置,而且可以进debug模式,就是比起jettyRun有点慢,项目大一点,电脑性能再差点,你可能得等上一会儿。解决方法就是 换个电脑 -_-#!

如果遇到 依赖无法加载的问题,则项目右键->gradle->refresh 即可

转载于:https://my.oschina.net/iamhere/blog/725094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值