SpringBoot目錄結構分析


SpringBoot目錄結構

我短暫的先理解一下,SpringBoot創建之后,主要生成了如下的目錄結構

 

 

其中src目錄下的

main---->

java: 源代碼,主程序類

resources: 配置文件application.properties

 

 

test---->

java:使用Junit對java中的源代碼進行測試

 

 

demo_springboot.iml:項目的描述性信息

pom.xml:maven倉庫依賴文件dependency信息配置

 

各配置文件的介紹

SpringBoot使用一個全局的配置文件,配置文件名是固定的。

application.properties
or
application.yml

 

作用:修改SpringBoot自動配置的默認值;SpringBoot在底層都給我們配置好了

 

配置文件加載位置

springboot啟動時會掃描以下位置的application.properties/yml文件作為SpringBoot的默認配置文件

-file:./config/

-file:./

-calsspath:/config/

-classpath:/

優先級從高到低,高優先級的相同配置項會覆蓋低優先級的相同配置項

SpringBoot會從四個位置全部加載主配置文件,互補配置

 

如何使用配置文件

applicaton.yml

person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: - lisi - zhaoliu

 

組件使用application.yml

/** * 將配置文件中配置的每一個屬性的值,映射到這個組件中 * @ConfigurationProperties:告訴SpringBoot將本類中的所有屬性和配置文件中相關的配置進行綁定; * prefix = "person":配置文件中哪個下面的所有屬性進行一一映射 * * 只有這個組件是容器中的組件,才能使用容器提供的@ConfigurationProperties功能; * */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog <!--導入配置文件處理器,配置文件進行綁定就會有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

 

@Value獲取值和@ConfigurationProperties獲取值比較

配置文件yml還是properties他們都能獲取到值;

如果說,我們只是在某個業務邏輯中需要獲取一下配置文件中的某項值,使用@Value;

如果說,我們專門編寫了一個javaBean來和配置文件進行映射,我們就直接使用@ConfigurationProperties;

==我們還可以通過spring.config.location來改變默認的配置文件位置==

項目打包好以后,我們可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新位置;指定配置文件和默認加載的這些配置文件共同起作用形成互補配置;

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties

 

Springboot自動配置技巧

  1. SpringBoot啟動會加載大量的自動配置類
  2. 我們看我們需要的功能有沒有SpringBoot默認寫好的自動配置類;
  3. 我們再來看這個自動配置類中到底配置了哪些組件;(只要我們用的組件有,我們就不需要再配置了)
  4. 給容器中自動配置類添加組件的時候,會從properties類中獲取某些屬性。我們就可以在配置文件中指定這些屬性的值

關於配置文件的詳細理解

參考:https://www.cnblogs.com/shamo89/p/8178109.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM