最好的參考文檔: Spring boot的官方文檔
最近在跟進(jìn)一個項目缆巧,用的是Spring Cloud一套的東西,一些東西研究起來比較吃力乳幸,還是對一些基礎(chǔ)的知識了解的不夠深入振乏,比如Spring Boot戳气,所以干脆重新研究一遍。
用比較Low的方式新建這個項目吸占,高大上點兒的話可以使用https://start.spring.io/來創(chuàng)建項目晴叨,先還是使用手動創(chuàng)建的方式。
其實直接參考官方的Quick Start即可.
1.新建一個maven工程矾屯。
<groupId>com.spring.lw</groupId>
<artifactId>Towns</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
2.引入jar包:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
最好能指定一下JDK的版本
<build>
<plugins>
<!-- compiler插件, 設(shè)定JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</build>
3.增加一些包路徑兼蕊,目前工程的目錄結(jié)構(gòu)為:
4.增加TownsApplication.java,這個是Spring boot的入口:
package com.spring.lw.Towns;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
//same as @Configuration @EnableAutoConfiguration @ComponentScan
public class TownsApplication {
public static void main( String[] args ){
SpringApplication.run(TownsApplication.class, args);
}
}
5.實體類:
package com.spring.lw.Towns.vo;
import lombok.Data;
@Data
public class User {
private int id;
private String username;
private String password;
private String managecom ;
public String toString(){
return "id = " + id
+ " , username = " + username
+ ", password = " + password
+ ", managecom = " + managecom ;
}
}
6.暴露對外的Rest接口:
package com.spring.lw.Towns.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.spring.lw.Towns.vo.User;
@RestController
@RequestMapping(value="/user")
public class UserController {
@RequestMapping(value="/get")
public User getUser(){
User user = new User();
user.setUsername("Towns");
user.setManagecom("US");
user.setPassword("123456");
user.setId(10001);
return user ;
}
}
7.TownsApplication.java-->run as Java Application,運(yùn)行后瀏覽器可以訪問:
http://10.136.19.170:8080/user/get
瀏覽器返回:{"id":10001,"username":"Towns","password":"123456","managecom":"US"}
知識點(抄的官方文檔件蚕,加上自己的理解和翻譯):
- @RestController and @RequestMapping annotations
- 這兩個是Spring MVC的annotations孙技,在Spring Boot中沒有特殊的含義。
- 在上面的例子中骤坐,UserController加上了@RestController注解绪杏,那么Spring會把這個類去處理Web請求。
- @RequestMapping提供了一個路由的信息纽绍,它告訴Spring蕾久,當(dāng)有[/user]請求的時候,交給這個類進(jìn)行處理拌夏。
- @EnableAutoConfiguration annotation
- 其實上面的例子中沒有使用 @EnableAutoConfiguration,在TownsApplication中使用的是@SpringBootApplication僧著。實際上在官網(wǎng)的Quick Start中使用的是@EnableAutoConfiguration履因。
- @EnableAutoConfiguration 告訴Spring Boot去“猜測”你想如何配置Spring。當(dāng)你引入了spring-boot-starter-web的時候盹愚,這個自動化的配置就會確認(rèn)你開發(fā)的是一個Web項目栅迄,那么Spring Boot會對Tomcat和Spring MVC進(jìn)行自動配置。
- Spring Boot會掃描@EnableAutoConfiguration所在類的同級包以及下級包中的Bean皆怕,也也是為什么入口類要放在最外層的原因毅舆。
- @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan