Spring Boot
序
參考資料:(https://kknews.cc/code/ebjoajz.html)
參考資料:(https://blog.csdn.net/sifanlook/article/details/88905090)
當新建一個 Spring Boot 項目時,就會有一個 Application.java
了
只要再產生一個 Controller.java
就可以跑起來一個最簡單的 RESTful 伺服器了
以前是用 @Controller
如果要返回 json 要配合 @ResponseBody
Spring4 之後 加入 @RestController
就夠了
也就是說 @RestController
= @Controller
+ @ResponseBody
@CrossOrigin(origins = "http://localhost:4200") 可以利用這個去允許特定前端存取
參考資料:(https://blog.csdn.net/sinat_23225111/article/details/77984206)
在 Controller 裡面配置 url 映射是用 @RequestMapping
這邊就可以去參考章節 <RequestParameter>
如果需要重定向,可以回傳 ModelAndView
如果需要重定向,可以傳入 HttpServletResponse
,再 sendRedirect()
參考資料:(https://www.baeldung.com/spring-boot-starters)
spring boot 的 starter 可以幫助我們 減少相依套件的管理、配置時間
用資料夾切割架構
Controller - Service - Model - DAO - DB
handler
exception
utility
@SpringCloudApplication和@SpringBootApplication的區別
參考資料:(https://blog.csdn.net/tt____tt/article/details/81080200)
@SpringCloudApplication包括: @SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker, 分別是SpringBoot注解、註冊服務中心Eureka注解、斷路器注解。
對於 SpringCloud 来说,這是每一微服務必須應有的三個注解,所以才推出了 @SpringCloudApplication 這一注解集合。
@Scope
參考資料:(https://kknews.cc/zh-tw/code/zbvkozl.html)
Spring容器最初提供了兩種bean的scope類型:singleton和prototype;但發布2.0以後,又引入了另外三種scope類型:request、session和global session,這三種只能在web 應用中才可以使用。
singleton(默認)
這是Spring默認的scope,表示Spring容器只創建唯一一個bean的實例,所有該對象的引用都共享這個實例,並且Spring在創建第一次後,會在Spring的IoC容器中緩存起來,之後不再創建,就是設計模式中的單例模式的形式。
並且對該bean的所有後續請求和引用都將返回該緩存中的對象實例。一般情況下,無狀態的bean使用該scope。
prototype:
代表線程每次調用或請求這個bean都會創建一個新的實例。一般情況下,有狀態的bean使用該scope。
request:
每次http請求將會有各自的bean實例,類似於prototype。
也就是說每個request作用域內的請求只創建一個實例。
session:
在一個http session中,一個bean定義對應一個bean實例。也就是說每個session作用域內的請求只創建一個實例。
Last updated