@value和@configurationproperties为属性注入值

2019/10/22

@value

@Configuration
public class DruidProperties
{
    @Value("${spring.datasource.druid.initialSize}")
    private int initialSize;

    @Value("${spring.datasource.druid.minIdle}")
    private int minIdle;

    @Value("${spring.datasource.druid.maxActive}")
    private int maxActive;

    @Value("${spring.datasource.druid.maxWait}")
    private int maxWait;
 }

@ConfigurationProperties(prefix=”person”)

@Configuration
@ConfigurationProperties(prefix="person")
public class DruidProperties
{
    //@Value("${spring.datasource.druid.initialSize}")
    private int initialSize;

    //@Value("${spring.datasource.druid.minIdle}")
    private int minIdle;

    //@Value("${spring.datasource.druid.maxActive}")
    private int maxActive;

    //@Value("${spring.datasource.druid.maxWait}")
    private int maxWait;
 }

使用场景

1,如果我们在某个业务中只是需要取一下文件中的某项值,使用@Value

2, 如果我们专门编写了一个javaBean 来和配置文件映射,我们就用@ConfigurationProperties

3, 使用PropertySource(value={“classpath:person.properties”})可以加载指定的配置文件,进行数据匹配

@Configuration
@PropertySource(value={"classpath:person.properties"})
@ConfigurationProperties(prefix="person")
public class DruidProperties
{
    private int initialSize;

    private int minIdle;

    private int maxActive;

    private int maxWait;
 }

SpringBoot向容器中中注入bean对象的两种方法

1,在主类中添加@ImportResource(locations={“classpath:beans.xml”})

@SpringBootApplication
@ImportResource(locations={"classpath:beans.xml"})
public class RuoYiApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(RuoYiApplication.class, args);
    }
}

在classpath下添加beans.xml文件即可

2,springBoot添加配置类@Configuration

@Configuration
public class MyConfig{
  @Bean
  public HelloService helloService()
  {
    return new HelloService();
  }
}

配置文件占位符

application.properties

person.name = 张三${random.uuid}

person.dog.name = ${person.hello:hello}_dog  ## 注意: 如果person.hello 取不到值,则取冒号后面的hello

SpringBoot支持多环境配置

application-dev.properties中配置

server.port = 8080

application-pro.properties中配置

server.port = 80

application.properties中配置

server.port = 8081

## spring激活某个指定文件
spring.profiles.active = dev

yml 多文档块方式指定开发环境

server:
	port : 8080
spring:
	profiles:
		active: dev
---
server:
	port : 8083
spring:
	profiles: dev
---
server:
	port : 8083
spring:
	profiles: pro

命令行方式指定生产环境

java -jar xxxx.jar --spring.profiles.active=dev

虚拟机参数指定生产环境

vm params : -Dspring.profiles.active = dev

@Conditional派生注解

自动配置类生效的条件

在配置文件中debug = true 属性,就能很方便的知道哪些自动配置类生效了;

SpringBoot使用日志系统

Search

    Table of Contents