# Spring Boot課程筆記5: 自定義配置 ## 配置文件 ### 透過文件進行相關配置的設定 * **application.properties** -Spring Boot預設的設置文件 -於文件中進行客製化的定義,如下圖範例  * **application.yml** -另種設定檔,透過Json格式撰寫,較常用此種方式設定Spring Boot,可參考下方範例(設置內容皆與上方properties檔相同,可用以進行對比)  ## 自定義屬性配置 ### 可於yaml內依照各專案需求配置客製屬性 * **透過@Value注解以及參數${}的方式於類別中引入客製屬性,且也可於文件中使用相同方式交互設定,如下圖所示**  *HelloController.java* ``` @Value("${book.name}") private String name; @Value("${book.author}") private String author; @Value("${book.isbn}") private String isbn; @Value("${book.description}") private String description; @GetMapping("/books/{id}") public Object getOne(@PathVariable long id) { Map<String, Object> book = new HashMap<>(); book.put("name", name); book.put("isbn", isbn); book.put("author", author); book.put("description", description); return book; } ``` * **透過實體類別接收客製屬性** -藉由@ConfigurationProperties於實體類別中引入相對應的自定義屬性,且藉由@Component標注該類別為元件作為使用,並於原本欲引入的類別中透過@Autowired注入類別,下方為範例  *Book.java* ``` @Component @ConfigurationProperties(prefix = "book") public class Book { private String name; private String author; private String isbn; private String description; public Book() { } //下方Getter Setter省略 } ``` *HelloController.java* ``` public class HelloController { @Autowired private Book book; @GetMapping("/books/{id}") public Object getOne(@PathVariable long id) { return book; } } ``` ## 多環境配置 ### EX: UAT/ SIT/ PRD環境不同配置 * **新增application-{自定義參數}.yml文件來定義不同環境時所需的配置** -例application-uat.yml/ application-sit.yml/ application-prd.yml -透過原始application.yml中spring.profiles.active給予參數決定該次啟動時要執行哪個文件 *application.yml(原始文件)*  *application-sit.yml(SIT環境文件)*  *application-prd.yml(Production環境文件)*  [參考課程Reference](https://www.udemy.com/course/spring-boot-u/) ###### tags: `Spring Boot`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.