前言

.
  前一段时间有一个新的任务,将2010年的一个使用SSI框架的老项目升级成SpringBoot的新项目,在这新的项目上做增量开发。同时,在上一篇博客中搭建了SSI框架简单demo,所以这一篇博客就是将上一篇SSI框架demo升级成SpringBoot的demo。
  
                              SpringMVC+Ibatis的demo链接地址

一、创建一个新的SpringBoot项目

1.1、 首先声明本次demo是使用IntelliJ IDEA开发工具完成。

1.2、选择左上角File ==>New ==>Project 弹出如下界面。

spring mvc properties转为Javabean springmvc改造成springboot_SpringMVC+Ibatis


1.3、按照上图配置,选择自己的SDK,点击Next,弹出如下界面。

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_02


1.4、填写Group和Artifact等信息,直接Next,弹出如下界面。

spring mvc properties转为Javabean springmvc改造成springboot_新建项目_03


1.5、因为这里要集成mybatis所以先选中了mybatis相关依赖和web工程的依赖,省的项目建成还得一点一点填写pom.xml文件的依赖,当然在这里你也可以什么也不选择,直接去pom.xml文件添加项目的jar包依赖。

  之后单击Next会弹出选择项目存储路径的界面,可以使用默认的即可,直接单击Finish即可,此时一个项目就创建完成了,目录结构如下。

spring mvc properties转为Javabean springmvc改造成springboot_SpringMVC+Ibatis_04


1.6、本次demo中配置文件使用的yml配置文件,所以将application.properties修成成application.yml,并新建application-dev.yml文件,如下图所示。

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_05


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、此时项目就已经配置完成了,可以试着启动一下,虽然没有业务逻辑。启动步骤如下

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_06


1.9、运行成功后控制台显示如下日志

spring mvc properties转为Javabean springmvc改造成springboot_SpringBoot_07

二、复制业务代码

2.1、上一篇SSI的demo的连接地址:
                    
                            ’SpringMVC+Ibatis的demo链接地址

2.2、将SSI(springMVC+Ibatis)项目中代码业务复制到springboot新项目中,如下图。

spring mvc properties转为Javabean springmvc改造成springboot_Ant下载和安装_08


2.3、因为Springboot项目集成的是mybatis框架,所以就可以删掉BaseMapper、dao层的实现类,最终目录如下。

spring mvc properties转为Javabean springmvc改造成springboot_Ant下载和安装_09


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的版本信息了,就代表安装成功了,如下图。

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_10

2.8、此时就就可以进行自动转换xml文件了,具体如下。

2.8.1、打开ibatistomybatis项目目录,目录下有一个source文件夹,进入到source文件夹,将ibatis的xml文件放入到此文件夹,如下图

spring mvc properties转为Javabean springmvc改造成springboot_SpringBoot_11


2.8.2、回到ibatisToMyabtis项目的根目录下,我这里是ibatis2mybatis-maseter文件夹,在此目录下打开命令窗口(shift+鼠标右键,选择 在此处打开命令窗口),或者随便打开一个命令窗口,自己一点一点进入ibatisToMybatis项目的根目录下,如下图所示。

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_12


2.8.3、在cmd中输入ant +回车,之后打印出如下日志代表转换完成。

spring mvc properties转为Javabean springmvc改造成springboot_SpringMVC+Ibatis_13


2.8.4、此时就可以去ibatisToMybatis项目的根目录下destination文件夹下,找到已经转换好的mybatis的xml文件了,如图。

spring mvc properties转为Javabean springmvc改造成springboot_Ant下载和安装_14

2.8.5、虽然ibatis的xml文件已经转换成mybatis的xml文件了,但并不代表你可以高枕无忧了,你还需要去转换好的myabtis的xml文件去检查一下和修改一些东西才能够跑的起来,如下图。

spring mvc properties转为Javabean springmvc改造成springboot_配置环境变量_15


2.8.6、我这里是修改namespace的值,值为IUserLoginDao接口的路径,和resultType路径,因为项目目录结构发生变化,所以响应resultType也要发生变化。此时就可以启动项目了,启动项目在上面有提及。

三、测试

3.1、还是想上一篇一样,用PostMan测试,结果如下图。

图一:

spring mvc properties转为Javabean springmvc改造成springboot_SpringBoot_16


图二:

spring mvc properties转为Javabean springmvc改造成springboot_SpringBoot_17