優效學院 基於微服務的秒殺專案實戰 Spring Boot 2.0基礎篇01
1. 介紹
主要解決的是在微服務的架構下簡化配置(有快速配置)、前後端分離、快速開發
優點:
提供了快速啟動入門
開箱即用、提供預設配置
內嵌容器化web專案
沒有冗餘程式碼生成和xml配置要求
2.執行Demo
訪問http://start.spring.io/
生成下載demo.zip
Maven本地源配置
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
Pom.xml
必須要繼承的parnet
Pom.xml第一行報錯
進入本地庫
for /r %i in (*.lastUpdated) do del %i
然後update
缺少或包錯誤
刪掉 重新update
找不到主類
所有錯誤都解決後
Jar方式執行 首先得有這個jar包
先clean package 生成jar檔案,然後再run main方法
找不到jdk
把jre的路徑換成jdk的
啟動後自動停止
sts
下載http://spring.io/tools
或者在eclipse上自己安裝外掛 spring tools
簡單使用
修改banner
在resources目錄下新建banner.txt
http://www.network-science.de/ascii/ 英文
https://www.degraeve.com/img2txt.php 圖片
application.properties
把所有的配置全放在這個檔案裡,方便統一管理,maven也可以做到
修改tomcat埠
server.port=90
修改專案路徑
server.servlet.context-path=/demo
多個入口main方法,打包之後找不到入庫類
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.yxxy.MyApp</mainClass>
</configuration>
</plugin>
</plugins>
</build>
在Spring Boot中多個模組使用對應的配置檔案
https://blog.csdn.net/cw_hello1/article/details/79639448
HelloWorld
RestController
RestController = @[email protected]
一個效果
@RestController
public class MyAppController {
@RequestMapping("/")
public Map<String, String> index() {
Map<String, String> map = new HashMap<>();
map.put("aaa", "bbb");
map.put("aaa", "bbb");
map.put("aaa", "bbb");
map.put("aaa", "bbb");
return map;
}
使用thymeleaf模板引擎
Pom.xml引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Controller程式碼
@Controller
public class IndexController {
@RequestMapping("/")
public String index(ModelMap map) {
// 加入一個屬性,用來在模板中讀取
map.addAttribute("msg", "nihao~");
return模板檔案的名稱,對應src/main/resources/templates/index.html
return "index";
}
模板檔案程式碼
<h1 th:text="${msg}">hi!</h1>
稍微複雜的restful api應用
UserRestfulController
@RequestMapping("/")
@RestController
public class UserRestfulController {
static Map<Long, User> users = Collections.synchronizedMap(newHashMap<Long,User>());
@RequestMapping(value="/User",method=RequestMethod.GET)
public List<User> getUserList(){
ArrayList<User> list = new ArrayList<>(users.values());
return list;
}
@RequestMapping(value="User",method=RequestMethod.POST)
public String addUser(@ModelAttribute User user) {
users.put(user.getId(), user);
return "addUser Success";
}
}
User
public class User {
private Long id;
private String loginName;
private String password;
private String nickName;
注入Service
UserRestfulController
@Autowired
private UserService userSrv;
@RequestMapping(value="/User",method=RequestMethod.GET)
public List<User> getUserList(){
return userSrv.getUserList();
}
@RequestMapping(value="User",method=RequestMethod.POST)
public String addUser(@ModelAttribute User user) {
String msg = userSrv.addUser(user);
return msg;
}
UserService
@Service
public class UserService {
static Map<Long, User> users = Collections.synchronizedMap(newHashMap<Long,User>());
public List<User> getUserList() {
ArrayList<User> list = new ArrayList<>(users.values());
return list;
}
public String addUser(User user) {
users.put(user.getId(), user);
return "addUser Success";
}
}
前端模板顯示
<h1>User list</h1>
<table>
<tr>
<th>NAME</th>
<th>loginName</th>
<th>nickName</th>
</tr>
<tr th:each="user : ${list}">
<td th:text="${user.id}">id</td>
<td th:text="${user.loginName}">loginName</td>
<td th:text="${user.nickName}">nickName</td>
</tr>
</table>
<p>
<a href="../home.html" th:href="@{/}">Return to home</a>
</p>
此內容為優效學院課堂筆記原始碼,相關的課堂視訊可以私信小編領取,或者直接報名相關課程【免費報名連結】