您的位置:首页 > 编程语言 > Java开发

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

2018-02-09 00:00 573 查看


本文来自作者 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 文件)[b]1 spring 框架依赖包引入  (推荐用:4.0 以后的版本)[/b]spring-context
spring-beans
spring-jdbc
spring aspects
spring-webmvc[b]2 spring-mybatis 依赖包引入[/b]mybatis
mybatis-spring[b]3 数据库依赖包引入[/b]mysql-connector-java (注意:一般用版本是 5 的)
druid[b]4 redis 依赖包引入 (如果不用 redis 可以不用引入,但是企业常用)[/b]jedis[b]5 web 相关依赖包引入[/b]jstl
servlet-api
jsp-api
Jackson-databind
[b]6 其他日志和公共包依赖引入[/b]slf4j-log4j12
junit
commons-langs
commons-io

第二部分:实战一步一步环境搭建

[b]2.1 新建项目工程[/b]打开我们的 Eclipse 或者 MyEclipse 或者 Idea,本文以企业实际的 MyEclipse 为例,其他的工具同理。来根据我的节奏来,打开我们的 IDE 工具,如下图。注意:workspace 建议不要在中文或者带有空格的目录下



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

[b]2.3 选择自己的 JDK 版本[/b]2.3.1 设置 jdk



2.3.2 配置 jdk















[b]2.4 创建 package[/b]



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

[b]2.5 复制 jar 放入 lib 文件夹[/b]涉及的 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 文件可以联系作者提供,也可以上网自己搜索下载

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

新建如图所示的配置文件,哪怕文件里面是空的内容: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%n2.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  成功展示,查看无其他报错信息

[b]2.8 通过 java 和 jsp 的代码去测试效果(在 maven 的时候我们采用 Junit4 测试,此处用测试给您展示一下效果)[/b]2.8.1 创建数据库

2.8.2 实体类 Girls .javapackage 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();
   }
}扫描下方二维码,阅读完整原文

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐