spring-boot構建RESTful Web服務
阿新 • • 發佈:2018-12-05
往後官方demo的筆記不貼程式碼了,只貼連結
RESTful Web服務
該服務將處理GET請求/greeting,可選地使用name查詢字串中的引數。該GET請求應該返回200 OK在表示問候的身體與JSON響應。它應該看起來像這樣:
{
"id": 1,
"content": "Hello, World!"
}
瀏覽器輸入localhost:8080/greeting,成功返回,如下:
學習要點
@RestController
- 在Spring構建RESTful Web服務的方法中,HTTP請求由控制器處理。這些元件很容易通過@RestController註釋來識別.
- Spring 4的新@RestController註釋,它將類標記為控制器,其中每個方法都返回一個域物件而不是檢視。它是速記@Controller和@ResponseBody拼湊在一起的。
- @RequestMapping註釋可以確保HTTP請求/greeting被對映到greeting()方法。
- @RequestParam將查詢字串引數的值繫結name到方法的name引數中greeting()。如果name請求中不存在該引數,defaultValue則使用“World”。
@SpringBootApplication註解(谷歌翻譯)
@SpringBootApplication 是一個便利註解,添加了以下所有內容:
@Configuration 標記該類作為應用程式上下文的bean定義的源。
@EnableAutoConfiguration 告訴Spring Boot開始根據類路徑設定,其他bean和各種屬性設定新增bean。
通常你會新增@EnableWebMvc一個Spring MVC應用程式,但Spring Boot會在類路徑上看到spring-webmvc時自動新增它。這會將應用程式標記為Web應用程式並激活關鍵行為,例如設定a DispatcherServlet。
@ComponentScan告訴Spring在包中尋找其他元件,配置和服務hello,允許它找到控制器。
該main()方法使用Spring Boot的SpringApplication.run()方法來啟動應用程式。您是否注意到沒有一行XML?也沒有web.xml檔案。此Web應用程式是100%純Java,您無需處理配置任何管道或基礎結構。
最後,GreetingController中還有一個類:java.util.concurrent.atomic.AtomicLong
放程式碼吧
package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
new AtomicLong();
new 了一個counter
物件,初始值為0,而後在new greeting
的時候作為greeting
類的id
傳入時,呼叫了incrementAndGet()
方法,該方法會將原來的值+1後返回。
可參考:java se 7
END