【MCA】Java互聯網高級架構師(一)

【MCA】Java互聯網高級架構師(一)

課程1-Java高級互聯網架構師-SpringBoot入門

網盤download:【MCA】Java互聯網高級架構師【馬士兵】提娶嗎:xb2kphp

課程主要內容

  • MVC架構思想
  • 使用STS構建SpringBoot項目
  • 使用SpringBoot構建Mvcweb項目
  • MVCWeb項目中的注入
  • 熱部署VcmL46679910

介紹

SpringBoot主要解決的是在微服務的架構下簡化配置(有快速配置)、先後端分離、快速開發html

優勢:前端

  • 提供了快速啓動入門
  • 開箱即用、提供默認配置
  • 內嵌容器化web項目
  • 沒有冗餘代碼生成和xml配置要求

2.運行 D emo

建立項目

建立SpringBoot項目的幾種方式:web

  • 官網的InitializrVcmL46679910
  • 使用Eclipse、STS、Idea等IDE建立Maven項目並引入依賴
  • 使用STS插件的SpringInitializr建立項目

訪問start.spring.io/  進入Spring項目Initializrspring

image.png

 

生成下載demo.zip後端

導入項目

1.I mport一個Maven項目

image.png  

2 . 選擇要導入的文件

  image.png

3 . 項目骨架

  image.png

啓動項目

  • 直接run啓動程序裏的Main()方法
  • 安裝過STS插件或使用STS能夠在項目上右鍵RunAS->Spring Boot APP

運行成功提示信息:api

image.png  

若是運行報錯,請參照常見問題。tomcat

個性化

修改啓動banner

在resources目錄下新建banner.txtrestful

[ 英文](www.network-science.de/ascii/ )markdown

[圖片](www.degraeve.com/img2txt.php )

 

Eclipse的皮膚

菜單欄中

Help -> EclipseMarketplace

搜索Theme

image.png  

傻瓜式安裝這個,安裝完成會提示重啓,跟隨指引選擇喜歡的風格。

  image.png

簡單使用

application.properties

把全部的配置全放在這個文件裏,方便統一管理,maven也能夠作到

修改tomcat端口

server.port=90

修改項目路徑

server.servlet.context-path=/demo  VcmL46679910)  

  image.png

多個入口main方法,打包以後找不到入庫類

   <plugins>

      <plugin>  

          <groupId>org.springframework.boot</groupId>  

          <artifactId>spring-boot-maven-plugin</artifactId>  

                <configuration>  

                    <mainClass>com.mashibing.MyApp</mainClass>  

                </configuration>  

            </plugin>  

        </plugins>**V**(**cmL46679910**)

</build>

複製代碼

 

HelloWorld

RestController

RestController = @Controller+@ResponseBody

 

一個效果VcmL46679910

image.png  

 

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模板引擎

P om.xml引用

org.springframework.boot

spring-boot-starter-thymeleaf

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> VcmL46679910)  

稍微複雜的restful api應用

UserRestfulController

@RestController

**public** **class** UserRestfulController {

 

**static** Map<Long, User> *users* = Collections.*synchronizedMap*(**new** HashMap<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";

 

}

}

**public** **class** User {

 

**private** Long id;

**private** String loginName;

**private** String password;

**private** String nickName;
複製代碼

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

**public** **class** UserService {

**static** Map<Long, User> *users* = Collections.*synchronizedMap*(**new** HashMap<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";

}

}

複製代碼

前端模板顯示

VcmL46679910

 

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

 
複製代碼
相關文章
相關標籤/搜索