使用IDEA和gradle搭建Spring MVC和MyBatis开发环境
1. 概述
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
Spring MVC属于SpringFrameWork的后续产品,已经融合 在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
MyBatis本是apache的一个开源项目iBatis, 2010年这个项目 由apache software foundation 迁移到了google code,并且改名为MyBatis 。 2013年11月迁移到Github。
2. 准备工作
1.安装mysql,并完成相应数据库的建立
2.安装IDEA完整版
3.下载tomcat或其他服务器
3. 创建工程
打开IDEA软件,选择Create New Project:

选择创建基于gradle的java web项目:

输入GroupId和ArtifactId:

选择gradle的来源,可以用自己下载的gradle,也可以使用IDEA内建的gradle版本:

选择项目的目录:

点击完成,会生成一个最基本的java web目录,增加文件夹和相应文件,将其目录结构改为以下结构:

其中resources目录中的config文件夹中的文件和WEB-INF文件夹下的web.xml, 以及build.gradle都是自己进行配置的。
配置文件
1. generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<classPathEntry location="${jarDirection}"/>
<context id="mysql" targetRuntime="MyBatis3">
<jdbcConnection driverClass="${driverClass}"
connectionURL="${connectionURL}"
userId="${userId}"
password="${password}">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<javaModelGenerator
targetPackage="${modelPackage}"
targetProject="${src_main_java}">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator
targetPackage="${sqlMapperPackage}"
targetProject="${src_main_java}">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="${mapperPackage}"
targetProject="${src_main_java}">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 每一个数据库表都需要建立一个对应的table字段 -->
<table schema="test" tableName="user" domainObjectName="User" >
<!-- <property name="useActualColumnNames" value="true"/>
<generatedKey column="ID" sqlStatement="DB2" identity="true" />
<columnOverride column="DATE_FIELD" property="startDate" />
<ignoreColumn column="FRED" />
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> -->
</table>
</context>
</generatorConfiguration>
2. gradle.properties
# 生成的model类所在包
modelPackage=cn.edu.bupt.wen.model
# 生成的mapper接口类所在包
mapperPackage=cn.edu.bupt.wen.mapper
# 生成的mapper xml文件所在包
sqlMapperPackage=cn.edu.bupt.wen.mybatis_mapper
3. jdbc-mysql.properties
# 将jdbc.jarDirection后的内容更改为gradle下载的
# mysql-connector-java-5.1.x.jar所在的路径,gradle自动下载的路径如下所示
jdbc.jarDirection=/Users/wenzhiquan/.gradle/caches/modules-2/files-2.1/mysql
/mysql-connector-java/5.1.38/dbbd7cd309ce167ec8367de4e41c63c2c8593cc5
/mysql-connector-java-5.1.38.jar
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/bookbest
jdbc.user=root
jdbc.pass=root
4. spring-mvc.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.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 自动扫描控制器 -->
<context:component-scan base-package="cn.edu.bupt.wen"/>
<!-- 视图渲染 -->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 控制器映射器和控制器适配器 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 静态资源映射器 -->
<mvc:resources mapping="/statics/**" location="/WEB-INF/statics/" />
</beans>
5. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>index-dispather</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/spring/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>index-dispather</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
6. build.gradle
group 'cn.edu.bupt.wen'
version '1.0-SNAPSHOT'
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'idea'
sourceCompatibility = 1.5
repositories {
mavenCentral()
}
configurations {
mybatisGenerator
}
// 读取config文件夹中对应的配置文件
ext{
def prop = new Properties();
file("src/main/resources/config/mybatis/jdbc-mysql.properties")
.withInputStream {
prop.load(it)
}
file("src/main/resources/config/mybatis/gradle.properties")
.withInputStream {
prop.load(it)
}
prop.each {
project.extensions.add("$it.key",it.value);
}
}
// 配置gradle的依赖项
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
compile 'jstl:jstl:1.2'
compile 'org.springframework:spring-aop:4.2.4.RELEASE'
compile 'org.springframework:spring-context:4.2.4.RELEASE'
compile 'org.springframework:spring-beans:4.2.4.RELEASE'
compile 'org.springframework:spring-web:4.2.4.RELEASE'
compile 'org.springframework:spring-webmvc:4.2.4.RELEASE'
compile 'org.springframework:spring-tx:4.2.4.RELEASE'
compile 'org.springframework:spring-jdbc:4.2.4.RELEASE'
compile 'org.springframework:spring-test:4.2.4.RELEASE'
compile 'mysql:mysql-connector-java:5.1.38'
compile 'org.mybatis.generator:mybatis-generator-core:1.3.2'
compile 'org.mybatis:mybatis-spring:1.2.3'
compile 'org.mybatis:mybatis:3.3.0'
compile 'junit:junit:4.12'
mybatisGenerator 'org.mybatis.generator:mybatis-generator-core:1.3.2'
mybatisGenerator 'mysql:mysql-connector-java:5.1.38'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
// 利用ant创建一个自动生成MyBatis目录文件的task
task mybatisGenerate << {
ant.properties['targetProject'] = projectDir.path
ant.properties['jarDirection'] = project['jdbc.jarDirection']
ant.properties['driverClass'] = project['jdbc.driverClassName']
ant.properties['connectionURL'] = project['jdbc.url']
ant.properties['userId'] = project['jdbc.user']
ant.properties['password'] = project['jdbc.pass']
ant.properties['src_main_java'] = sourceSets.main.java.srcDirs[0].path
ant.properties['src_main_resources'] = sourceSets.main.resources.srcDirs[0].path
ant.properties['modelPackage'] = project['modelPackage']
ant.properties['mapperPackage'] = project['mapperPackage']
ant.properties['sqlMapperPackage'] = project['sqlMapperPackage']
ant.taskdef(
name: 'mbgenerator',
classname: 'org.mybatis.generator.ant.GeneratorAntTask',
classpath: configurations.mybatisGenerator.asPath
)
ant.mbgenerator(overwrite: true,
configfile: 'src/main/resources/config/mybatis/generatorConfig.xml',
verbose: true) {
propertyset {
propertyref(name: 'targetProject')
propertyref(name: 'jarDirection')
propertyref(name: 'userId')
propertyref(name: 'driverClass')
propertyref(name: 'connectionURL')
propertyref(name: 'password')
propertyref(name: 'src_main_java')
propertyref(name: 'src_main_resources')
propertyref(name: 'modelPackage')
propertyref(name: 'mapperPackage')
propertyref(name: 'sqlMapperPackage')
}
}
}
下载gradle依赖包
至此,基本的配置就完成了,接下来就需要运行gradle下载相应的依赖包了, 操作如下:打开IDEA > View > Tool Windows > gradle:

点击图中的按钮,IDEA就会自动下载依赖包了。
下载完成后,目录下的External Libraries文件夹会生成相应的目录:

下载完依赖包之后,整体的配置基本上就完成了。
3. 部署到Tomcat服务器
打开IDEA > Run > Edit Configurations...

点击tomcat server的local选项,点击右上角的configure..., 在弹出的对话框中选中下载的Tomcat根目录:

然后将配置好的tomcat添加到运行库当中:

4. 编写代码并运行
编写controller代码
在controller文件夹中创建IndexController文件,将代码修改为:
package cn.edu.bupt.wen.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Author wenzhiquan
* Created on 16/4/12 下午12:25
* File name: IndexController.java
* Description: null
*/
@Controller
public class IndexController {
@RequestMapping("/")
public String index(){
return "index";
}
}
修改index.jsp
将index.jsp文件修改为自己想要的样式:
<%--
Created by IntelliJ IDEA.
User: wenzhiquan
Date: 16/4/12
Time: 下午12:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Index</title>
</head>
<body>
Hello World!
</body>
</html>
运行Tomcat

点击运行按钮,服务器启动后会自动启动浏览器进入主界面:

至此,hello world程序已经完成。
5. 自动生成mybatis相关文件
进入gradle的view,点击创建gradle任务:

创建一个mybatisGenerate任务:

点击OK,会在model,mapper和mybatis_mapper文件夹中自动生成相应的文件:

至此,Spring MVC + MyBatis的Java Web开发环境配置完成。
使用IDEA和gradle搭建Spring MVC和MyBatis开发环境的更多相关文章
- Dive into Spring framework -- 搭建spring 源码的开发环境
spring是一个类之间依赖的管理容器,大家都知道,但我们中很多人都仅仅停留在使用的层面,但spring本身具有极大的研究价值,所以在使用了几年spring之后,还是想深入的探究一下其根源.记录于此, ...
- 16 搭建Spring Data JPA的开发环境
使用Spring Data JPA,需要整合Spring与Spring Data JPA,并且需要提供JPA的服务提供者hibernate,所以需要导入spring相关坐标,hibernate坐标,数 ...
- 搭建 Spring 2.5.6 开发环境
1.jar 包准备: spring 2.5.6 的 jar 包(链接: http://pan.baidu.com/s/1skVFfcx 密码: mbiz),如图: commons-logging-1. ...
- MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml
一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
- 搭建Spring、Spring MVC、Mybatis和Freemarker
搭建Spring.Spring MVC.Mybatis和Freemarker 1.pom文件 <project xmlns="http://maven.apache.org/POM/4 ...
- 零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)
作者各必备工具的版本如下: Tomcat:apache-tomcat-7.0.63 (下载链接) Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载 ...
- 一、Spring MVC起步——IntelliJ IDEA 搭建Spring MVC环境(手把手搭建)
本机环境: JDK 1.7 IntelliJ IDEA 2017.2 1.新建项目 Create New Project 选择Spring MVC 填写项目名和项目存放位置 然后点击Fin ...
- maven 纯注解一步一步搭建Spring Mvc项目(入门)
初次接触spring MVC项目,通过一段时间的学习,本文介绍一种以纯注解的方法去配置spring MVC环境,让那些配置的.xml文件统统见鬼吧. 什么是Spring MVC Spring MVC属 ...
随机推荐
- linux下打开txt显示乱码的解决方法
Linux打开txt文件乱码的解决方法 Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb1 ...
- python的高级特性3:神奇的__call__与返回函数
__call__是一个很神奇的特性,只要某个类型中有__call__方法,,我们可以把这个类型的对象当作函数来使用. 也许说的比较抽象,举个例子就会明白. In [107]: f = abs In [ ...
- 使用 Fastlane 实现 IOS 持续集成
简介 持续集成是个“一次配置长期受益”的工作.但很多小公司都没有.以前在做Windows开发配置感觉简单一些,这次配置iOS的,感觉步骤还挺多.整理出来,分享给大家,不正确的地方请及时指正. 本文主要 ...
- asp.net core 日志
日志输出是应用程序必不可少的部分,log4net,nlog这些成熟的组件在之前的项目中被广泛使用,在asp.net core的项目中没有找到与之对应的log4net版本,nlog对core提供了很好的 ...
- oracle编程总结
1,SEQUENCE的使用 问题:在MSSQL中,我们可以通过设置自增长来作为主键,但是oracle里面没有这个 解决方案:使用SEQUENCE来实现,具体步骤如下 (1)首先建立一个序列(就是每次查 ...
- php数组函数,字符串,linux命令
1>> Linux常用命令一. 文件目录操作命令1. ls命令 命令格式:ls [选项] [目录名] 命令功能:列出目标目录中所有的子目录和文件.2. 命令格式:cd [目录名 ...
- TinyFrame再续篇:整合Spring AOP实现日志拦截
上一篇中主要讲解了如何使用Spring IOC实现依赖注入的.但是操作的时候,有个很明显的问题没有解决,就是日志记录问题.如果手动添加,上百个上千个操作,每个操作都要写一遍WriteLog方法,工作量 ...
- 搭建emacs的go编程语言环境
关于emacs就不说明了,直接切入主题.关于我的emacs配置,可以直接参考GitHub上的lienhua34/myemacs-conf. go-mode 安装 关于go-mode的安装,可以直接参考 ...
- 【BZOJ1002】【FJOI2007】轮状病毒(生成树计数)
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1766 Solved: 946[Submit][Status ...
- floyd原理以及求最小环
floyd这个东西学会了好久了,但是原理总是忘记,或者说没有真正的明白,这里在说一下. 我们要求的是任意的 i,j 之间的最短路径,用动态规划的思想来解决就是f[i,j,k]表示i到j中间节点不超过k ...