计算机系统应用教程网站

网站首页 > 技术文章 正文

SpringMVC4+MyBatis3+Spring4快速搭建企业项目教程

btikc 2024-09-25 15:01:43 技术文章 20 ℃ 0 评论

本文结构

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();
 }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表