在Spring Boot中读取application.properties的3种方法

时间:2023-02-07 16:54:00

application.properties有以下这几条数据
在Spring Boot中读取application.properties的3种方法

方法一:@Value注解+@Component

建议properties少的时候用,多的时候就不要使用这种方法了

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Value("${wx.open.app_id}")
    private String appid;
    @Value("${wx.open.app_secret}")
    private String secret;
    @Value("${wx.open.redirect_url}")
    private String url;

    @RequestMapping("hello")
    public String test(){
        return appid+"---"+secret+"---"+url;
    }


}

在Spring Boot中读取application.properties的3种方法另一种方法
创建一个WeProperties

@Component
@Data
public class WeProperties {

    @Value("${wx.open.app_id}")
    private String appid;
    @Value("${wx.open.app_secret}")
    private String secret;
    @Value("${wx.open.redirect_url}")
    private String url;

}

Controller层

@RestController
public class UserController {

    @Autowired
    private WeProperties properties;

    @RequestMapping("hello")
    public String test(){
        return properties.getAppid()+"---"+properties.getSecret()+"---"+properties.getUrl();
    }
    
}

在Spring Boot中读取application.properties的3种方法

方法二:@Component+@ConfigurationProperties

创建一个WeProperties
后面的属性名一定要保持一致

@Component
@ConfigurationProperties(prefix = "wx.open")
@Data
public class WeProperties {

    private String appid;
    private String app_secret;
    private String redirect_url;

}

Controller层

@RestController
public class UserController {

    @Autowired
    private WeProperties properties;

    @RequestMapping("hello")
    public String test(){
        return properties.getAppid()+"---"+properties.getApp_secret()+"---"+properties.getRedirect_url();
    }

}

在Spring Boot中读取application.properties的3种方法

方法三:@ConfigurationProperties+@EnableConfigurationProperties

创建一个WeProperties
后面的属性名一定要保持一致

@ConfigurationProperties(prefix = "wx.open")
@Data
public class WeProperties {

    private String appid;
    private String app_secret;
    private String redirect_url;

}

启动类添加@EnableConfigurationProperties

@SpringBootApplication
@EnableConfigurationProperties(value = WeProperties.class)
public class PropertiesApplication {
    public static void main(String[] args) {
        SpringApplication.run(PropertiesApplication.class,args);
    }
}

Controller层

@RestController
public class UserController {

    @Autowired
    private WeProperties properties;

    @RequestMapping("hello")
    public String test(){
        return properties.getAppid()+"---"+properties.getApp_secret()+"---"+properties.getRedirect_url();
    }

}

在Spring Boot中读取application.properties的3种方法