新創建一個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官方教學學習
查看目錄 System Requirements(系統要求)查看硬性要求,最低須要java8,能夠經過java-version命令查看本身的java版本信息
查看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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。