SpringMVC 4 + MyBatis 3 + Spring 4 快速搭建企业项目教程


本文来自作者 Array  GitChat 上分享 「SpringMVC 4 + MyBatis 3 + Spring 4 快速搭建企业项目完整图文教程」,阅读原文查看交流实录。

文末高能

编辑 | 哈比

本文结构

SSM 最流行的框架(任意掌握一种即可):

  • 第一种:jar 版本的搭建。(推荐)

  • 第二种:单机 maven 版本的搭建。(了解)

  • 第三种:分布式 Maven 版本的搭建。(推荐)

第一种  :jar 方式的搭建 SSM 系统

第一部分:确认架构技术 + 架构思想

架构技术:SpringMVC4 + Spring 4+ MyBatis3+MVC

架构思想:MVC 分层

MVC 解释:MVC 的全名是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写,是一种软件设计典范。

它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间,代码复用率高。

整体项目结构展示(在搭建前,我们的期望图)

整体 lib 结构展示

SSM 的整合常用 jar 包,各自的官网免费提供(下面列出核心包的 jar 文件)

1 spring 框架依赖包引入  (推荐用:4.0 以后的版本)

spring-context
spring-beans
spring-jdbc
spring aspects
spring-webmvc

2 spring-mybatis 依赖包引入

mybatis
mybatis-spring

3 数据库依赖包引入

mysql-connector-java (注意:一般用版本是 5 的)
druid

4 redis 依赖包引入 (如果不用 redis 可以不用引入,但是企业常用)

jedis

5 web 相关依赖包引入
  • jstl

  • servlet-api

  • jsp-api

  • Jackson-databind

6 其他日志和公共包依赖引入
  • slf4j-log4j12

  • junit

  • commons-langs

  • commons-io

第二部分:实战一步一步环境搭建
2.1 新建项目工程

打开我们的 Eclipse 或者 MyEclipse 或者 Idea,本文以企业实际的 MyEclipse 为例,其他的工具同理。来根据我的节奏来,打开我们的 IDE 工具,如下图。

注意:workspace 建议不要在中文或者带有空格的目录下

2.2 改变字符集 utf-8,从源头断绝项目中文乱码问题

2.3 选择自己的 JDK 版本

2.3.1 设置 jdk

2.3.2 配置 jdk

2.4 创建 package

其他的类似,最后的结果如下图,按照 MVC 的各层,建立 package

2.5 复制 jar 放入 lib 文件夹

涉及的 jar 文件

拓展:SSM 的各自 jar 剖析

2.5.1  spring 框架依赖包引入  (推荐用:4.0 以后的版本)

  • spring-context

  • spring-beans

  • spring-jdbc

  • spring aspects

  • spring-webmvc

2.5 .2  spring-mybatis 依赖包引入

  • mybatis

  • mybatis-spring

2.5.3  数据库依赖包引入

  • mysql-connector-java (注意:一般用版本是 5 的)

  • druid

2.5.4  redis 依赖包引入

  • jedis

2.5.5  web 相关依赖包引入

  • jstl

  • servlet-api

  • jsp-api

  • Jackson-databind

2.5.6  其他日志和公共包依赖引入

  • slf4j-log4j12

  • junit

  • commons-langs

  • commons-io

本项目最终的 lib 预览如下:(每个人的项目业务不同,lib 下面的 jar 存在不同,本文仅供参考使用,切勿生搬硬套,本文旨在让大家学会思想和方法。)

2.6 复制 js、jquery 到新建的 js 文件

涉及的 js 文件可以联系作者提供,也可以上网自己搜索下载

2.7 新建 src 下面的 config ,这里面是存放一些配置 xml 文件,方便管理

新建如图所示的配置文件,哪怕文件里面是空的内容:

log4j.properties   // 日志配置文件 mybatis-config.xml   //mybatis 的配置文件 spring-array.xml   // spring 一些 aop 和 Ioc 等的相关配置,后面给大家说明 spring-mvc.xml   //springmvc 的注解等后面给大家说明

请大家按照上面的文件命名,创建空的文件。

2.7.1 在 config 中新建和配置 mybatis 和分页插件:mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>     <settings>         <setting name="logImpl" value="STDOUT_LOGGING"/>     </settings> <!-- 提醒:配置分页插件,如果不涉及分页,下面的可以不用写 --> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 配置数据库方言,选定项目所用的数据库,本文以 mysql 为例 --> <property name="dialect" value="mysql"/> </plugin> </plugins> </configuration>

2.7.2 在 config 中新建 spring-array.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:p="http://www.springframework.org/schema/p" 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-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- 提醒:该文章和 CSDN 的视频完全一致,请按照下面的顺序进行配置;如果还不了解,可以查看 https://edu.csdn.net/course/detail/4468 --> <!-- 1. 配置数据源: --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>             <property name="url" value="jdbc:mysql://localhost:3306/array"></property> <property name="username" value="root"></property> <property name="password" value="1111"></property> </bean> <!-- 2. 整合 mybatis 配置文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 2.1 关联数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 2.2 扫描 mybatis 的在 mapper 包中的 xml 和扫描 mybatis 的配置文件--> <property name="mapperLocations" value="classpath:com/array/mapper/*.xml"></property> <property name="configLocation" value="classpath:config/mybatis-config.xml"></property> </bean> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com/array/dao"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- 3. 事务管理管理器 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 4. 声明式事务  引用上面定义的事务管理器--> <tx:annotation-driven transaction-manager="txManager"/> <!-- 5. 加载日志文件等配置文件 --> <bean id="" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:config/log4j.properties</value> </list> </property> </bean> </beans>

2.7.3 在 配置 Spring 配置文件: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-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 1. 使用注解,扫描项目中的包 --> <context:component-scan base-package="com.array"></context:component-scan> <!-- 2. 开启注解 --> <mvc:annotation-driven/> <!-- 3. 配置例外:不是让所有的代码都走 springmvc 的过滤器 --> <!-- 配置静态资源,不被 DispatcherServlet 处理 --> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <!-- 4. 定义跳转文件的前缀和后缀,视图 view 的配置 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>

2.7.4 在 config 中新建和 配置日志配置文件:log4j.properties(可选)

log4j.rootLogger=DEBUG,CONSOLE,FILEOUT log4j.addivity.org.apache=true # CONSOLE  提醒:该配置输出到控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.Threshold=ALL log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n #    提醒:该配置输出到文件 # FILEOUT \u6253\u5370\u5230 <span style="font-family: Arial, Helvetica, sans-serif;">D\:\\report.log</span> log4j.appender.FILEOUT=org.apache.log4j.RollingFileAppender log4j.appender.FILEOUT.File=D\:\\report.log log4j.appender.FILEOUT.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.MaxFileSize=100000KB log4j.appender.FILEOUT.Append=true #log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d \u2013 %c -%-4r [%t] %-5p %c %x \u2013 %m%n log4j.appender.FILEOUT.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH\:mm\:ss} \:%m%n

2.7.5 SSM 整合核心 Web.xml 的详细配置

web.xml 的位置如下:

请在下图位置更改 web.xml 的内容,更改内容见图

springmvc4 和 spring4 容器的对象加载核心配置详解

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"    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_2_5.xsd"> <!-- 1. 加载 Spring 容器  例如配置文件 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 2. 加载 Spring 容器所有配置文件的路径 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-*.xml</param-value> </context-param> <!-- 3. 配置 Springmvc 的核心组件 --> <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:config/spring-mvc.xml</param-value> </init-param> <!-- 4. 加载次数的配置 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 5. 建立映射关系 -->    <servlet-mapping>        <servlet-name>springMVC</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping> <!-- 6. 内存保护配置 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list> </web-app>

2.7.6  整合完毕,环境测试效果如下

2.7.7  成功展示,查看无其他报错信息

2.8 通过 java 和 jsp 的代码去测试效果(在 maven 的时候我们采用 Junit4 测试,此处用测试给您展示一下效果)

2.8.1 创建数据库

2.8.2 实体类 Girls .java

package com.array.model; public class Girls {    private Integer id;    private String sname;    private String cometime;    private Integer age;    private Integer maxscore;    private String minscore;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname == null ? null : sname.trim();    }    public String getCometime() {        return cometime;    }    public void setCometime(String cometime) {        this.cometime = cometime == null ? null : cometime.trim();    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public Integer getMaxscore() {        return maxscore;    }    public void setMaxscore(Integer maxscore) {        this.maxscore = maxscore;    }    public String getMinscore() {        return minscore;    }    public void setMinscore(String minscore) {        this.minscore = minscore == null ? null : minscore.trim();    } }

扫描下方二维码,阅读完整原文


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值