Java --- springboot3整合SSM

这篇具有很好参考价值的文章主要介绍了Java --- springboot3整合SSM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、整合SSM场景

二、自动配置原理 


一、整合SSM场景

 引入pom依赖

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>

数据库表:

CREATE TABLE `t_user`
(
    `id`         BIGINT(20)   NOT NULL AUTO_INCREMENT COMMENT '编号',
    `login_name` VARCHAR(200) NULL DEFAULT NULL COMMENT '用户名称' COLLATE 'utf8_general_ci',
    `nick_name`  VARCHAR(200) NULL DEFAULT NULL COMMENT '用户昵称' COLLATE 'utf8_general_ci',
    `passwd`     VARCHAR(200) NULL DEFAULT NULL COMMENT '用户密码' COLLATE 'utf8_general_ci',
    PRIMARY KEY (`id`)
);
INSERT INTO t_user(login_name, nick_name, passwd) VALUES ('zhangsan','张三','123456');

配置数据源

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

配置mybatis相关配置

#配置mybatis
mybatis.mapper-locations=classpath:/mapper/*.xml
#开启驼峰命名
mybatis.configuration.map-underscore-to-camel-case=true

实体类:

@Data
public class TUser {
    private Long id;
    private String loginName;
    private String nickName;
    private String passwd;
}

mapper接口:

@Mapper
public interface UserMapper {
    TUser getUserById(@Param("id") Long id);
}

mapper接口映射文件:

<?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.cjc.boot3ssm.mapper.UserMapper">
    <select id="getUserById" resultType="com.cjc.boot3ssm.bean.TUser">
        select * from t_user where id=#{id}
    </select>
</mapper>

service实现类:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public TUser getUserById(Long id) {
        return userMapper.getUserById(id);
    }
}

controller层:

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/getUserById/{id}")
    public TUser getUserById(@PathVariable("id") Long id){
        return userService.getUserById(id);
    }
}

在springboot启动类添加注解:

/**
 * @MapperScan 告诉mybatis扫描那个包下面的所有接口
 */
@MapperScan(basePackages = "com.cjc.boot3ssm.mapper")
@SpringBootApplication
public class Boot3SsmApplication {

    public static void main(String[] args) {
        SpringApplication.run(Boot3SsmApplication.class, args);
    }

}

二、自动配置原理 

jdbc场景的自动配置: 

 1、mybatis-spring-boot-starter导入 spring-boot-starter-jdbc,jdbc是操作数据库的场景。

2、Jdbc场景的几个自动配置:

    ①、org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

           😊、​​​​​​​数据源的自动配置

           😊、所有和数据源有关的配置都绑定在DataSourceProperties

    😊、默认使用 HikariDataSource

    ②、org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration

          😊、给容器中放了JdbcTemplate操作数据库

    ③、org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration

    ④、org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration

          😊、​​​​​​​基于XA二阶提交协议的分布式事务数据源

    ⑤、org.springframework.boot.autoconfigure.jdbc.

DataSourceTransactionManagerAutoConfiguration

          😊、支持事务

3、​​​​​​​具有的底层能力:数据源、JdbcTemplate事务

 MyBatisAutoConfiguration:配置了MyBatis的整合流程

1、mybatis-spring-boot-starter导入 mybatis-spring-boot-autoconfigure(mybatis的自动配置包)

2、默认加载两个自动配置类:

     ①、org.mybatis.spring.boot.autoconfigure.MybatisLanguageDriverAutoConfiguration

     ②、org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration

            😊、​​​​​​​必须在数据源配置好之后才配置

            😊、给容器中SqlSessionFactory组件。创建和数据库的一次会话

            😊、给容器中SqlSessionTemplate组件。操作数据库

3、​​​​​​​MyBatis的所有配置绑定在MybatisProperties

4、每个Mapper接口代理对象是怎么创建放到容器中。详见@MapperScan原理:

       😊、利用@Import(MapperScannerRegistrar.class)批量给容器中注册组件。解析指定的包路径里面的每一个类,为每一个Mapper接口类,创建Bean定义信息,注册到容器中。

如何分析哪个场景导入以后,开启了哪些自动配置类。

找:classpath:/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中配置的所有值,就是要开启的自动配置类,但是每个类可能有条件注解,基于条件注解判断哪个自动配置类生效了。

可以通过springboot配置文件进行配置定位文章来源地址https://www.toymoban.com/news/detail-478721.html

#开启调试模式,详细打印开启了哪些自动配置
debug=true
# Positive(生效的自动配置)  Negative(不生效的自动配置)

到了这里,关于Java --- springboot3整合SSM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合Mybatis-Plus(SpringBoot3)

    依赖pom.xml: pom.xml resource包下的Application.yml: Aollication.yml pojo包下的实体类User: User mapper包下的接口UserMapper: UserMapper 主启动类DemoPlusApplication DemoPlusApplication 测试类DemoApplicationTest: DemoApplicationTest 实现结果 检测数据库连接: C(Create): D(Delete): U(Update) R(Read)

    2024年03月20日
    浏览(54)
  • SpringBoot3 整合 ElasticSearch7 示例

    做仿牛客项目需要使用 es 做搜索,但是老师示例的是 SpringBoot2 + es6 去做的,然而我用的是 Spring3 + es7.17.10,于是踩了很多的坑。 在 es7 中,配置文件和查询所需的实现类都做了很大的改动,我以能成功运行的代码为例,大概说一下怎么配置和使用。 首先 yml 配置文件发生了变

    2024年02月07日
    浏览(52)
  • springboot3.2 整合 mybatis-plus

    springboot3.2 正式发布了 迫不及待地的感受了一下 结果在整个mybatis-plus 的时候遇到了如下报错 主要是由于 mybatis-plus 中 mybatis 的整合包版本不够导致的 排除 mybatis-plus 中自带的 mybatis 整合包,单独引入即可 修改依赖后正常

    2024年02月04日
    浏览(51)
  • 解决SpringBoot3整合Druid的兼容性问题

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 截止目前,Druid对于SpringBoot3的支持不够全面和友好;存在一些兼容性的问题,导致项目报错。 在此,针对该问题提供可行的解决方案;以供各位参考。 请您使用以下依赖: 图示如下: 请勿使用以下依赖: 请

    2024年02月03日
    浏览(48)
  • SpringBoot3整合OpenAPI3(Swagger3)

    swagger2 更新到3后,再使用方法上发生了很大的变化,名称也变为 OpenAPI3 。 官方文档 openapi3 使用十分方便,做到这里后,你可以直接通过以下网址访问 swagger 页面。 1. @OpenAPIDefinition + @Info 用于定义整个 API 的信息,通常放在主应用类上。可以包括 API 的标题、描述、版本等信

    2024年01月22日
    浏览(61)
  • SpringBoot3整合SpringSecurity,实现自定义接口权限过滤

    接口权限过滤是指对于某些接口或功能,系统通过设定一定的权限规则,只允许经过身份认证且拥有相应权限的用户或应用程序进行访问和操作 。这种技术可以有效地保护系统资源和数据安全,防止未授权的用户或程序进行恶意操作或非法访问。通常情况下,接口权限过滤需

    2024年02月08日
    浏览(52)
  • SpringBoot3整合Druid数据源的解决方案

    druid-spring-boot-3-starter目前最新版本是1.2.20,虽然适配了SpringBoot3,但缺少自动装配的配置文件,会导致加载时报加载驱动异常。 需要手动在resources目录下创建 META-INF/spring/ 目录,并且在 META-INF/spring/ 创建 org.springframework.boot.autoconfigure.AutoConfiguration.imports , 文件中添加如下内容

    2024年03月09日
    浏览(106)
  • Springboot3.0整合swagger,废弃Springfox改用Springdoc

    Automated JSON API documentation for API\\\'s built with Spring 官网地址:springfox.io springdoc-openapi java library helps to automate the generation of API documentation using spring boot projects. 官网地址:https://springdoc.org/v2/ 注意 :使用的是V2版本,这个版本支持springboot3.0 之前springboot3.0之前我用的都是Springfox来集

    2023年04月09日
    浏览(43)
  • SpringBoot3.0 整合 ElasticSearch8.5.0 及使用

    这两个版本都是目前较新的版本,本文选用的依赖是 spring-boot-starter-data-elasticsearch:3.0 ,这个新版本也是改用了es的 elasticsearch-java API,全面推荐使用Lambda语法;另外SpringData本身推出了 Repository 功能(有些类似Mybatis-Plus)的功能,也支持注解简化开发。 Docker 快速部署 单机 ela

    2024年02月11日
    浏览(65)
  • SpringBoot3.0整合RocketMQ时出现未能加载bean文件

    问题 APPLICATION FAILED TO START Description: Field rocketMQTemplate in com.spt.message.service.MqProducerService required a bean of type ‘org.apache.rocketmq.spring.core.RocketMQTemplate’ that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包