springBoot學習(一)創建項目與讀取配置文件

新創建一個maven項目

進入spring官網

  • (http://spring.io/)訪問網站,點擊project找到springboot子項目html

  • 點擊learn,選擇一個版本,查看文檔(之前的版本沒有找到文檔,就直接用最新的了)java

知識拓展:看下面圖片可以發現有一些標誌SHAPSHOT,GA等等web

流程:SNAPSHOT->alpha->beta->release->GAspring

Alpha:是內部測試版,通常不向外部發布,會有不少Bug.通常只有測試人員使用。springboot

Beta:也是測試版,這個階段的版本會一直加入新的功能。在Alpha版以後推出。微信

RC:(Release Candidate) 顧名思義麼 ! 用在軟件上就是候選版本。系統平臺上就是發行候選版本。RC版不會再加入新的功能了,主要着重於除錯。app

GA:General Availability,正式發佈的版本,在國外都是用GA來講明release版本的。maven

詳情查看:https://www.cnblogs.com/lexiaofei/p/7065720.htmlsvg

  • 點擊Getting Started(入門)進入springboot官方教學學習

  1. 查看目錄 System Requirements(系統要求)查看硬性要求,最低須要java8,能夠經過java-version命令查看本身的java版本信息

  2. 查看Maven Installation(maven安裝),複製依賴的jar包

  
    
  
  
   
   
            
   
   




<!-- Inherit defaults from Spring Boot -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.2.RELEASE</version>    </parent>    <!-- Add typical dependencies for a web application -->    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>    </dependencies>    <!-- Package as an executable jar -->    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <maven.compiler.source>1.8</maven.compiler.source>        <maven.compiler.target>1.8</maven.compiler.target>    </properties>

項目運行

建立一個注入的實體bean

  
    
  
  
   
   
            
   
   





   package com.yxj.spring;    /**     * @ProjectName: springBootDemo     * @Package: com.yxj.spring     * @Description:     * @Author: 阿杰     * @CreateDate: 2019/1/18 20:22     * @UpdateUser: 暫無     * @UpdateDate: 2019/1/18 20:22     * @UpdateRemark: The modified content     * @Version: 1.0     */    public class User {        private String userName;        private String passWord;        public String getUserName() {            return userName;        }        public User setUserName(String userName) {            this.userName = userName;            return this;        }        public String getPassWord() {            return passWord;        }        public User setPassWord(String passWord) {            this.passWord = passWord;            return this;        }    }

新建一個main方法,經過@SpringBootApplication和@Bean註解建立bean依賴注入並輸出

  
    
  
  
   
   
            
   
   




package com.yxj.spring;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.Bean;/** * @ProjectName: springBootDemo * @Package: com.yxj.spring * @Description: * @Author: 阿杰 * @CreateDate: 2019/1/18 20:18 * @UpdateUser: 暫無 * @UpdateDate: 2019/1/18 20:18 * @UpdateRemark: The modified content * @Version: 1.0 */@SpringBootApplicationpublic class SpringBootTestRun {    @Bean    public User getUserBean(){        return new User();    }    public static void main(String[] args) {        ConfigurableApplicationContext run = SpringApplication.run(SpringBootTestRun.class, args);        System.out.println("-------------分割線---------------");        User getUserBean = run.getBean(User.class);        System.out.println(getUserBean);    }}

運行main方法,獲得輸出結果

關於本類中使用的註解標籤含義,詳情查看:https://www.jianshu.com/p/4e1cab2d8431

讀取配置文件

springboot會默認去讀取

  • classPath:application.properties

  • classPath:/config/application.properties

  • file:application.properties

  • file:/config/application.properties

下面的內容,後面會寫讀取yml這方面的文章。

在maven項目的resource目錄下面新建一個application.properties文件

  
    
  
  
   
   
            
   
   
localhost.test.userName=test123localhost.test.passWord=passWordTesttest.remark=test userName is ${localhost.test.userName}

配置文件加入測試配置key與value值

  • 經過 @Value("${配置文件的key}") 方式讀取配置文件的值

  • 若是配置文件中沒有這個key,經過@Value("${給定的key:默認值}")能夠給定默認值,若是不加「:默認值」會報錯。

  • 若是配置文件有key,可是value爲空,給定默認值這種方式,不會獲得默認值的結果,會輸出空值

  
    
  
  
   
   
            
   
   







package com.yxj.spring;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.Bean;/** * @ProjectName: springBootDemo * @Package: com.yxj.spring * @Description: * @Author: 阿杰 * @CreateDate: 2019/1/18 20:18 * @UpdateUser: 暫無 * @UpdateDate: 2019/1/18 20:18 * @UpdateRemark: The modified content * @Version: 1.0 */@SpringBootApplicationpublic class SpringBootTestRun {    @Value("${localhost.test.userName}")    private String testUserName;    @Value("${localhost.test.passWord}")    private String testPassWord;    @Value("${localhost.test.default:testDefault}")    private String testDefault;    @Value("${test.remark}")    private String testRemark;    public static void main(String[] args) {        ConfigurableApplicationContext run = SpringApplication.run(SpringBootTestRun.class, args);        System.out.println("-------------分割線---------------");        SpringBootTestRun bean = run.getBean(SpringBootTestRun.class);        System.out.println(bean.testUserName);        System.out.println(bean.testPassWord);        System.out.println(bean.testRemark);        System.out.println(bean.testDefault);    }}
  • 經過Environment對象獲取

  
    
  
  
   
   
            
   
   




package com.yxj.spring;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.core.env.ConfigurableEnvironment;/** * @ProjectName: springBootDemo * @Package: com.yxj.spring * @Description: * @Author: 阿杰 * @CreateDate: 2019/1/18 20:18 * @UpdateUser: 暫無 * @UpdateDate: 2019/1/18 20:18 * @UpdateRemark: The modified content * @Version: 1.0 */@SpringBootApplicationpublic class SpringBootTestRun {    public static void main(String[] args) {        ConfigurableApplicationContext run = SpringApplication.run(SpringBootTestRun.class, args);        System.out.println("-------------分割線---------------");        ConfigurableEnvironment environment = run.getEnvironment();        String userName = environment.getProperty("localhost.test.userName");        String passWord = environment.getProperty("localhost.test.passWord");        String testRemark = environment.getProperty("test.remark");        System.out.println(userName);        System.out.println(passWord);        System.out.println(testRemark);    }}
  • 測試結果

  
    
  
  
   
   
            
   
   
-------------分割線---------------test123passWordTesttest userName is test123

修改默認配置文件的名字

  • 修改默認配置文件的名稱,點擊Edit Configurations 

  • 添加參數 --spring.config.name=修改配置文件的前綴名稱 

修改默認路徑和配置文件的名字

假設上級目錄名稱爲testConfig,裏面有一個test.properties

  • spring.config.location=classpath:/testConfig/test.properties

  • spring.config.location=file:D://test/testConfig/test.properties

  • spring.config.location=classpath:XXX,file:XXX…… 指定多個

指定多個配置文件

  • 上面spring.config.location,或者spring.config.name這種方式

  • 經過@PropertySource註解方式,添加多個@PropertySource,也可使用

    @PropertySources(@PropertySource("classpath:app.properties"),@PropertySource("classpath:appTwo.properties")) 這種方式

  
    
  
  
   
   
            
   
   






package com.yxj.spring;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.PropertySource;/** * @ProjectName: springBootDemo * @Package: com.yxj.spring * @Description: * @Author: 阿杰 * @CreateDate: 2019/1/18 20:18 * @UpdateUser: 暫無 * @UpdateDate: 2019/1/18 20:18 * @UpdateRemark: The modified content * @Version: 1.0 */@SpringBootApplication@PropertySource("classpath:app.properties")@PropertySource("classpath:appTwo.properties")public class SpringBootTestRun {    @Value("${localhost.test.userName}")    private String testUserName;    @Value("${app.test.value}")    private String appValue;    @Value("${appTwo.test.value}")    private String appTwoValue;   /**     * 也能夠經過file這種方式來指定配置文件的位置     * @param args     */    public static void main(String[] args) {        ConfigurableApplicationContext run = SpringApplication.run(SpringBootTestRun.class, args);        System.out.println("-------------分割線---------------");        SpringBootTestRun bean = run.getBean(SpringBootTestRun.class);        System.out.println(bean.testUserName);        System.out.println(bean.appValue);        System.out.println(bean.appTwoValue);    }}

app.properties

  
    
  
  
   
   
            
   
   
app.test.value=app

appTwo.properties

  
    
  
  
   
   
            
   
   
appTwo.test.value=appTwo

測試結果

  
    
  
  
   
   
            
   
   
-------------分割線---------------test123appappTwo
  • 未完待續。。。

聲明

  • 本人是與springBoot教學視頻同步學習,此文章是看視頻總結出來的重點內容.

  • 若是以爲文章描繪的不夠清楚,歡迎留言,也能夠關注公衆號,在公衆號內發送關鍵字「springboot」或者「springBoot」領取springBoot教程。

  • ps:(我固然也但願本人可以精確,準確表達springBoot的一些重點內容,減小你們觀看視頻的大額時間。)

  • 排版不易,但願你們可以點點關注,共同窗習,有問題請指出,謝謝老闆們,O(∩_∩)O哈哈~。


長按識別二維碼,瞭解更多


歡迎加入技術交流羣:


本文分享自微信公衆號 - 亂敲代碼(lqcoder)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索