【Spring】六,属性配置

细粒度的自动配置

在Spring中有两种不同(但相关)的配置

  • bean装配:声明在Spring应用上下文中创建哪些应用组件以及它们之间如何互相注入的配置。
  • 属性注入:设置Spring应用上下文中bean的值的配置。

Spring中环境的抽象

Spring的环境抽象是各种配置属性的一站式服务。它抽取了原始的属性,这样需要这些属性的bean就可以从Spring本身中获取了。Spring环境会拉取多个属性源,包括:

  • JVM系统属性;
  • 操作系统环境变量;
  • 命令行参数;
  • 应用属性配置文件。

它会将这些属性聚合到一个源中,通过这个源可以注入到Spring的bean中。
在这里插入图片描述
Spring Boot自动配置的bean都可以通过Spring环境提取的属性进行配置。

配置Servlet容器的端口号

server:
  port: 8081

如果将端口号设置为0,服务器并不会真的在端口0上启动。相反,它会任选一个可用的端口。在我们运行自动化集成测试的时候,这会非常有用,因为这样能够保证并发运行的测试不会与硬编码的端口号冲突。如果不关心应用在哪个端口启动,那么这种配置方式也非常有用,因为此时应用将会变成通过服务注册中心来进行查找的微服务。

配置数据源

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password: sa
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect

Spring Boot在自动化配置DataSource bean的时候,会使用该连接。如果在类路径中存在Tomcat的JDBC连接池,DataSource将使用该连接池。否则,Spring Boot将会在类路径下尝试查找并使用如下的连接池实现:

  • HikariCP
  • Commons DBCP 2

配置日志

默认情况下,Spring Boot通过Logback配置日志,日志会以INFO级别写入到控制台中。
为了完全控制日志的配置,我们可以在类路径的根目录下(在src/main/resources中)创建一个logback.xml文件。

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF -->
    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

在日志配置方面,你可能遇到的常见变更就是修改日志级别。借助Spring Boot的配置属性功能,我们不用创建logback.xml文件就能完成这些变更。

logging:
  level:
    root: INFO
    org.springframework.security: DEBUG

使用profile进行配置

定义特定profile相关的属性的一种方式就是创建另外一个YAML或属性文件,其中只包含用于生产环境的属性。文件的名称要遵守如下的约定:application-{profile名}.yml或 application-{profile名}.properties。然后,我们就可以在这里声明适用于该profile的配置属性了。
在这里插入图片描述
在application.yml中进行激活

spring:
  profiles:
    active:
      - dev

使用profile条件化地创建bean

@Profile注解可以将某些bean设置为仅适用于给定的profile。

@Bean
@Profile("dev")
public CommandLineRunner dataLoader(IngredientRepository repo) {
    //do something...
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值