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;
}
-
调用配置文件的顺序
file:./config/
:首先在Spring Boot 当前工作目录下的config
文件夹中查找。
注意:如果没有找到,会继续找application.yml,如果这两个都没有找到,才会进入以下位置查找,以此类推。file:./
:如果在当前工作目录下config
目录中找不到时,再从当前工作目录中查找。classpath:/config/
:如果从工作目录中找不到,会从类路径中找,先从类路径的/config/
目 录下寻找配置文件。classpath:/
:如果在/config/
下没有找到,它会在类路径的根目录下查找。
-
配置文件的合并
-
properties
文件的合并
将application-mysql.properties
与application-redis.properties
两个文件合并到application.properties
-
yml
文件的合并
将application-mysql.yml
与application-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)等不同阶段的环境
- 开发环境的配置文件名一般叫做:
application-dev.properties
spring.datasource.username=dev
spring.datasource.password=dev123
spring.datasource.url=jdbc:mysql://localhost:3306/dev
- 测试环境的配置文件名一般叫做:
application-test.properties
spring.datasource.username=test
spring.datasource.password=test123
spring.datasource.url=jdbc:mysql://localhost:3306/test
- 预生产环境的配置文件名一般叫做:
application-preprod.properties
spring.datasource.username=preprod
spring.datasource.password=preprod123
spring.datasource.url=jdbc:mysql://localhost:3306/preprod
- 生产环境的配置文件名一般叫做:
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接口文件引入的两个方法:
- 给每个mapper接口添加注解:
@Mapper
- 在springboot的入口程序添加注解以扫描包的方式添加mapper:
@MapperScan("org.example.mapper")
5. 控制台logo设置
- 关闭logo
spring.main.banner-mode=off
- 使用自定义logo
创建文件src/main/resources/banner.txt
,展示文件中的图标