环境准备:jdk1.8+tomcat8+idea+gradle

1.创建项目SSM

使用gradle创建项目,按照提示如下

 
image.png

输入项目名称,组名

 
image.png
 
image.png

选择本地安装gradle

 
image.png

点击下一步创建成功

 
image.png

如图所示,项目结构不完整,下面完善项目结构
手动创建文件夹java和resources,WEB-INF

 
image.png

创建web.xml

 
image.png

创建成功

 
image.png

配置tomcat

 
image.png
 
image.png
 
image.png

在web.xml中添加默认访问页面

 
image.png

启动项目,访问localhost:8080如下,项目创建成功

 
image.png

2.搭建ssm

配置文件build.gradle
更改jdk版本,使用阿里的maven仓库,导入依赖,在此附上spring各个依赖包的作用,方便大家理解。(有时我也很懵逼)

http://blog.csdn.net/sunchen2012/article/details/53939253
http://blog.csdn.net/weisong530624687/article/details/50888094

group 'com.lmandy'
version '1.0-SNAPSHOT' apply plugin: 'java'
apply plugin: 'war' sourceCompatibility = 1.8 repositories {
// mavenCentral()
maven{
url "http://maven.aliyun.com/nexus/content/repositories/central/"
}
} dependencies {
//junit 单元测试
compile group: 'junit', name: 'junit', version: '4.12'
//sping
compile group: 'org.springframework', name: 'spring-core', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-context', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-beans', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-expression', version: '4.3.6.RELEASE' compile group: 'org.springframework', name: 'spring-context-support', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-web', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.6.RELEASE' compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-aop', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-tx', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-orm', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-test', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-aspects', version: '4.3.6.RELEASE' // spring依赖日志包
compile group: 'commons-logging', name: 'commons-logging', version: '1.2' // string 增强
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.4'
// 集合增强
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.1'
//上传组件
compile group: 'commons-io', name: 'commons-io', version: '2.4'
compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
compile group: 'commons-codec', name: 'commons-codec', version: '1.10' //mybatis及依赖包
compile group: 'org.mybatis', name: 'mybatis', version: '3.4.2'
//spring 整合 mybatis
compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.0'
//mysql数据库连接驱动
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
//dbcp 连接池配置数据库
compile group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4'
//jsp相关
compile group: 'jstl', name: 'jstl', version: '1.2'
//JavaEE servlet
compile group: 'javax', name: 'javaee-api', version: '7.0' //日志
compile group: 'log4j', name: 'log4j', version: '1.2.17'
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.24'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.24'
//gson
compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
//fastjson
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.33'
//shiro
compile group: 'org.apache.shiro', name: 'shiro-core', version: '1.3.2'
compile group: 'org.apache.shiro', name: 'shiro-web', version: '1.3.2'
compile group: 'org.apache.shiro', name: 'shiro-spring', version: '1.3.2'
compile group: 'org.apache.shiro', name: 'shiro-ehcache', version: '1.3.2' }

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"> <!--扫描包,自动注入bean-->
<context:component-scan base-package="com.lmandy"/>
<!--使用注解开发spring mvc-->
<mvc:annotation-driven/> <!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean> <!--上传下载-->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> <!--登录拦截器 这里注意一下,如果使用这段代码请配置好登录拦截器,不要只是新建一个LogInterceptor类,要把内容写全,要么注释掉下段代码-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/bootstrap/**/*"/>
<mvc:exclude-mapping path="/css/**/*"/>
<mvc:exclude-mapping path="/js/**/*"/>
<mvc:exclude-mapping path="/img/**/*"/>
<bean class="com.lmandy.interceptor.LogInterceptor"/>
</mvc:interceptor>
</mvc:interceptors> <!--过滤掉静态资源文件-->
<mvc:resources mapping="/bootstrap/**/*" location="/resources/bootstrap/"/>
<mvc:resources mapping="/css/**/*" location="/resources/css/"/>
<mvc:resources mapping="/js/**/*" location="/resources/js/"/>
<mvc:resources mapping="/img/**/*" location="/resources/img/"/>
</beans>

applicationContext.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:tx="http://www.springframework.org/schema/tx"
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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <context:component-scan base-package="com.lmandy"/>
<context:property-placeholder location="classpath:jdbc.properties"/> <!--数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
</bean>
<!--sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:com/lmandy/dao/**/*Mapper.xml"/> </bean>
<!--mapper 扫描器,配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.lmandy.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean> <!--声明式事物管理器-->
<!-- 配置spring的PlatformTransactionManager,名字为默认值 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <!-- 配置基于注解的声明式事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param> <!-- 使用监听器加载applicationContext文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- 解决post乱码问题 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!--前段控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!--默认访问页面-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

jdbc.properties(数据库配置文件)

#jdbc.driver=com.mysql.jdbc.Driver
jdbc.driver=com.mysql.cj.jdbc.Driver
#jdbc.url=jdbc:mysql:///account?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
jdbc.url=jdbc:mysql:///account?serverTimezone=UTC
jdbc.username=root
jdbc.password=123

log4j.properties(spring整合log4j的日志文件,依赖已导入)

log4j.rootLogger=DEBUG , stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

最终项目结构如下,相关包大家自己修改,创建。要和配置文件里对应

 
image.png

至此整个项目搭建完成,下面进行简单的测试。在WEB-INF/views下新建testIndex.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>测试</title>
</head>
<body>
这是一个测试页面
</body>
</html>

创建TestController

package com.lmandy;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("/test")
@Controller
public class TestController { @RequestMapping("index")
public String testIndex(){ return "testIndex";
//对应刚刚创建的jsp文件名,这里用的是逻辑视图
}
}

逻辑视图解析器已在spring-mvc.xml配置

<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>

下面启动项目开始访问 http://localhost:8080/test/index如下访问成功

 
image.png

至此可以进行开发了

在此附上demo的地址 https://gitee.com/lmandy/text_gradle.git

创建数据库:account
创建:test_user表 此处注意要和jdbc中对应

CREATE TABLE `test_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

小礼物走一走,来简书关注我

作者:lmandy
链接:https://www.jianshu.com/p/7fe31ea61dda
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

idea 创建java web项目ssm-gradle的更多相关文章

  1. IntelliJ IDEA + Maven创建Java Web项目

    1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...

  2. 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...

  3. IntelliJ IDEA14 和 Maven 系列:使用IntelliJ IDEA 14和Maven 7 创建java web项目(一)

    Intellij IDEA作为最好的Java IDE,创建Maven项目还是比较简单的,但是创建一个Maven Web项目还是要修改一些配置的,下面进行总结整理. 1前言 在创建项目中,IDEA提供了 ...

  4. 使用IntelliJ IDEA 和 Maven创建Java Web项目

    1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...

  5. 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)

    1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...

  6. intellij 创建java web项目(maven管理的SSH)

    intellij 创建java web项目(maven管理的SSH) 环境intellij IDEA14.MAVEN.Spring.Struts2.Hibernate.Java Web.工程搭建. 1 ...

  7. 17. IntelliJ IDEA + Maven创建Java Web项目

    转自:https://www.cnblogs.com/Terry-Wu/p/8006475.html 1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里 ...

  8. eclipse 创建Java web项目 Cannot change version of project facet Dynamic web module to xxx

    问题描述: 用Eclipse创建Java web项目时选择的Artifact Id为maven-artchetype-webapp,由于这个archetype比较老,用的servlet还是2.3的. ...

  9. 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)

    转自:https://blog.csdn.net/myarrow/article/details/50824793 1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和 ...

  10. 使用Gradle创建java web项目

    什么是Gradle? Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具. 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML ...

随机推荐

  1. pages

    pages pages 接受一个数组,每一项都是一个字符串,指定 SWAN App 都有哪些页面.每一项代表页面的[路径 + 文件名],数组第一项代表 SWAN 初始页面. SWAN 中新增或减少页面 ...

  2. HDU-6704 K-th occurrence

    Description You are given a string S consisting of only lowercase english letters and some queries. ...

  3. Linux 安装R包

    https://www.cnblogs.com/jessepeng/p/10984983.html Linux 的R环境,可以通过anaconda jupyter notbook很容易的配置,见我之前 ...

  4. hashcode、equals、HashMap间的关系

    1.从Object说起package com.hallo.collection; public class ObjectDemo { public static void main(String[] ...

  5. grep的用法,小技巧,模板中含有\t时:grep -P "^\t" file

    linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事 ...

  6. python文件操作错误解决

    1. python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illega ...

  7. centOS 7 安装nginx服务

    一.安装相关依赖 yum install gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum insta ...

  8. python修改文件

    文档username.txt 将文件中密码123456改成67890: 方法一:(简单粗暴) 1.打开文件 2.读出数据 3.修改数据 4.清空原来文件,将新的内容写进去 f = open('user ...

  9. 记一次oracle安装错误:INFO: //usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

    --一次oracle安装错误,oracle version:11.2.0.1.0[root@localhost ~]# cat /etc/issue\SKernel \r on an \m [root ...

  10. 关于 5.4 Eloquent ORM first() 与 get() 判断是否为空

    例如: $model = Model::first(); 可以通过is_null()来判断 $model = Model::get(); laravel自带了一个方法  $model->isEm ...