SPRINGMVC+SPRING+MYBATIS框架配置详细步骤(ECLIPSE普通版)
SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1导言 (1)1.1目的 (1)1.2范围 (1)1.3说明 (1)2搭建SpringMVC (2)2.1搭建所需jar包 (2)2.2其他依赖包 (3)2.3搭建步骤 (4)2.3.1创建项目 (4)2.3.2导入jar包 (6)2.3.3配置web.xml (7)2.3.4配置spring-servlet.xml (9)2.3.5配置applicationContext.xml (10)2.3.6配置log4j.properties (10)3整合mybatis (11)3.1整合所需jar包 (11)3.2其他依赖包 (11)3.3整合步骤 (11)3.3.1导入jar包 (11)3.3.2配置config.properties (12)3.3.3配置spring-dataSource.xml (12)3.3.4配置applicationContext.xml (15)3.3.5配置mybatis-config.xml (16)3.3.6创建实体model (17)3.3.7创建实例化dao (19)3.3.8创建业务服务service (21)3.3.9创建控制层controller (23)3.3.10页面代码 (28)3.3.11启动项目 (37)1导言1.1目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
1.2范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。
1.3说明本文档是个人总结的经验,仅供参考学习,同时欢迎朋友们一起沟通学习,文档中会对使用的jar做详细解说,对配置的过程使用图文说明,因为SSI博大精深,很多知识在搭建过程中没有使用到,只是一个基础框架的搭建,能测试通过就可以,所以对于高要求的开发,需要自己添加jar、增加方法和配置,同时文档中出现的纰漏希望朋友们等指正。
开发环境eclipse-jee-indigo-SR1-win32-dic,Tomcat7.0,JDK1.7,mysql。
2搭建SpringMVC 2.1搭建所需jar包10spring-webmvc-3.1.2.RELEASE.ja r Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型2.2其他依赖包2.3搭建步骤2.3.1创建项目创建一个web项目,如下所示:需要配置tomcat,用于web启动容器。
2.3.2导入jar包项目中点击lib,复制需要的jar到lib中即完成导入,如下所示:如果没有导入完成,右键点击项目名(SSH),选择properties-Java Build Path,点击Add Extenrnal JARs,选择项目lib中的jar包进行导入,如下所示:2.3.3配置web.xml在WEB-INF下配置web.xml,若没有该文件,则自己创建一个xml文件,主要配置spring容器,内容如下所示:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><!--定义LOG4J监听器--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</lis tener-class></listener><!--log4jConfigLocation:log4j配置文件存放路径--><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:config/log4j.properties</param-value> </context-param><!--springMVC Servlet配置--><servlet><servlet-name>springMvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</ser vlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/spring-servlet.xml</param-value> </init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!--spring监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!--防止spring内存溢出监听器--><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListe ner</listener-class></listener><!--装载spring配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext.xml</param-value> </context-param><!--字符集过滤器--><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></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--会话有效期(单位:分钟)--><session-config><session-timeout>15</session-timeout></session-config><!--系统首页--><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>备注:web.xml中,引入了spring-servlet.xml和applicationContext.xml文件,需要把log4j配置在前面,否则会报警告,因为后续加载的程序有打印日志的需求,不过不影响系统运行。
2.3.4配置spring-servlet.xml该文件主要进行springmvc的相关配置,如注解、映射、解析等。
<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:mvc="/schema/mvc"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.2.xsd /schema/mvc/schema/mvc/spring-mvc-3.2.xsd/schema/context/schema/context/spring-context-3.2.xsd"><!--启用spring mvc注解--><mvc:annotation-driven/><!--设置使用注解的类所在的jar包--><context:component-scan base-package="com.xxx.controller"/><!--完成请求和注解POJO的映射--><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMetho dHandlerAdapter"/><!--对转向页面的路径解析。
使用Eclipse构建Maven的SpringMVC项目
使用Eclipse构建Maven的SpringMVC项目首先Eclipse需要安装Maven的插件,地址:/sites/m2e。
用MyEclipse安装Maven插件,建出的Maven项目有些问题。
一是,发布tomcat的时候resources总是不会被发布到tomcat下;二是,把WEB-INF下的classes改到target下的classes,但是不知道为什么MyEclipse要么仍然在WEB-INF下生成class。
要么真不在WEB-INF生成classes 了但是发布tomcat的时候,class文件一个都不会给你发布过去,超级郁闷。
但是使用Eclipse构建Maven项目后,使用MyEclipse打开就没问题了。
用maven的好处:我感觉最主要就是自动下载jar包和它所依赖的包,这样可以保证了多人开发时jar版本不同的问题。
再就是文件结构清晰,java文件,资源文件,测试文件都分的很清楚。
将介绍两种方法:一,直接建立Maven项目方法;二、建立Dynamic Web project转成Maven 项目方法。
1,建立Maven项目接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:1.1 选择建立Maven Project选择File -> New -> Other,在New窗口中选择Maven -> Maven Project。
点击newxt。
1.2 选择项目路径Use default Workspace location默认工作空间。
1.3 选择项目类型在Artifact Id中选择maven-archetype-webapp1.4 输入Group ID和Artifact ID,以及PackageGroup ID一般写大项目名称。
Artifact ID是子项目名称。
例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse-Maven版)
SSI框架搭建(Maven版) SpringMVC4.1.2+Spring4.1.2+Mybatis3.3.0编号:SSI-SMVC3-S4-I3版本:V1.0级别:公开编写时间:2016-06-24目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)1.4 Maven简介 (1)2 准备工作 (2)2.1 安装maven工具 (2)2.2 配置maven环境变量 (2)2.3 配置maven仓库 (2)2.4 Eclipse配置maven信息 (3)3 搭建Maven版的SSI项目 (4)3.1 创建项目 (4)3.2 配置pom文件 (5)3.3 配置web.xml (11)3.4 配置config.properties (13)3.5 配置mybatis-config.xml (14)3.6 配置spring-dataSource.xml (15)3.7 配置spring-mvc.xml (18)3.8 配置spring.xml (19)3.9 配置log4j.properties (20)3.10 创建实体model (20)3.11 创建实例化dao (22)3.12 创建业务服务service (24)3.13 创建控制层controller (26)3.14 页面代码 (31)3.14.1 login.css (31)3.14.2 login.html (32)3.14.3 login.js (34)3.14.4 common.js (35)3.14.5 其他文件 (39)3.15 启动项目 (39)3.15.1 编译项目 (39)3.15.2 启动项目(jetty容器) (39)3.15.3 系统测试 (40)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
SpringMVC框架搭建流程(完整详细版)
SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。
创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。
springmvc+spring+mybatis整合
springmvc+spring+mybatis整合首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。
然后我们就细细的一步一步来整合。
1 创建一个Web项目。
2 导入Mybatis3、Spring4、SpringMVC4、连接数据库(我使用的数据库是mysql)的jar包。
我所用的包:spring-websocket-4.2.0.RELEASE.jar3 创建Mybatis3、Spring4、SpringMVC4、连接数据库的配置文件。
4 配置web.xml1<?xml version="1.0" encoding="UTF-8"?>2<web-app version="2.5"3xmlns="/xml/ns/javaee"4xmlns:xsi="/2001/XMLSchema-instance" 5xsi:schemaLocation="/xml/ns/javaee6/xml/ns/javaee/web-app_2_5.xsd">78<!-- 告知javaEE容器,有哪些内容需要添加到上下文中去--> 9<context-param>10<param-name>contextConfigLocation</param-name> 11<param-value>12/WEB-INF/classes/applicationContext.xml,13<!-- /WEB-INF/classes/mvc-servlet.xml -->14</param-value>15</context-param>161718<!-- 加载LOG4J -->19<context-param>20<param-name>log4jConfigLocation</param-name> 21<param-value>/WEB-INF/log4j.xml</param-value>22</context-param>2324<context-param>25<param-name>log4jRefreshInterval</param-name> 26<param-value>60000</param-value>27</context-param>2829<!-- 动态设置项目的运行路径-->30<context-param>31<param-name>webAppRootKey</param-name>32<param-value>ssm.root</param-value>33</context-param>3435<!-- 配置静态资源-->36<servlet-mapping>37<servlet-name>default</servlet-name>38<url-pattern>/static/*</url-pattern>39</servlet-mapping>404142<!-- 配置springmvc的前端控制器-->43<servlet>44<servlet-name>mvc</servlet-name>45<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>46<!-- 默认情况下:DispatcherServlet会寻找WEB-INF下,命名规范为[servlet-name]-servlet.xml文件。
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)
SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。
SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。
之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。
以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。
这次,先说说三大框架整合过程。
个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。
不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。
实践出真知。
(可通过图片水印查看博客地址)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
mybatis与spring的整合配置说明
mybatis是ibatis的升级版,spring也有自带mybatis的orm。
所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。
下面介绍3中方式1,只是用mybatis3。
2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory )。
3,使用ibatis2.3+spring(使用spring自带的ibatis)spring的orm包中只有ibatis,没有mybatis。
而mybatis和ibatis还是有些区别的,比如配置文件属性不同。
第一种方式(只使用mybatis):1)jar包:cglib-2.2.jarasm-3.1.jarmysql-connector-java-3.1.13.jarmybatis-3.0.5.jarjunit.jar2)mybatis配置文件:[html]view plaincopy1.<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//my//DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">2.<configuration>3.<!-- 参数设置 -->4.<settings>5.<!-- 这个配置使全局的映射器启用或禁用缓存 -->6.<setting name="cacheEnabled"value="true"/>7.<!-- 全局启用或禁用延迟加载。
当禁用时,所有关联对象都会即时加载 -->8.<setting name="lazyLoadingEnabled"value="true"/>9.<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。
Eclipse使用maven搭建springmvc图文教程
Eclipse使⽤maven搭建springmvc图⽂教程本⽂为⼤家介绍了Eclipse使⽤maven搭建spring mvc的详细步骤,供⼤家参考,具体内容如下1、环境配置a). Java 1.7b). Eclipse lunac). Maven3.2.5d). Spring 4.1.42、创建maven⼯程a). 打开eclipse,file->new->project->Maven->Maven Projectb). 下⼀步c). 选择创建的⼯程为webapp,下⼀步d). 填写项⽬的group id和artifact id。
⼀般情况下,group id写域名的倒序,artifact id写项⽬名称即可。
最后点完成。
e). 最初建好后,项⽬⽬录结构如下f). ⼀般的项⽬⽬录中,在java Resources⽬录下,还有src/main/java,src/main/test/java,src/main/test/resources这三个source folder,需要⼿动创建。
在下⾯的步骤中会讲到如何补齐这三个⽬录。
3、修改项⽬基本设置a). 右键此项⽬名称->Properties->Java Build path,点击source标签。
b). 提⽰ hello/src/main/java (missing)和hello/src/test/java (missing)。
⼀般的项⽬⽬录中,在java Resources⽬录下,还会有src/main/test/resources这个source folder。
将missing的先删除,再重新创建,缺少的直接创建。
点右键操作按键进⾏删除和添加。
c). 修改完整,效果如下图d). 接下来再修改libraries的配置,jre使⽤1.7版本。
选中JRE System Library->edit ,更换版本。
e). 再修改⼀下order and export⾥的配置,主要是调整这四个⽬录的显⽰顺序,调为⾃⼰喜欢的顺序即可f). 接下来再修改project facets,先将java修改为1.7。
SSM框架——详细整合教程
SSM框架——详细整合教程SSM(Spring + SpringMVC + MyBatis)是Java Web开发中常用的框架组合,通过整合这三个框架,可以使得开发更加高效、灵活、易于维护。
下面将详细介绍SSM框架的整合步骤。
1.准备工作在开始整合之前,首先需要准备好相关的环境和工具。
确保已经安装了JDK、Tomcat和Maven等工具,并且熟悉基本的Java开发和Web开发知识。
2.创建Maven项目使用Maven创建一个空白的项目作为基础项目。
在项目的pom.xml文件中添加Spring、SpringMVC和MyBatis等相关的依赖。
3.配置Spring在Spring的配置文件中,通过注解或XML的方式进行相关配置。
配置文件主要包含以下内容:-配置数据源,用于连接数据库。
-配置事务管理器,用于管理数据库事务。
- 配置Spring的扫描包,将相关的类自动注入到Spring容器中。
- 配置Spring的AOP(面向切面编程)功能,用于处理事务、日志等公共逻辑。
4.配置SpringMVC在SpringMVC的配置文件中,主要进行以下配置:-配置视图解析器,用于解析并返回视图。
-配置静态资源的处理器,用于处理静态资源文件(如CSS、JS等)。
-配置控制器映射,将请求与相应的控制器方法进行映射。
5.配置MyBatis在MyBatis的配置文件中,主要进行以下配置:- 配置数据源,与Spring的数据源配置保持一致。
- 配置MyBatis的映射文件,将Java对象与数据库表进行映射。
- 配置MyBatis的扫描包,将相关的Mapper接口自动注入到Spring容器中。
6.编写实体类和持久层代码在Java代码中,编写实体类和持久层(DAO)的代码。
实体类用于表示数据库的表结构,持久层代码用于进行数据库的操作。
7.编写服务层和控制器代码在Java代码中,编写服务层(Service)和控制器层(Controller)的代码。
ideaspring+springmvc+mybatis环境配置整合详解
ideaspring+springmvc+mybatis环境配置整合详解idea spring+springmvc+mybatis环境配置整合详解1.配置整合前所需准备的环境:1.1:jdk1.81.2:idea2017.1.51.3:Maven 3.5.22.查看idea中是否安装Maven插件:2.1:File --> Settings --> Plugins2.2:如下图所⽰的步骤进⾏操作(注:安装完插件,idea会重新启动)3.3.idea创建Maven项⽬的步骤4.搭建⽬录结构下图就是我搭建Maven项⽬之后,添加对应的⽬录和⽂件5.pom.xml⽂件配置<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chen.web</groupId><artifactId>MaevnDemo</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>MaevnDemo Maven Webapp</name><url></url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- spring版本号 --><spring.version>4.2.5.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.8</mybatis.version><!-- mysql驱动版本号 --><mysql-driver.version>5.1.29</mysql-driver.version><!-- log4j⽇志包版本号 --><slf4j.version>1.7.18</slf4j.version><log4j.version>1.2.17</log4j.version></properties><dependencies><!-- 添加jstl依赖 --><dependency><groupId>jstl</groupId><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><!-- 添加junit4依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><!-- 指定范围,在测试时才会加载 --><scope>test</scope></dependency><!-- 添加spring核⼼依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId> <version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- 添加mybatis依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- 添加mybatis/spring整合包依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-driver.version}</version></dependency><!-- 添加数据库连接池依赖 --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency><!-- 添加fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><!-- 添加⽇志相关jar包 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- log end --><!-- 映⼊JSON --><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency><!-- https:///artifact/com.fasterxml.jackson.core/jackson-core --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.8.0</version></dependency><!-- https:///artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.8.0</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version></dependency></dependencies><build></build></project>6.jdbc.properties配置⽂件#驱动jdbcUrl=jdbc:mysql://localhost:3306/db_tosys?useUnicode=true&characterEncoding=utf-8#数据库⽤户名username=root#数据库密码password=root#定义初始连接数initialSize=0#定义最⼤连接数maxActive=20#定义最⼤空闲maxIdle=20#定义最⼩空闲minIdle=1#定义最长等待时间maxWait=600007.spring-mybatis.xml配置⽂件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context" xmlns:tx="/schema/tx" xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-3.1.xsd/schema/context/schema/context/spring-context-3.1.xsd/schema/tx/schema/tx/spring-tx.xsd"><!-- ⾃动扫描 --><context:component-scan base-package="com.chen.ssm"/><!-- 第⼀种⽅式:加载⼀个properties⽂件 --><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:jdbc.properties"/></bean><!-- 第⼆种⽅式:加载多个properties⽂件<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"><property name="locations"><list><value>classpath:jdbc.properties</value><value>classpath:common.properties</value></list></property><property name="fileEncoding" value="UTF-8"/></bean><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"><property name="properties" ref="configProperties"/></bean>--><!-- 配置数据源 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driverClasss}"/><property name="url" value="${jdbcUrl}"/><property name="username" value="${username}"/><property name="password" value="${password}"/><!-- 初始化连接⼤⼩ --><property name="initialSize" value="${initialSize}"></property><!-- 连接池最⼤数量 --><property name="maxActive" value="${maxActive}"></property><!-- 连接池最⼤空闲 --><property name="maxIdle" value="${maxIdle}"></property><!-- 连接池最⼩空闲 --><property name="minIdle" value="${minIdle}"></property><!-- 获取连接最⼤等待时间 --><property name="maxWait" value="${maxWait}"></property></bean><!-- mybatis和spring完美整合,不需要mybatis的配置映射⽂件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><!-- ⾃动扫描mapping.xml⽂件 --><property name="mapperLocations" value="classpath*:mapper/*.xml"></property></bean><!-- DAO接⼝所在包名,Spring会⾃动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><tx:annotation-driven transaction-manager="transactionManager"/></beans>8..进⾏web.xml的配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><display-name>web-ssm</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mybatis.xml</param-value></context-param><context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log4j.properties</param-value></context-param><!-- 编码过滤器 --><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></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- spring监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 防⽌spring内存溢出监听器,⽐如quartz --><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><!-- spring mvc servlet--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 此处也可以配置成 *.do 形式 --><url-pattern>/</url-pattern></servlet-mapping><!-- 设置默认的启动时的初始页⾯--><welcome-file-list><welcome-file>/index.jsp</welcome-file></welcome-file-list><!-- session配置设置session会话的超时时间 --><session-config><session-timeout>15</session-timeout>9.配置类:UserController@Controller@RequestMapping("/user")public class UserController {@Resourceprivate UserService userService;@RequestMapping("/test")public String test() {return "list";}@RequestMapping("/index")public String index() {return "login";}@RequestMapping("/login")public String login(User user, HttpServletRequest request) {User loginUser = userService.login(user);if (loginUser != null) {request.getSession().setAttribute("userName",loginUser.getUsername()); return "success";}request.getSession().setAttribute("message","⽤户名或密码有误!!!"); System.out.println(loginUser.getUsername());return "login";}}10.配置类:IUserDaopublic interface IUserDao {User login(User user);User selectByPrimaryKey(Integer id);int deleteByPrimaryKey(Integer id);int insert(User record);int insertSelective(User record);int updateByPrimaryKeySelective(User record);int updateByPrimaryKey(User record);}11.实体类:User.javapublic class User {private Integer id;private String email;private String password;private String phone;private String sex;private String sfz;private String truename;private String username;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email == null ? null : email.trim();return password;}public void setPassword(String password) {this.password = password == null ? null : password.trim(); }public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone == null ? null : phone.trim();}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex == null ? null : sex.trim();}public String getSfz() {return sfz;}public void setSfz(String sfz) {this.sfz = sfz == null ? null : sfz.trim();}public String getTruename() {return truename;}public void setTruename(String truename) {this.truename = truename == null ? null : truename.trim(); }public String getUsername() {return username;}public void setUsername(String username) {ername = username == null ? null : username.trim(); }}erServicepublic interface UserService {User login(User user);User getUserById(String id);void add(User user);void update(User user);}13.IUserService@Service("userService")public class IUserService implements UserService {@Autowiredprivate IUserDao userDao;public User login(User user) {return userDao.login(user);}public User getUserById(String id) {return userDao.selectByPrimaryKey(Integer.parseInt(id));}public void add(User user) {}}erMapper.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.chen.ssm.dao.IUserDao" ><resultMap id="BaseResultMap" type="er" ><id column="id" property="id" jdbcType="INTEGER" /><result column="email" property="email" jdbcType="VARCHAR" /><result column="password" property="password" jdbcType="VARCHAR" /><result column="phone" property="phone" jdbcType="VARCHAR" /><result column="sex" property="sex" jdbcType="VARCHAR" /><result column="sfz" property="sfz" jdbcType="VARCHAR" /><result column="trueName" property="truename" jdbcType="VARCHAR" /><result column="userName" property="username" jdbcType="VARCHAR" /></resultMap><sql id="Base_Column_List" >id, email, password, phone, sex, sfz, trueName, userName</sql><select id="login" resultMap="BaseResultMap" parameterType="er">SELECT <include refid="Base_Column_List"/> FROM t_user WHERE userName = #{username,jdbcType=VARCHAR} and password = #{password,jdbcType=VARCHAR} </select><select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="ng.Integer" >select<include refid="Base_Column_List" />from t_userwhere id = #{id,jdbcType=INTEGER}</select><delete id="deleteByPrimaryKey" parameterType="ng.Integer" >delete from t_userwhere id = #{id,jdbcType=INTEGER}</delete><insert id="insert" parameterType="er" >insert into t_user (id, email, password,phone, sex, sfz, trueName,userName)values (#{id,jdbcType=INTEGER}, #{email,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},#{phone,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{sfz,jdbcType=VARCHAR}, #{truename,jdbcType=VARCHAR},#{username,jdbcType=VARCHAR})</insert><insert id="insertSelective" parameterType="er" >insert into t_user<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="email != null" >email,</if><if test="password != null" >password,</if><if test="phone != null" >phone,</if><if test="sex != null" >sex,</if><if test="sfz != null" >sfz,</if><if test="truename != null" >trueName,</if><if test="username != null" >userName,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" ><if test="email != null" >#{email,jdbcType=VARCHAR},</if><if test="password != null" >#{password,jdbcType=VARCHAR},</if><if test="phone != null" >#{phone,jdbcType=VARCHAR},</if><if test="sex != null" >#{sex,jdbcType=VARCHAR},</if><if test="sfz != null" >#{sfz,jdbcType=VARCHAR},</if><if test="truename != null" >#{truename,jdbcType=VARCHAR},</if><if test="username != null" >#{username,jdbcType=VARCHAR},</if></trim></insert><update id="updateByPrimaryKeySelective" parameterType="er" >update t_user<set ><if test="email != null" >email = #{email,jdbcType=VARCHAR},</if><if test="password != null" >password = #{password,jdbcType=VARCHAR},</if><if test="phone != null" >phone = #{phone,jdbcType=VARCHAR},</if><if test="sex != null" >sex = #{sex,jdbcType=VARCHAR},</if><if test="sfz != null" >sfz = #{sfz,jdbcType=VARCHAR},</if><if test="truename != null" >trueName = #{truename,jdbcType=VARCHAR},</if><if test="username != null" >userName = #{username,jdbcType=VARCHAR},</if></set>where id = #{id,jdbcType=INTEGER}</update><update id="updateByPrimaryKey" parameterType="er" >update t_userset email = #{email,jdbcType=VARCHAR},password = #{password,jdbcType=VARCHAR},phone = #{phone,jdbcType=VARCHAR},sex = #{sex,jdbcType=VARCHAR},sfz = #{sfz,jdbcType=VARCHAR},trueName = #{truename,jdbcType=VARCHAR},userName = #{username,jdbcType=VARCHAR}where id = #{id,jdbcType=INTEGER}</update></mapper>15.建⽴⼀个测试类,⽤于测试mybatis,类名:TestMybatis.java @RunWith(SpringJUnit4ClassRunner.class) //表⽰继承了SpringJUnit4ClassRunner类@ContextConfiguration(locations = {"classpath*:spring-mvc.xml","classpath*:spring-mybatis.xml"})public class TestMybatis {private static Logger logger = Logger.getLogger(TestMybatis.class);@Autowiredprivate IUserDao dao;@Testpublic void testSelectUser() throws Exception {Integer id = 1;User user = dao.selectByPrimaryKey(id);System.out.println(user.getUsername());}}16.配置项⽬的运⾏环境17.接着新建⼀个jsp页⾯(index.jsp),来测试springmvc+mybatis+spring的整合<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>登陆界⾯</title><script type="text/javascript">// window.location.href = "http://localhost:8080/MavenDemo/user/index";// window.location.href = "${pageContext.request.contextPath}/user/index";</script></head><body><h1>hello world!!!</h1><form action="${pageContext.request.contextPath}/user/login">⽤户名:<input type="text" name="username"><br>密 码:<input type="password" name="password"><br><input type="submit" value="submit"/></form></body></html>18.成功之后的跳转界⾯(loginSuccess.jsp)<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>信息界⾯</title></head><body><div style="padding-left: 10px;"><div class="panel panel-default"><div class="panel-heading" style="font-size: 18px;">⽤户信息</div><table class="table" style="text-align: center;"><thead><tr style="text-align: center;"><th style="width: 45px;">编号</th><th style="width: 75px;">⽤户名</th><th style="width: 75px;">密码</th><th style="width: 145px;">真实姓名</th><th style="width: 45px;">性别</th><th style="width: 145px;">邮件</th><th style="width: 145px;">联系电话</th></tr></thead><tbody><tr><td>${currentUser.id }</td><td>${ername}</td><td>${currentUser.password }</td><td>${currentUser.truename }</td><td>${currentUser.sex }</td><td>${currentUser.email }</td><td>${currentUser.phone }</td></tr></tbody></table></div></div></body></html>注:SpringMvc+Spring+Mybatis Maven的整合到此,已经整合完成了,再次过程中主要参考的此篇博⽂的⽂章,在整合的过程当中也踩到⼀些坑,最终还是趟过了,在此就不列举出来,提醒下关于Mybatis的.xml数据库操作的配置⽂件,在此篇博⽂中需要存放在resources⽬录底下(不然项⽬测试的时候报错,也是搜索⽹上的博⽂得知,具体博⽂地址不记得了)。
