引言
如下是之前写的一个SSM项目(纯注解版),现在我们要把它改造成一个SpringBoot项目,以体现SpringBoot的方便。主要需要关注的文件已经用红框标出。
1.config文件夹里面的是Spring,SpringMvc,Mybatis的配置文件。
2.mapper文件夹里面是实体类的mapper接口,对应地,resource下的mapper文件夹里面是对应的mapper映射文件。
3.db.properties文件里面指定了有关数据库的相关配置
4.webapp文件夹里面存放我们项目的网页资源(html,css等)
5.test文件夹下的TestUser是用测试用的(用junit)
***************************************************************************************************
用SpringBoot复现SSM项目
1.首先先创建一个SpringBoot项目
选择mybatis需要的起始依赖
选择Web(因为是web项目)
创建项目成功后,在Setting中把编码改成utf-8,不然yml文件里面写中文会乱码
2.导入需要的依赖
SpringBoot已经把Spring SpringMvc相关的事情都帮我们做好了,web相关,mybatis的起始依赖我们创项目的时候已经导入 ,我们只需要导入自己项目中额外添加的依赖
<!-- TODO 加入必要的依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- token-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 基于java,需要引入这个-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
<!-- druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
实体类我用了@Data,所以要加Lombok。
会话跟踪用来jwt,导入jwt的依赖。
用了druid数据源,当然不配也可以,不配的话会使用springboot内置的数据源。
3.把SSM项目需要的文件夹拷贝过来
要拷过来的文件夹已经用红框标出
4.SpringBoot整合SSM项目
4.0 SpringBoot整合Spring ,SpringMvc
不用做,创建项目时候已经整合好了,下面解释。
4.1SpringBoot整合Mybatis
首先我们先把config文件夹删掉。
为什么我们敢把放配置的文件夹给删了呢?让我们打开pom文件
<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.2.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
这些依赖已经帮我们完成了Spring,SpringMvc,Mybatis的配置了,只能说对SpringBoot真是相见恨晚!
此外,SpringBoot整合Mybatis,我们唯一需要做的,只有如下两件事
4.1.1配置数据库 (前面的db.properties文件所做的事)
当然我们首先把db.properties文件删掉,感谢它前面所作出的贡献。然后打开resource文件夹下的application.yml文件(先把后缀改成yml),配置端口和数据库
这里指定了druid数据源,不配的话也没有关系,springboot有内置的默认数据源供你使用。
注意:
1.Mysql版本大于8.0时,更推荐使用 com.mysql.cj.jdbc.Driver
SpringBoot 版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区。 jdbc:mysql://localhost:3306/db_name?serverTimezone=UTC ,或在MySQL数据库端配置时区解决此问题
4.1.2 在mapper接口使用@Mapper注解
把mapper文件夹里面的所有mapper接口上面的@Repository注解换成@Mapper注解,@Mapper可以让SpringBoot扫描到它,并生成它的动态代理对象。
4.2SpringBoot整合Junit
只需要在测试类上打上@SpringBootTest,测试方法上面打上@Test即可,其他什么都不用干!
@SpringBootTest
public class TestUser {
@Autowired
private UserMapper userMapper;
@Test
void test01(){
List<User> users = userMapper.selectAll();
System.out.println(users);
}
}
前面已经整合好了ssm,测试一下test01
4.3网页资源处理
由于此项目前端是用Vue3实现的,因此这里并没有静态资源。
如果项目有静态网页资源的话,放在static文件夹里面就好了。
现在我们启动springboot项目,看一下能否访问index.html
至此,我们已经成功用SpringBoot复现了一个SSM项目