當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]??.???____??????????_????????????__?_?_ ?/\\?/?___'_?__?_?_(_)_?__??__?_?\?\?\?\ (?(?)\___?|?'_?|?'_


??.???____??????????_????????????__?_?_
?/\?/?___'_?__?_?_(_)_?__??__?_????
(?(?)___?|?'_?|?'_|?|?'_?/?_`?|????
?\/??___)|?|_)|?|?|?|?|?||?(_|?|??)?)?)?)
??'??|____|?.__|_|?|_|_|?|___,?|?/?/?/?/
?=========|_|==============|___/=/_/_/_/
?::?Spring?Boot?::????????(v1.4.2.RELEASE)12345671234567


SpringBoot

SpringBoot 是 SpringMVC 的升級版,相對于編碼、配置、部署和監(jiān)控方面,會更加簡單

微服務(wù)

微服務(wù)是一個新興的軟件架構(gòu),就是把一個大型的單個應(yīng)用程序和服務(wù)拆分為數(shù)十個的支持微服務(wù)。一個微服務(wù)的策略可以讓工作變得更為簡便,它可擴展單個組件而不是整個的應(yīng)用程序堆棧,從而滿足服務(wù)等級協(xié)議。

spring為 微服務(wù)提供了一整套的組件-SpringClound , SpirngBoot 就是該基礎(chǔ)。

第一個SpringBoot程序

這里使用的開發(fā)軟件是IntelliJ Idea,和Eclipse差不太多,界面更炫酷,功能更強大;AndroidStudio就是基于IntelliJ開發(fā)的,我之前使用過androidStudio,它倆界面幾乎一樣。

IntelliJ Idea官網(wǎng):http://www.jetbrains.com/idea/
配置好 maven, tomcat, jdk 就可以使用了

maven配置的中央倉庫阿里云鏡像

這個地址下載 jar 包的速度,誰用誰知道!

setting.xml

.
.alimavenaliyun?mavenhttp://maven.aliyun.com/nexus/content/groups/public/central.
??.123456789101112123456789101112

使用IDEA創(chuàng)建SpringBoot項目

我的IDEA版本:IntelliJ IDEA 2016.3.1

項目結(jié)構(gòu)為:

項目默認的 mavenpom.xml文件

pom.xml

4.0.0com.jxustspirngbootdemo0.0.1-SNAPSHOTjarspirngbootdemoDemo?project?for?Spring?Bootorg.springframework.bootspring-boot-starter-parent1.4.2.RELEASEUTF-8UTF-81.8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-maven-plugin123456789101112131415161718192021222324252627282930313233343536373839404142434445464748123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

運行SpirngbootdemoApplication的main方法,就能開始運行。

其他啟動方式,請看視頻教程http://www.imooc.com/learn/767

控制臺輸出:

"C:Program?FilesJavajdk1.8.0_91binjava"?....

??.???____??????????_????????????__?_?_
?/\?/?___'_?__?_?_(_)_?__??__?_????
(?(?)___?|?'_?|?'_|?|?'_?/?_`?|????
?\/??___)|?|_)|?|?|?|?|?||?(_|?|??)?)?)?)
??'??|____|?.__|_|?|_|_|?|___,?|?/?/?/?/
?=========|_|==============|___/=/_/_/_/
?::?Spring?Boot?::????????(v1.4.2.RELEASE)
?2016-12-16?14:56:52.083??INFO?15872?---?[???????????main]?o.s.j.e.a.AnnotationMBeanExporter????????:?Registering?beans?for?JMX?exposure?on?startup
2016-12-16?14:56:52.215??INFO?15872?---?[???????????main]?s.b.c.e.t.TomcatEmbeddedServletContainer?:?Tomcat?started?on?port(s):?8080?(http)
2016-12-16?14:56:52.255??INFO?15872?---?[???????????main]?com.jxust.SpirngbootdemoApplication??????:?Started?SpirngbootdemoApplication?in?7.795?seconds?(JVM?running?for?9.177)123456789101112123456789101112

從這里可以看到 Tomcat 的端口號,因為還沒有自定義Controller,所以還沒有視圖,下面來創(chuàng)建一個輸出Hello SpringBoot!的視圖。

創(chuàng)建一個HelloController,位于controller包下

HelloController.Java

package?com.jxust.controller;

import?org.springframework.web.bind.annotation.GetMapping;
import?org.springframework.web.bind.annotation.RestController;

/**
?*?Created?by?Peng
?*?Time:?2016/12/16?15:45
?*/
@RestController
public?class?HelloController?{

????@RequestMapping("/hello")
????public?String?say(){
????????return?"Hello?SpringBoot!";
????}
}12345678910111213141516171234567891011121314151617

@RestControllerSpring4 之后新加的注解,原來返回json需要@ResponseBody配合@Controller,現(xiàn)在一個頂倆

在瀏覽器中輸入http://localhost:8080/hello就能輸出Hello SpringBoot!這句話。

自定義屬性配置

用到的是application.properties這個文件

配置端口號和訪問前綴

application.properties

server.port=8081
server.context-path=/springboot1212

除了使用.properties格式的文件,還可以使用.yml格式的配置文件(推薦),更加簡便
application.yml

把原來的application.properties文件刪除
注意格式,空格不能少

獲取配置文件中的屬性值

我們也可以在配置文件中,配置數(shù)據(jù),在 Controller 中獲取,比如:
application.yml

server:
??port:?8081
??context-path:?/springboot
name:?小胖12341234

HelloController 獲取配置文件中的值

HelloController.java

....
@RestController
public?class?HelloController?{

????@Value("${name}")
????private?String?name;

????@RequestMapping(value?=?"/hello",method?=?RequestMethod.GET)
????public?String?say(){
????????return?name;
????}
}123456789101112123456789101112

返回的為name的值

配置文件中值配置方式的多樣化

配置文件的值可以是多個,也可以是組合,如:

application.yml

name:?小胖
age:?221212

或者

application.yml

name:?小胖
age:?22
content:?"name:?${name},age:?${age}"123123

或者

application.yml

server:
??port:?8081
??context-path:?/springboot
person:
??name:?小胖
??age:?22123456123456

前兩種配置獲取值的方式都是一樣的,但是對于這種方式,person 有相應(yīng)的兩個屬性,需要這樣處理

PersonProperties.java

package?com.jxust;

import?org.springframework.boot.context.properties.ConfigurationProperties;
import?org.springframework.stereotype.Component;

/**
?*?Created?by?Peng
?*?Time:?2016/12/16?16:34
?*/
@Component
@ConfigurationProperties(prefix?=?"person")
public?class?PersonProperties?{
????private?String?name;
????private?Integer?age;

????public?String?getName()?{
????????return?name;
????}

????public?void?setName(String?name)?{
????????this.name?=?name;
????}

????public?Integer?getAge()?{
????????return?age;
????}

????public?void?setAge(Integer?age)?{
????????this.age?=?age;
????}
}1234567891011121314151617181920212223242526272829303112345678910111213141516171819202122232425262728293031

Alt+insert快捷鍵提示生成Getter and Setter

pom.xml需要加入下面的依賴,處理警告

org.springframework.bootspring-boot-configuration-processortrue1234512345

HelloController.java

package?com.jxust.controller;

import?com.jxust.PersonProperties;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestMethod;
import?org.springframework.web.bind.annotation.RestController;

/**
?*?Created?by?Peng
?*?Time:?2016/12/15?20:55
?*/
@RestController
public?class?HelloController?{

???@Autowired
???private?PersonProperties?personProperties;

????@RequestMapping(value?=?"/hello",method?=?RequestMethod.GET)
????public?String?say(){
????????return?personProperties.getName()+personProperties.getAge();
????}
}12345678910111213141516171819202122231234567891011121314151617181920212223

關(guān)于配置文件application.yml的多套配置

類似 il8n 文件國際化的配置方式<code style="font-family:"Source Code Pro",monospace; padding:2px 4px; font-size:13.5px; white-space:nowr

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉