# 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`