1. 程式人生 > >優效學院 基於微服務的秒殺專案實戰 Spring Boot 2.0基礎篇01

優效學院 基於微服務的秒殺專案實戰 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>

此內容為優效學院課堂筆記原始碼,相關的課堂視訊可以私信小編領取,或者直接報名相關課程【免費報名連結】