SpringBoot3

ops/2024/12/13 1:22:06/

1. 配置文件

1. 基本使用

  1. 使用
  • 配置文件classpath:application.properties
spring.jdbc.driver=com.mysql.cj.jdbc.Driver
spring.jdbc.url=jdbc:mysql://localhost:3306/batis
spring.jdbc.username=root
spring.jdbc.password=123456
  • 使用配置文件的值:@Value("${key:defaultValue}")
@Service
public class DataSourseTest {@Value("${spring.jdbc.driver}")private String driver;@Value("${spring.jdbc.url}")private String url;@Value("${spring.jdbc.username:root}")private String username;@Value("${spring.jdbc.password:123456}")	// 默认值private String password;
}
  1. 调用配置文件的顺序

    1. file:./config/:首先在Spring Boot 当前工作目录下的 config 文件夹中查找。
      注意:如果没有找到,会继续找application.yml,如果这两个都没有找到,才会进入以下位置查找,以此类推。
    2. file:./:如果在当前工作目录下config目录中找不到时,再从当前工作目录中查找。
    3. classpath:/config/:如果从工作目录中找不到,会从类路径中找,先从类路径的 /config/ 目 录下寻找配置文件。
    4. classpath:/:如果在 /config/ 下没有找到,它会在类路径的根目录下查找。
  2. 配置文件的合并

    1. properties文件的合并
      application-mysql.propertiesapplication-redis.properties两个文件合并到application.properties

    2. yml文件的合并
      application-mysql.ymlapplication-redis.yml两个文件合并到application.yml

# application.properties
spring.config.import=classpath:application-mysql.properties,classpath:application-redis.properties# application.yml
spring:config:import:- classpath:application-mysql.yml- classpath:application-redis.yml

2. 用于多环境切换

常用于区分开发(development)、测试(testing)、预生产(staging)和生产(production)等不同阶段的环境

  1. 开发环境的配置文件名一般叫做:application-dev.properties
spring.datasource.username=dev
spring.datasource.password=dev123
spring.datasource.url=jdbc:mysql://localhost:3306/dev
  1. 测试环境的配置文件名一般叫做:application-test.properties
spring.datasource.username=test
spring.datasource.password=test123
spring.datasource.url=jdbc:mysql://localhost:3306/test
  1. 预生产环境的配置文件名一般叫做:application-preprod.properties
spring.datasource.username=preprod
spring.datasource.password=preprod123
spring.datasource.url=jdbc:mysql://localhost:3306/preprod
  1. 生产环境的配置文件名一般叫做:application-prod.properties
spring.datasource.username=prod
spring.datasource.password=prod123
spring.datasource.url=jdbc:mysql://localhost:3306/prod
  • 第一种方式:在application.properties文件中添加这个配置:spring.profiles.active=prod
  • 第二种方式:在命令行参数上添加:--spring.profiles.active=prod

3. 配置文件属性值绑定到Bean

  • 配置文件:application.properties
mydata.names=[tom,jerry]
mydata.adds-array[0].city=Beijing
mydata.adds-array[0].street=CaoYang
mydata.adds-array[1].city=ShangHai
mydata.adds-array[1].street=PuDong
mydata.adds-list[0].city=GuangZhou
mydata.adds-list[0].street=TianHe
mydata.adds-list[1].city=ShenZhen
mydata.adds-list[1].street=NanShan
mydata.adds-map.add1.city=HangZhou
mydata.adds-map.add1.street=XiHu
mydata.adds-map.add2.city=XiAn
mydata.adds-map.add2.street=ChangAn
  • 配置文件:yml格式
mydata:names:- tom- jerryadds-array:- city: beijingstreet: chaoyang- city: shanghaistreet: pudongadds-list:- city: beijingstreet: chaoyang- city: shanghaistreet: pudongadds-map:add1:city: beijingstreet: chaoyangadd2:city: shanghaistreet: pudong
  • 示例,属性值是复杂类型
// 生命该类为配置类。配置类也会生成bean并纳入ioc管理
@Configuration
//@Component  // 使用Component可以代替Configuration
// 将配置文件绑定到类。prefix:前缀;此前缀的属性对应的类
@ConfigurationProperties(prefix = "mydata")
public class UserConfiguration {private String[] names; // 属性名必须与配置文件中的属性相同private Address[] addsArray;private List<Address> addsList;private Map<String, Address> addsMap;// set方法
}
public class Address {private String city;private String street;// set方法
}

4. 配置文件的值赋值给第三方库中的Bean

  • 配置文件
otherdata.address.city=beijing
otherdata.address.street=chaoyang
@Configuration  
public class OtherClass {// 在注解@Configuration中使用@Bean标注该方法返回值是一个Bean,并纳入IoC管理@Bean@ConfigurationProperties(prefix = "otherdata.address")public Address address() {return new Address();}
}

2. Environment:获取环境配置

  • 环境配置:1. 正在使用的配置文件; 2. 操作系统的环境变量; 3. 操作系统的版本等
@Autowiredprivate Environment environment;@Testvoid getEnvironment(){// 直接使用这个环境对象,来获取环境信息,配置信息等。String[] activeProfiles = environment.getActiveProfiles();for (String activeProfile : activeProfiles) {System.out.println(activeProfile);}// 操作系统信息System.out.println(environment.getProperty("os.name"));	//Windows 11// 操作系统版本信息System.out.println(environment.getProperty("os.version")); // 10.0// 操作系统架构信息System.out.println(environment.getProperty("os.arch"));	// amd64// 获取临时目录System.out.println(environment.getProperty("java.io.tmpdir"));	// C:\Users\10539\AppData\Local\Temp\// 系统变量System.out.println(environment.getProperty("path"));}

3. Aop

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

4. Mybatis配置

1. mapper相关

# application.properties
# mapper.xml文件所在的目录
mybatis.mapper-locations=classpath:mapper/*.xml
# Bean类的别名,可将全限定类名省略为类名,在xml配置文件的resultType中使用
mybatis.type-aliases-package=org.example.learn.bean
# 数据库中下划线的列名与Bean中驼峰写法的映射
mybatis.configuration.map-underscore-to-camel-case=true# application.yml
mybatis:mapper-locations: classpath*:mapper/*.xmltype-aliases-package: org.example.pojoconfiguration:map-underscore-to-camel-case: true

2. 配置文件中配置数据源

# springboot推荐的连接池:HikariDataSource
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/batis
spring.datasource.username=root
spring.datasource.password=123456# application.yml
spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/batisusername: rootpassword: 123456

3. mapper接口文件引入的两个方法:

  1. 给每个mapper接口添加注解:@Mapper
  2. springboot的入口程序添加注解以扫描包的方式添加mapper:@MapperScan("org.example.mapper")

5. 控制台logo设置

  • 关闭logo
spring.main.banner-mode=off
  • 使用自定义logo
    创建文件src/main/resources/banner.txt,展示文件中的图标

http://www.ppmy.cn/ops/141392.html

相关文章

鸿蒙分享(五):axios网络请求+简单封装

代码仓库&#xff1a;share_harmonyos: 鸿蒙分享 鸿蒙api:12 axios开源库地址&#xff1a;OpenHarmony三方库中心仓 1.axios使用 1.安装 ohpm install ohos/axios 2.添加网络权限 common--src--module.json5 添加如下: "requestPermissions": [{"name&quo…

ZED相机应用

下载SDK wget https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/3.6/ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run 安装 ./ZED_SDK_Ubuntu18_cuda11.5_v3.6.5.run skip_python 测试 cd /usr/local/zed/tools ls ZED_Calibration ZED_Depth_Viewer ZED_Diagnostic ZED_E…

C++设计模式(建造者、中介者、备忘录)

一、建造者模式 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 示例&#xff1a; //房子&#xff08;产品类&#xff09; class House { private:int rooms;int windows;string decoration; public:void setRooms(int r) {rooms …

单片机+Qt上位机

目录 一、引言 通信方式 优势 案例 常见问题及解决方法 二、单片机与 Qt 上位机的通信方式 &#xff08;一&#xff09;使用 QT 上位机和 STC 单片机实现串口通信 三、单片机 Qt 上位机的优势 &#xff08;一&#xff09;高效便捷的 USB 通信上位机解决方案 &#xf…

鸿蒙高级开发者认证试题(基础)

目录 一、单选题&#xff08;每题 3 分&#xff0c;共 30 分&#xff09; 二、多选题&#xff08;每题 5 分&#xff0c;共 30 分&#xff09; 以下是一份鸿蒙高级开发者认证试题示例&#xff0c;涵盖了鸿蒙开发相关的多个重要知识点&#xff0c;你可以根据实际情况进行调整和…

数据分析岗位求职攻略 —— 常见面试题目及答案

请简要介绍一下数据分析的过程和方法。 答&#xff1a;数据分析过程通常包括数据采集、数据清理、数据探索、数据建模、和优化模型等步骤。在这个过程中&#xff0c;需要运用统计学、机器学习、数据挖掘、数据可视化等技术方法分析数据的特征&#xff0c;实现数据服务化。 请…

事务的传播机制

事务传播机制的概念&#xff1a; 事务传播机制就是: 多个事务⽅法存在调⽤关系时, 事务是如何在这些⽅法间进⾏传播的。 在我们学习数据库的时候&#xff0c;不存在事务传播机制这个概念&#xff0c;因为数据库是直接执行这个方法而不是有方法之间的互相调用&#xff0c;在我们…

Linux絮絮叨(三) Ubuntu桌面版添加中文拼音输入法

步骤很详细&#xff0c;直接上教程 一. 配置安装简体拼音输入法 #安装相应的平台支持包 sudo apt install ibus-gtk ibus-gtk3# 安装简体拼音输入法 sudo apt install ibus-pinyin安装完成如果下面的步骤找不到对应输入法可以重启一下&#xff0c;一般不需要 二. 添加简体拼音…