Spring Boot
Contents of this page:
Misc
Logging Config
- Src/main/Logback-spring.xml – logging config
- Want logging to be minimal, useful, but not affect performance
- For debug use level=”debug”
- Appender tells whether logs go to file or console or whatever
- maxHistory=5 means 5 days
- max file size is 5Mb – if a file fills up, then an index is appended
and a new file created (eg mything.log for current and
mything.2017-12-01.1.log for filled up log), and the previous file is
renamed with the date stamp of the date the file filled up
- default log location is same location as jar file
Application.yml and VendorProperties
- Environment-specific details, urls, access tokens etc are in
src/main/resources/Application.yml
- How are settings from application.yml used?
- See VendorProperties
(myproject-backend\src\main\java\com\myproject\backend\config\VendorProperties.java)
- This class gets injected into most other classes using
SpringBoot’s default dependency injection.
- For instance, you’ll see private var browserCacheTime in
BrandDetail, and access functions getBrowserCacheTime and
setBrowserCacheTime.
- Also check out the SpringBoot annotations, ie @Configuration,
@EnableConfigurationProperties and @ConfigurationProperties.
These are what allow the VendorProperties to automatically take
values from application.yml
- If you look in application.yml, you’ll see there is a
section headed vendor: - this is indicated in
VendorProperties by prefix=”vendor” at the top.
- You’ll also see the VendorProperties access method setBrands
and the member var brands – I believe these relate to the
section headed brands: in application.yml.
- There is a simple example here:
http://www.baeldung.com/configuration-properties-in-spring-boot
Gradle and Spring Boot
- See section on Gradle page