在 Spring Boot 中,可以使用 @Value 注解来引用 application.properties 或 application.yml 配置文件中的属性,也可以使用 Environment 对象访问配置文件中的属性。如果 pom.xml 文件中定义了 ,并且在 中定义了一些属性,那么这些属性将会在编译时被解析,并替换成实际的值。因此,可以在 application.properties 或 application.yml 文件中使用这些属性。
例如,如果在 pom.xml 文件中定义了如下的 :

<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <jdbc.url>jdbc:mysql://localhost:3306/mydb</jdbc.url>
      <jdbc.username>root</jdbc.username>
      <jdbc.password>password</jdbc.password>
    </properties>
  </profile>
</profiles>

则在 application.properties 或 application.yml 文件中使用这些属性:

spring.datasource.url=${jdbc.url}
spring.datasource.username=${jdbc.username}
spring.datasource.password=${jdbc.password}

或者在 application.yml 中使用这些属性:

spring:
  datasource:
    url: ${jdbc.url}
    username: ${jdbc.username}
    password: ${jdbc.password}

在 Spring Boot 应用程序中,可以使用 @Value 注解来引用这些属性,例如:

@Component
public class MyComponent {
    @Value("${jdbc.url}")
    private String jdbcUrl;
    
    @Value("${jdbc.username}")
    private String jdbcUsername;
    
    @Value("${jdbc.password}")
    private String jdbcPassword;
    
    // ...
}

或者使用 Environment 对象来访问这些属性,例如:

@Component
public class MyComponent {
    @Autowired
    private Environment env;
    
    public void doSomething() {
        String jdbcUrl = env.getProperty("jdbc.url");
        String jdbcUsername = env.getProperty("jdbc.username");
        String jdbcPassword = env.getProperty("jdbc.password");
        
        // ...
    }
}

需要注意的是,如果应用程序需要支持多个环境,例如开发环境、测试环境和生产环境,可以在 application.properties 或 application.yml 文件中使用不同的配置属性,例如:

# 开发环境配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb-dev
spring.datasource.username=root
spring.datasource.password=password
# 测试环境配置
# spring.datasource.url=jdbc:mysql://localhost:3306/mydb-test
# spring.datasource.username=testuser
# spring.datasource.password=testpassword
# 生产环境配置
# spring.datasource.url=jdbc:mysql://localhost:3306/mydb-prod
# spring.datasource.username=produser
# spring.datasource.password=prodpassword

在启动应用程序时,可以通过设置 SPRING_PROFILES_ACTIVE 环境变量来指定当前的环境,例如:

$ export SPRING_PROFILES_ACTIVE=dev
$ java -jar myapp.jar

或者在 application.properties 或 application.yml 文件中指定当前的环境,例如:

spring.profiles.active=dev
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐