当前位置: 首页 > news >正文

springboot3 configuration

1 多数据库配置

github: https://github.com/baomidou/dynamic-datasource
使用@DS()注解来切换数据库
详情介绍:https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611

注意:@DS 可以注解在方法上或上,同时存在就近原则 方法上注解 优先于 类上注解。

1.1 pom配置

<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot3-starter</artifactId><version>${version}</version>
</dependency>

1.2 .propertis or .yml 配置

spring:datasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:master:url: jdbc:mysql://xx.xx.xx.xx:3306/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置slave_1:url: jdbc:mysql://xx.xx.xx.xx:3307/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driverslave_2:url: ENC(xxxxx) # 内置加密,使用请查看详细文档username: ENC(xxxxx)password: ENC(xxxxx)driver-class-name: com.mysql.jdbc.Driver#......省略#以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2

1.3 代码中的额外配置

需要在启动类和Server类增加注解。

2 多模块配置

springboot多模块开发。其中pom文件和properties文件有如下关系:
(1)pom: 父子模块存在继承关系,子模块默认继承父模块所有依赖版本插件配置全局变量,除非子模块指定版本。(就和C++中父子类的继承一样。可以重载父类方法一样。子模块也可以重新指定依赖版本。)
(2)properties

2.1 pom

‌(1)基础继承‌
子模块通过标签声明父模块后,默认继承父POM中的:
< properties>定义的全局变量
< dependencyManagement>管理的依赖版本
< pluginManagement>定义的插件配置
‌(2)非自动继承内容‌
父模块中直接声明的< dependencies>和< build>配置‌不会自动继承‌到子模块,需子模块显式引用

(3)依赖版本覆盖‌
子模块声明相同依赖时:
若子模块指定版本号,则优先使用子模块版本17
未指定版本时继承父模块< dependencyManagement>中的版本25
‌(4)属性覆盖‌
子模块可重新定义< properties>中的值覆盖父模块配置

2.2 properties

(1)配置隔离性‌
Spring Boot默认不会自动加载父模块的application.yml或application.properties文件,每个子模块的配置文件是独立生效的。

‌(2)优先级规则‌
子模块的resources目录下的配置文件优先级高于父模块,且同目录下.properties会覆盖.yml的配置

(3)父模块通过指定名称引入子模块的配置:
多个子模块定义application.properties时,打包后仅主模块配置生效
将数据库连接等公共配置放在主模块的application.properties中,其他子模块的配置文件需要命名为application-{profile}.properties。在主模块中通过如下配置激活子模块的配置:(注意:profile可以是任意名称)

# 激活dev环境
spring.profiles.active=profile

2.3 启动类

无论有多少个模块,启动类只能有一个。
如果其他子模块没有正常启动,需要添加注解:

@springBootApplication(sanBasePackages={"com.demo")

注意,这里"com.demo"是子模块的包路径。
如果子模块的包路径和启动模块的包路径完全一致,则不添加该注解也可正常启动。

3 Mybatisplus配置

Mybatisplus兼容Mybatis,因此,依赖引入是仅引用Mybatisplus即可。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.12</version>
</dependency>

3.1 注解的语句用法(参数传递)

可以直接使用@Select、@Results等注解,在方法上,而无需配置xml文件。
这其中,需要注意参数的传递。
(1)#{param} 占位符
这类会视为变量,预编译阶段会认为是 ? 。

(2)${param} 字符串
该类参数在预编译阶段会被字节按照字符串替换。

mybatis注解的配置
https://blog.csdn.net/qq_45297578/article/details/121677970

3.2 sql查询结果与自定义类的映射

通常来说,我们会准备一个类来接受sql查询返回的结果。
有3种方法可以实现数据映射:
(0)类属性名与sql表的列名自动匹配(完全一致)
(1)在类定义中加上@Table的注解指定
(2)在mapper方法上加上@Results注解

@Results({@Result(property = "userName", column = "user_name"),@Result(property = "homeTown", column = "home_town")
})
@Select("SELECT * FROM user")
List<User> selectUsers();

这里,property指定的是类User的属性,column指定的是sql查询语句返回结果的列名。

相关文章:

  • 软件质量保证与测试实验
  • 【计算机CPU架构】x86架构简介
  • <collection> 标签:用于定义 一对多关系 的映射规则
  • 【Python 集合 Set 】全面学习指南
  • 可转债双低轮动策略
  • c/c++怎样编写可变参数函数.
  • 第二章网络io
  • Spring MVC 的的核心原理与实践指南
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用图像类)
  • Python入门手册:条件判断
  • 【GitHub Pages】部署指南
  • idea 快捷键大全
  • SQL进阶之旅 Day 2:基础查询优化技巧
  • 李沐《动手学深度学习》| 4.4 模型的选择、过拟合和欠拟合.md
  • 以太坊的基本理解
  • 强化学习的前世今生(二)
  • 数量优势:使用Bagging和Boosting的集成模型
  • 计算机网络-WebSocket/DNS/Cookie/Session/Token/Jwt/Nginx
  • 使用大模型预测亚急性脊髓联合变性(SCD)的技术方案大纲
  • SpringBoot-配置文件
  • 手机移动网站模板/百度保障客服电话
  • 自媒体采集网站建设/怎么去推广自己的网站
  • 有没有个人做试卷网站的/佛山市人民政府门户网站
  • 爱生活和辽宁app下载/单页关键词优化费用
  • 做电影网站需要注意什么东西/搜索引擎营销的优势
  • 连云港专业网站制作公司/中国体育新闻