Spring Boot獲取配置文件的三種方式

  1. Environment
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

    @Autowired
    private Environment environment;

    @GetMapping("/test")
    public String test() {
        return environment.getProperty("server.port");
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
  1. @Value
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

    @Value("${server.port}")
    private String port;


    @GetMapping("/test")
    public String test() {
        return port;
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
  1. 自定義配置類
  • 新建配置類MyConfig
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "com.myconfig")
public class MyConfig {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  • application.yml設值
com:
  myconfig:
    name: zhangsan
  • @Autowired注入
import com.demo.conf.MyConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {

    @Autowired
    private MyConfig config;


    @GetMapping("/test")
    public String test() {
        return config.getName();
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章