spring-boot的快速開發
1.使用Intellij中的Spring Initializr來快速構建Spring Boot/Cloud工程
選單欄中選中Files->New->Projects,這個Initializr Service URL 我們一般使用預設,
也就是spring官方提供的spring Initializr工具進行建立
點選下面的Next之後,稍等片刻,出現下面的頁面,我們可以通過
Language選項更改編寫語言,Type選項更改構建的工程型別
點選Next選項,進入到springboot的版本選擇和依賴管理,除了springboot的依賴管理還能看到springcloud的依賴管理
再點選Next,進入到建立的最後一步,可以專案的名稱,專案地址,點選Finsh完成專案建立
2.SpringBoot之HelloWorld的專案詳解
springboot的中文意義就是引導的意思,就是簡化spring應用從搭建到開發的過程,即開箱即用,只要通過java-jar或者Tomcat或者maven的外掛run或者shell指令碼就可以啟動專案,springboot只要很少的應用配置,遵循這習慣大於配置的原則,
建立SpringBoot的專案,已經在上面說過了,建立SpringBoot的web專案,需要選中web即可,工程的型別我們一般都是maven Properject
專案的POM檔案:
<groupId>com.example</groupId> <artifactId>springbootdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springbootdemo</name> <description>Demo project for Spring Boot</description> <parent><!--springboot 啟動父依賴--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties><!--springboot專案的預設編碼格式和jdk版本--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies><!--springboot 的web依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><!--springboot的test依賴 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin><!--springboot的maven打包外掛--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
專案的controller檔案
@RestController
public class helloController {
@RequestMapping("/")
public String Hello(){
return "Hello SpringBoot";
}
}
@RestController和@RequestMapping註解是來自springMVC,他們不是springboot的特定部分
@RestController可以服務於JSON和XML或者其他,這裡是以spring的形式進行結果渲染
@RequestMapping提供路由資訊,將“/”路徑的HTTP Request對映到Hello方法進行處理
專案的啟動類檔案
/**
* springboot專案的啟動類檔案
*/
@SpringBootApplication
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
@SpringBootApplication是springboot應用的標識,SpringbootdemoApplication很簡單,一個main方法,springApplication引導應用,將SpringbootdemoApplication自身當作引數傳遞給run方法,具體的run方法會啟動嵌入式的Tomcat並初始化Spring環境和Spring元件
專案的測試檔案
一個好的專案,是需要測試Test的
/**
* Spring Boot HelloWorldController 測試 - {@link HelloWorldController}
*
* Created by bysocket on 18/7/30.
*/
public class HelloWorldControllerTest {
@Test
public void testSayHello() {
assertEquals("Hello,SpringBoot!",new helloController ().Hello());
}
}
3.SpringBoot的配置檔案詳解,自定義屬性,隨機數,多環境配置
3.1自定義屬性
在使用Spring Boot的時候,通常也是需要定義一些自己使用的屬性的,
在配置檔案application.properties中可以這樣寫:
com.didispace.blog.name=程式設計師
com.didispace.blog.title=spring boot
然後通過@Value("${屬性名}")註解來載入對應的配置屬性
@Component
public class BlogProperties {
@Value("${com.didispace.blog.name}")
private String name;
@Value("${com.didispace.blog.title}")
private String title;
// 省略getter和setter
}
3.2引數間的引用
在配置檔案application.properties中各個引數之間也可以直接引用
com.didispace.blog.name=程式猿
com.didispace.blog.title=Spring Boot
com.didispace.blog.desc=${com.didispace.blog.name}正在努力寫《${com.didispace.blog.title}》
3.3使用隨機數
有時候,有些引數我們希望它不是一個固定值,比如金鑰,伺服器埠,spring boot 的屬性配置檔案中可以通過
${random}來生產int值,long值或者String字串,來支援屬性的隨機值
# 隨機字串
com.didispace.blog.value=${random.value}
# 隨機int
com.didispace.blog.number=${random.int}
# 隨機long
com.didispace.blog.bignumber=${random.long}
# 10以內的隨機數
com.didispace.blog.test1=${random.int(10)}
# 10-20的隨機數
com.didispace.blog.test2=${random.int[10,20]}
3.4通過命令列設定屬性值
在命令列執行時,連續的倆個減號--就是對application.properties中的屬性值進行賦值的標識,
例如
java -jar xxx.jar --server.port=8888命令,等價於我們在application.properties中新增屬性server.port=8888,
也可以通過設定下面的程式碼來遮蔽命令列改變應用執行的引數
SpringApplication.setAddCommandLineProperties(false)。
3.5多環境配置
在開發springboot應用的時候,通常會用到幾個不同的環境,比如開發環境,測試環境,生產環境等
在springboot配置多環境檔名時,需要滿足application-{profile}.properties的格式,其中profile對應環境標識,
比如 application-dev.properties 開發環境
application-test.properties 測試環境
application-prod.properties 生產環境
至於那個具體的配置檔案被載入,需要在application.properties檔案中通過
spring.profiles.active屬性進行配置,其值對應{profile}的值
小結:常用的springboot樣板配置已經在springboot的官方文件中給出