# Spring Boot 使用 Intellij Community 目標 : 建新Spring Boot 標準project ====== 基本架構 =========== 1. java JDK 17 2. spring boot / Jar 3. 使用 lombok 4. 使用 jpa 5. DB 使用 PostgreSQL 6. Spring Security 7. 使用 Swagger2 (不在 Initializr 內,要另外加 ,參考[https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api](https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api) 8. 加 log (logback) ====== 環境開發 =========== 1. 下載 Intellij Community [https://www.jetbrains.com/idea/download/#section=mac](https://www.jetbrains.com/idea/download/#section=mac) 2. Intellij Community Plugin 安裝 進 Preferences / Plugins a. Spring Boot Assistant b. Lombok c. JPA Buddy (產生 JPA Repository 套件) d. Smart Tomcat (開發 war 才需要) ====== 建立專案 =========== 1. File / New / Project a. 選 Spring Initiallizr b. Project type 選 Maven / Language 選 java /Packageing Jar or War / c. Selected dependencies : (1)Developer Tools / Spring Boot DevTools (加了可以省略以下專案設定 ) (2)Developer Tools / Lombok (3)Web / Spring Web d.package name 以 tw.sc. 開頭 ![](https://i.imgur.com/coIsQzL.png) ====== 專案設定 =========== (有使用 Spring Initiallizr 加入 Spring Boot DevTools 以下會自動加入,檢查即可) 1. 設定 Project Structure a. 選 File / Project Structure b. 選 Modules src/main/java 設為Sources src/test 設為 Test src/main/resources 設為Resources 2. 設定 Maven a.專案按右鍵,選Add Frameworks Support b.Maven 勾選起來,按確定 c.pom.xml 按右鍵選Maven / Reload project ====== 加入程式 =========== 1. 加入 Controller package a. 在原本的package下 new/package ,取名 "controller" (自動增加 folder) 2. add rest Controller (web API) 在controller 下,新增一個 class 加入 (1)@RestController (2)@RequestMapping("/hello") (web api對應url) example : ``` @RestController public class DemoController { @RequestMapping("/hello") public String hello() throws Exception{ return "HelloWorld ,Spring Boot!"; } } ``` 3. add MVC Controller (直接輸出html ) 在controller 下,新增一個 class 加入 (1)@Controller (2)@RequestMapping("/") (web 對應url) example : @Controller ``` public class DemoMVCController { @RequestMapping("/helloworld") public String helloWorld (Model model) throws Exception{ model.addAttribute("title", " helloworld "); //View 的位置在 resources/templates return "demo/helloworld"; } } ``` ``` <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title th:text="${title}"></title> </head> <body class="container"> <h1 th:text="${title}"></h1> <p> text in html </p> </body> </html> ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 4. 加入 JPA (DB) 待補 ========注意事項=============== 1. 建立專案選 Maven 與 Maven POM 差別 : Maven 會建 src 目錄, Maven POM 不會 (不要選Maven POM ,選 Maven就好 ) ###### tags: `Spring boot` `Spring` `Intellij`