IntelliJ Idea SpringBoot 數(shù)據(jù)庫增刪改查實例
??.???____??????????_????????????__?_?_ ?/\?/?___'_?__?_?_(_)_?__??__?_???? (?(?)___?|?'_?|?'_|?|?'_?/?_`?|???? ?\/??___)|?|_)|?|?|?|?|?||?(_|?|??)?)?)?) ??'??|____|?.__|_|?|_|_|?|___,?|?/?/?/?/ ?=========|_|==============|___/=/_/_/_/ ?::?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)為:
項目默認的 maven
pom.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
@RestController
Spring4 之后新加的注解,原來返回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