package com.quxiao.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @program: springboot
* @author: quxiao
* @create: 2023-05-15 11:27
**/
@Component
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Data
@PropertySource(value = "classpath:application.yml")
public class User {
Integer age;
@Value("${name}")
String name;
List<Integer> list;
Map<String, String> map;
}
使用PropertySource:再使用@Value注入,所以${123}
还可以通过加载配置文件式注入:
package com.quxiao.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @program: springboot
* @author: quxiao
* @create: 2023-05-15 11:27
**/
@Component
@ConfigurationProperties(prefix = "user")
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Data
public class User {
Integer MaxAge;
String name;
List<Integer> list;
Map<String, String> map;
}
使用ConfigurationProperties注解,他甚至还可以遵循大小驼峰!
执行顺序是从上往下,这个是使用的 XX.properties文件,
使用yaml、yml就更简单:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/user?UseSSL=false
username: root
password: qx@123456
profiles:
active: t2
---
server:
port: 8081
spring:
config:
activate:
on-profile: t1
---
server:
port: 8082
spring:
config:
activate:
on-profile: t2
使用三个横杠隔离配置,通过指定加载配置文件名切换。