热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细

简介本文章提供了详细的搭建过程,供大家参考学习。案例Demo已托管至Github,详情查看SSMDemo另附上本人基于SSM搭建的高效便捷开发框架,上手就能用:单节点项目:详情参考
简介

本文章提供了详细的搭建过程,供大家参考学习。

案例Demo已托管至Github,详情查看SSM Demo

另附上本人基于SSM搭建的高效便捷开发框架,上手就能用:

  • 单节点项目:详情参考使用Maven构建 基于SpringMVC+Spring+Mybatis(SSM)高效便捷开发框架
  • 分布式项目:详情参考使用Maven构建 整合Dubbo+Zookeeper+SpringMVC+Spring+MyBatis支持分布式 高效便捷开发框架
环境
  • MacOS Sierra / Windows 7
  • MySql 5.7
  • JDK 1.8
  • Eclipse 4.6.1
  • Maven 3.3.9
  • Jetty 9.4.6.v20170531 / Tomcat 9.0
技术选型
名称描述版本号网址
Spring MVCMVC框架4.3.10.RELEASEhttps://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc
Spring Framework容器4.3.10.RELEASEhttp://projects.spring.io/spring-framework/
MyBatisORM/持久层框架3.4.5http://www.mybatis.org/mybatis-3/zh/index.html
AspectJ面向切面的框架1.8.10http://www.eclipse.org/aspectj/
Druid数据库连接池1.1.3https://github.com/alibaba/druid
Jacksonjson解析器2.9.1https://github.com/FasterXML/jackson
Logback日志组件1.2.3https://logback.qos.ch
Maven项目构建管理3.3.9http://maven.apache.org/
搭建步骤

一、创建Maven项目

具体操作如下图

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 1.png

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 2.png

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 3.png

新建好的项目会有报错提示,别着急,在项目上右键选择 Java EE Tools > Generate Deployment Descriptor Stub

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 4.png

接下来在项目上右键选择最后一项 Properties > Project Facets

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 5.png

到这里一个Maven的Web项目就创建好了

二、在pom.xml中添加依赖包

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.frame
ssm
0.0.1-SNAPSHOT
war

UTF-8
4.3.11.RELEASE
1.8.10
2.9.1
1.2.3




commons-fileupload
commons-fileupload
1.3.3


commons-io
commons-io
2.5


org.apache.commons
commons-lang3
3.6



org.springframework
spring-aspects
${spring.framework.version}


org.springframework
spring-context
${spring.framework.version}


org.springframework
spring-jdbc
${spring.framework.version}


org.springframework
spring-webmvc
${spring.framework.version}


org.springframework
spring-context-support
${spring.framework.version}



org.aspectj
aspectjweaver
${aspectj.version}


org.aspectj
aspectjrt
${aspectj.version}



org.mybatis
mybatis
3.4.5


org.mybatis
mybatis-spring
1.3.1



com.alibaba
druid
1.1.3



mysql
mysql-connector-java
5.1.44



com.fasterxml.jackson.core
jackson-databind
${jackson.version}



javax.servlet
javax.servlet-api
3.1.0



javax.servlet
jstl
1.2



ch.qos.logback
logback-classic
${logback.version}



三、配置web.xml文件


xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
ssm

characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8


forceRequestEncoding
true



characterEncodingFilter
/*



springMVC
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-mvc.xml

1


springMVC
/



contextConfigLocation
classpath:applicationContext.xml



org.springframework.web.context.ContextLoaderListener



views/index.jsp


四、在src/main/resources下创建spring配置文件

创建applicationContext.xml配置如下


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" xmlns:aop="http://www.springframework.org/schema/aop"
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.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">














classpath:com/frame/**/*Mapper.xml
classpath:mybatis/**/*Mapper.xml


























创建spring-mvc.xml配置如下


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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

















class="org.springframework.http.converter.StringHttpMessageConverter">


text/html; charset=UTF-8
application/json;charset=UTF-8







text/html; charset=UTF-8
application/json;charset=UTF-8






五、在src/main/resources下创建mybatis/**/*Mapper.xml模板

用于撰写mybatis执行sql的语句




五、在src/main/java下创建com.frame.*测试类

创建service接口

package com.frame.service;
public interface DemoService {
void test();
}

创建service业务层实现类

package com.frame.service.impl;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.frame.service.DemoService;
@Service("demoService")
public class DemoServiceImpl implements DemoService {
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
// mybatis sql模板的命名空间
private static final String NAMESPACE = "com.frame.mapper.DemoMapper";
@Override
public void test() {
System.out.println("返回查询结果集 -> " + sqlSessionTemplate.selectList(NAMESPACE + ".getTest")); // 查询结果集
}
}

创建controller控制器

package com.frame.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.frame.service.DemoService;
@Controller
public class DemoController {
@Autowired
private DemoService demoService;
@RequestMapping("/hello")
public String hello() {
System.out.println("执行hello控制器方法");
// 调用业务层执行查询操作
demoService.test();
return "hello";
}
}

六、在webapp下创建views/*.jsp页面

创建index.jsp

<%@ page language="java" cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>







This is index page.


创建hello.jsp

<%@ page language="java" cOntentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>







Hello World!




七、部署项目并启动服务(Jetty/Tomcat)

《[2018最新]手把手教你使用Maven搭建SSM框架(SpringMVC+Spring+Mybatis)超详细》 6.png

服务启动成功后输入地址http://localhost:8888/ssm/hello进行测试,页面将展示Hello World!字样,控制台输入如下信息

执行hello控制器方法
返回查询结果集 -> [{ID=1ba6d11d2639401ebf63c00c5ae7c2a0, NAME=SSM, TYPE=FRAME}]

到此整个框架就搭建完成了,接下来即可进入开发阶段,如果感觉不错请分享出去。

最后在这里推荐本人自己基于SSM搭建的高效便捷开发框架,上手就能用

  • 单节点项目:详情参考使用Maven构建 基于SpringMVC+Spring+Mybatis(SSM)高效便捷开发框架
  • 分布式项目:详情参考使用Maven构建 整合Dubbo+Zookeeper+SpringMVC+Spring+MyBatis支持分布式 高效便捷开发框架

推荐阅读
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 标题: ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
author-avatar
小志19841126_466
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有