重学SpringBoot3-整合SSM

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》
期待您的点赞👍收藏⭐评论✍

Spring Boot 3 整合 SSM(Spring、Spring MVC和MyBatis)进行数据访问,是构建现代 Java Web 应用的常见实践。这种整合利用了 Spring Boot 的自动配置特性,简化了传统 SSM 架构的配置复杂性,同时保留了 SSM 强大的数据访问和业务逻辑处理能力。

Spring Boot整合SSM示例

以下是详细的整合流程:

1. 创建Spring Boot项目

首先,使用 Spring Initializr(https://start.spring.io/)或你喜欢的 IDE 创建一个新的 Spring Boot 项目。在依赖选择部分,至少需要包含以下模块:

  • Spring Web:用于构建 Web 应用和 RESTful 服务。
  • MyBatis Framework:提供 MyBatis 整合支持。
  • Spring Boot DevTools:提供热加载、自动重启等开发时功能。
  • MySQL Driver:这里使用阿里的数据源,或者你使用的其他数据库驱动。
  • Lombok:避免 Java 对象中的重复定义工作。

Spring Initializr创建项目

选择依赖

2. 配置数据源

application.propertiesapplication.yml 文件中配置数据库连接。Spring Boot 会自动读取这些配置来创建和配置数据源。

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/dbtest1?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

确保数据库 URL、用户名和密码等配置正确。

3. 配置MyBatis

Spring Boot 会自动配置 MyBatis 的基本设置,但你可能需要进一步配置映射文件的位置或别名处理规则。可以在 application.properties中进行配置:

# mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml

这里,mybatis.mapper-locations 指定了 MyBatis 的映射文件位置。

配置文件

4. 实现数据访问对象(DAO)

使用 MyBatis 时,你需要创建 Mapper 接口,用于定义数据库操作的方法。例如:

@Mapper
public interface UserMapper {
    User selectUserById(Long id);
}

然后,创建对应的 XML 映射文件 UserMapper.xml,定义 SQL 语句和映射规则:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.coderjia.ssm.dao.UserMapper">
    <select id="selectUserById" resultType="com.coderjia.ssm.bean.User">
        SELECT *
        FROM users
        WHERE id = #{id}
    </select>
</mapper>

5. 编写服务层和控制器

服务层负责业务逻辑,它会使用前面定义的 Mapper 接口。然后,创建一个控制器来处理 HTTP 请求,调用服务层的方法。

// service接口
public interface IUserService {

    public User getUserById(Long id);
}

// service实现类
@Service
public class UserServiceImpl implements IUserService {

    @Resource
    private UserMapper userMapper;

    @Override
    public User getUserById(Long id) {
        return userMapper.selectUserById(id);
    }
}

@RestController
@RequestMapping("/users")
public class UserController {

    @Resource
    private IUserService userService;

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userService.getUserById(id);
        return ResponseEntity.ok(user);
    }
}

整个项目结构如下:

项目结构

6. 运行和测试

一旦完成上述配置和代码编写,Spring Boot 应用就已经整合了 SSM 进行数据访问。运行 Spring Boot 应用,并测试 API 是否如预期工作,如下测试接口 localhost:8081/users/1 可以获取数据。

测试接口

DataSourceAutoConfiguration类

DataSourceAutoConfiguration 类是 Spring Boot 自动配置机制的一部分,它负责自动配置数据源(DataSource)的设置。这一过程主要基于应用的配置属性( application.properties application.yml 文件中)来完成。DataSourceAutoConfiguration 类使得开发者无需手动配置数据源和数据库连接池,大大简化了Spring Boot 应用中数据访问层(DAO层)的配置工作。

数据源自动配置类

主要功能

DataSourceAutoConfiguration 类的主要功能包括:

  • 自动检测并配置数据源:根据 classpath 中的库和配置文件中的设置,自动选择并配置合适的数据源。例如,如果 classpath 中包含 HikariCP,那么默认会配置为使用 HikariCP 连接池。
  • 配置连接池属性:根据 application.propertiesapplication.yml 文件中的配置,自动设置连接池的各种属性,如最大连接数、最小空闲连接数、连接超时时间等。
  • 支持多种数据库:可以自动配置与多种数据库的连接,包括但不限于 MySQL、PostgreSQL、H2 等。
  • 环境特定配置:支持根据不同的环境(开发、测试、生产)使用不同的数据库配置。

工作原理

当 Spring Boot 应用启动时,DataSourceAutoConfiguration 会被自动执行,前提是 classpath 中存在 javax.sql.DataSource 接口,以及相应的数据库驱动。它会根据应用配置文件中的数据源配置属性(如数据库URL、用户名和密码等)来初始化数据源。此过程涉及以下关键属性:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 连接池的其他配置...

自定义和扩展

虽然 DataSourceAutoConfiguration 提供了大量的默认设置,但 Spring Boot 也允许开发者通过添加自定义配置来覆盖这些默认值,或者完全禁用自动配置,手动定义数据源和数据库连接池。

如果你需要更复杂的数据源配置,如多数据源支持,你可能需要禁用 DataSourceAutoConfiguration,并通过自定义配置类来手动配置数据源。

MyBatisAutoConfiguration类

MyBatisAutoConfiguration 是 Spring Boot 对 MyBatis 框架支持的一部分,负责自动配置 MyBatis 和 Spring Boot 应用的集成。这个自动配置类简化了使用 MyBatis 进行数据访问时的配置工作,使得开发者可以更加轻松地将 MyBatis 集成到 Spring Boot 应用中。

MyBatis自动配置类

主要功能

MyBatisAutoConfiguration 类的主要功能包括:

  • 自动配置 SqlSessionFactory:它创建并配置 SqlSessionFactory 实例,这是 MyBatis 中用于创建 SqlSession 的工厂类。通过 SqlSessionFactory,可以执行 SQL 命令、获取映射器(Mapper)等。
  • 自动配置 SqlSessionTemplate:它配置了 SqlSessionTemplate,这是 SqlSession 的线程安全的实现,用于在 Spring 管理的事务中执行持久化操作。
  • 自动扫描 Mapper 接口:根据配置自动扫描并注册 Mapper 接口,这样就可以在 Spring 应用中自动注入 Mapper 并使用。
  • 集成事务管理:自动配置事务管理器,支持 MyBatis 的事务与 Spring 的事务管理进行集成。

工作原理

在 Spring Boot 应用启动过程中,如果检测到 mybatis-spring-boot-autoconfigure 依赖在项目的 classpath 中,MyBatisAutoConfiguration 就会被自动启用。它会根据应用的配置文件(如 application.propertiesapplication.yml)和 classpath 中的资源,如 MyBatis 的配置文件和 Mapper XML 文件,自动配置 MyBatis 的相关组件。

为了利用 MyBatisAutoConfiguration 提供的自动配置,需要在 Spring Boot 应用中添加 MyBatis Spring Boot Starter 依赖:

<!-- Maven -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>版本号</version>
</dependency>

或者,对于 Gradle 项目:

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:版本号'

在配置文件中,可以定义 MyBatis 特定的配置属性,例如:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

# MyBatis配置
mybatis.type-aliases-package=com.example.myapp.model
mybatis.mapper-locations=classpath:mapper/*.xml

自定义和扩展

虽然 MyBatisAutoConfiguration 提供了丰富的自动配置功能,但 Spring Boot 也允许开发者通过自定义配置类覆盖这些默认配置,或者提供额外的配置。例如,可以定义自己的 SqlSessionFactoryBeanDataSource Bean 来覆盖自动配置提供的 Bean,或者添加额外的 MyBatis 插件。

总结

Spring Boot 3 整合 SSM 框架进行数据访问的过程,通过减少配置和增加自动化,大大简化了开发流程。这种整合方式使得开发者可以更专注于业务逻辑的实现,同时享受 Spring Boot 和 SSM 各自的优势。

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
当前可以使用Spring Boot整合SSM框架。首先,你可以将Spring和MyBatis整合Spring Boot中。Spring Boot会自动为你处理Spring和MyBatis的配置,你只需要保留一些必要的配置即可。具体来说,你可以使用Spring Boot的starter依赖来引入Spring和MyBatis的相关模块。这样,你就可以使用Spring的依赖注入和事务管理功能,以及MyBatis的ORM功能。 接下来,你可以使用Spring Boot整合Spring MVC。Spring Boot提供了一个自动配置的MVC模块,你可以直接使用它来处理HTTP请求和响应。你只需要在Controller类上添加@Controller注解,并在方法上添加@RequestMapping注解来定义请求映射。此外,你还可以使用Spring Boot的starter依赖来引入其他需要的模块,比如JSON序列化和数据校验等。 最后,你可以使用Spring Boot整合JUnit进行测试。你可以使用@SpringBootTest注解标记测试类,并指定主程序引导类。通过自动装配业务方法,你可以在测试方法中直接调用你的业务逻辑。这样,你就可以方便地进行单元测试和集成测试了。 综上所述,你可以使用Spring Boot整合SSM框架,实现快速开发和测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于SpringBootSSM整合](https://blog.csdn.net/ware00/article/details/125689235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoderJia_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值