前言
.
前一段时间有一个新的任务,将2010年的一个使用SSI框架的老项目升级成SpringBoot的新项目,在这新的项目上做增量开发。同时,在上一篇博客中搭建了SSI框架简单demo,所以这一篇博客就是将上一篇SSI框架demo升级成SpringBoot的demo。
SpringMVC+Ibatis的demo链接地址
一、创建一个新的SpringBoot项目
1.1、 首先声明本次demo是使用IntelliJ IDEA开发工具完成。
1.2、选择左上角File ==>New ==>Project 弹出如下界面。
1.3、按照上图配置,选择自己的SDK,点击Next,弹出如下界面。
1.4、填写Group和Artifact等信息,直接Next,弹出如下界面。
1.5、因为这里要集成mybatis所以先选中了mybatis相关依赖和web工程的依赖,省的项目建成还得一点一点填写pom.xml文件的依赖,当然在这里你也可以什么也不选择,直接去pom.xml文件添加项目的jar包依赖。
之后单击Next会弹出选择项目存储路径的界面,可以使用默认的即可,直接单击Finish即可,此时一个项目就创建完成了,目录结构如下。
1.6、本次demo中配置文件使用的yml配置文件,所以将application.properties修成成application.yml,并新建application-dev.yml文件,如下图所示。
1.7、yml配置文件和pom依赖内容。
application.yml文件:
spring:
profiles:
#此处是在运行时激活application-dev.yml配置文件,当然此处也可选择激活其它的yml文件。
active: dev
application-dev.yml文件:
#数据库连接配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
name: server
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/ssi?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&tinyInt1isBit=false&serverTimezone=UTC
username: root
password: root
maximumPoolSize: 20
maxIdle: 30
minIdle: 5
maxWait: 50
maxActive: 20
initalSize: 5
filters: stat
validationQuery: SELECT 1
testWhileIdle: true
timeBetweenEvictionRunsMillis: 120000
#内置tomcat启动端口号修改
server:
port: 9000
# mybatis扫描xml文件地址配置。
mybatis:
mapper-locations: classpath:mapper/*.xml
pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ebiz.demo</groupId>
<artifactId>ssm-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ssm-project</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
1.8、此时项目就已经配置完成了,可以试着启动一下,虽然没有业务逻辑。启动步骤如下
1.9、运行成功后控制台显示如下日志
二、复制业务代码
2.1、上一篇SSI的demo的连接地址:
’SpringMVC+Ibatis的demo链接地址
2.2、将SSI(springMVC+Ibatis)项目中代码业务复制到springboot新项目中,如下图。
2.3、因为Springboot项目集成的是mybatis框架,所以就可以删掉BaseMapper、dao层的实现类,最终目录如下。
2.4、同时在springboot启动类加上@MapperScan注解,让spring扫描的dao层接口,自动生成一个实现类,本项目中注解内容如下。
package com.ebiz.demo.ssmproject;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.ebiz.demo.ssmproject.dao")
public class SsmProjectApplication {
public static void main(String[] args) {
SpringApplication.run(SsmProjectApplication.class, args);
}
}
2.5、由于ibatis和mybatis的xml文件差别还是蛮大的,如果每一处不同都要手动改变的话,那么一旦项目业务复杂,xml文件较多的话,改起来人是会疯的,所以这里就采用了网上开源的项目自动将ibatis的xml文件转换成mybatis的xml文件格式。
2.6、ibatis的xml文件转换成mybatis的xml文件项目链接如下:
ibatistomybatis的git地址
2.7、项目下载成功之后,直接解压到任意目录下即可,我这里是放到:
D:\ibatisToMybatis\ibatis2mybatis-master
之后还要下载Ant ,选择一个适合自己环境的版本下载,下载完之后直接解压到任意目录即可,接下来就是配置环境变量。
Apache Ant 下载地址
配置环境变量步骤:
2.7.1、我的电脑 ==> 属性 ==>高级系统设置 ==>高级 ==>选择环境变量
2.7.2、新建系统变量 ,变量名: ANT_HOME 变量值:E:/apache-ant-1.10.6(因为我把ant解压到E:/apache-ant-1.10.6目录下,所以值得内容请安ant解压路径填写)
2.7.3、找到path的系统变量,后面追加 %ANT_HOME%\bin;,若前面没有 ‘;’,请自行添加
2.7.4、之后打开cmd 输入 ant -version 就会显示出ant的版本信息了,就代表安装成功了,如下图。
2.8、此时就就可以进行自动转换xml文件了,具体如下。
2.8.1、打开ibatistomybatis项目目录,目录下有一个source文件夹,进入到source文件夹,将ibatis的xml文件放入到此文件夹,如下图
2.8.2、回到ibatisToMyabtis项目的根目录下,我这里是ibatis2mybatis-maseter文件夹,在此目录下打开命令窗口(shift+鼠标右键,选择 在此处打开命令窗口),或者随便打开一个命令窗口,自己一点一点进入ibatisToMybatis项目的根目录下,如下图所示。
2.8.3、在cmd中输入ant +回车,之后打印出如下日志代表转换完成。
2.8.4、此时就可以去ibatisToMybatis项目的根目录下destination文件夹下,找到已经转换好的mybatis的xml文件了,如图。
2.8.5、虽然ibatis的xml文件已经转换成mybatis的xml文件了,但并不代表你可以高枕无忧了,你还需要去转换好的myabtis的xml文件去检查一下和修改一些东西才能够跑的起来,如下图。
2.8.6、我这里是修改namespace的值,值为IUserLoginDao接口的路径,和resultType路径,因为项目目录结构发生变化,所以响应resultType也要发生变化。此时就可以启动项目了,启动项目在上面有提及。
三、测试
3.1、还是想上一篇一样,用PostMan测试,结果如下图。
图一:
图二: