springboot與springmvc基礎(chǔ)入門講解
一,SpringBoot
–1,概述
用來(lái)整合maven項(xiàng)目,可以和Spring框架無(wú)縫銜接。
–2,用法
–1,創(chuàng)建SpringBoot工程:File-New-Project-選擇Spring Init…-next-輸入groupId、項(xiàng)目id、選成jdk8-next-選擇SpringWeb-ok
–2,配置Maven:File-Settings-選擇Build…-Maven-修改三處(解壓的位置、settings.xml位置-本地倉(cāng)庫(kù)位置)-ok
–3,找到自動(dòng)生成的一個(gè)類,直接運(yùn)行 ( 啟動(dòng)服務(wù)器 )

–4,創(chuàng)建類,讓瀏覽器訪問(wèn)

–5,測(cè)試
啟動(dòng)服務(wù)器

打開瀏覽器訪問(wèn)指定的地址::http://localhost:8080/hi

二,SpringMVC
–1,概述
主要的職責(zé):接受瀏覽器發(fā)來(lái)的請(qǐng)求,給瀏覽器發(fā)送響應(yīng)的數(shù)據(jù)
遵循了MVC的設(shè)計(jì)模式:好處是可以把代碼松耦合
MVC的全稱:M是Model模型,用來(lái)封裝數(shù)據(jù)
V是View視圖,用來(lái)展示數(shù)據(jù)
C是Controller控制器,用來(lái)寫業(yè)務(wù)代碼
–2,原理
當(dāng)瀏覽器發(fā)起請(qǐng)求,就會(huì)訪問(wèn)服務(wù)器----前端控制器DispatcherServlet—處理器映射器HandlerMapping—處理器適配器
HandlerAdaptor—視圖解析器ViewResolver—視圖渲染—響應(yīng)數(shù)據(jù)。
–前端控制器DispatcherServlet:: 把請(qǐng)求進(jìn)行分發(fā),找到對(duì)應(yīng)的類里的方法開始干活
–處理器映射器HandlerMapping::根據(jù)url來(lái)找到對(duì)應(yīng)的類并找到對(duì)應(yīng)的方法
http://localhost:8080/hello/hi 即將訪問(wèn) HelloBoot類里的 hi()
–處理器適配器HandlerAdaptor::拿到要執(zhí)行的類名和方法名,開始干活
–視圖解析器ViewResolver::解析要在瀏覽器上展示的數(shù)據(jù)
–視圖渲染:::真正的把數(shù)據(jù)在瀏覽器上展示
–3,入門案例
需求:訪問(wèn)url地址,服務(wù)器返回汽車的相關(guān)數(shù)據(jù)
–1,創(chuàng)建Maven的模塊:選中工程-右鍵-New-Maven-next-輸入module的名字-finish

–2,創(chuàng)建啟動(dòng)類RunApp

–3,創(chuàng)建汽車類
package cn.tedu;
//充當(dāng)MVC模式里的M層model:封裝數(shù)據(jù)
public class Car{
//提供屬性 + get/set/toString
private int id;
private String name;
private String type;
private String color;
private double price;
// get/set /toString
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
//如果沒(méi)重寫,就是用Object的toString()返回的是地址值。
//沒(méi)重了,就是返回屬性值。
@Override
public String toString() {
return "Car{" +
"id=" + id +
", name='" + name + '\'' +
", type='" + type + '\'' +
", color='" + color + '\'' +
", price=" + price +
'}';
}
}
–4,創(chuàng)建類,接受瀏覽器的請(qǐng)求,并返回?cái)?shù)據(jù)

package cn.tedu;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//職責(zé):接受請(qǐng)求+做出響應(yīng)
@RestController //接受瀏覽器發(fā)來(lái)的請(qǐng)求
@RequestMapping("car")//規(guī)定了url的寫法
public class CarController {
//訪問(wèn)http://localhost:8080/car/find,
//在瀏覽器展示了{(lán)"id":718,"name":"保時(shí)捷","type":"Cayman T","color":"紅色","price":641000.0}
@RequestMapping("find")
public Car find(){
Car c = new Car();
c.setId(718);
c.setName("保時(shí)捷");
c.setType("Cayman T");
c.setColor("紅色");
c.setPrice(641000);
return c;//把結(jié)果返回給了瀏覽器
}
//訪問(wèn)http://localhost:8080/car/save ,在瀏覽器展示abc
@RequestMapping("save")
public String save(){
//接受請(qǐng)求,并返回?cái)?shù)據(jù)
return "abc";
}
//訪問(wèn)http://localhost:8080/car/get ,在控制臺(tái)打印123
@RequestMapping("get")//規(guī)定了url的寫法
public void get(){
System.out.println(123);
}
}
–5,測(cè)試

總結(jié)
SpringMVC的原理?DispatcherServlet->HandlerMapping->HandlerAdaptor->ViewResolver->View
SpringMVC里用的注解?@RestController 接受請(qǐng)求 + 負(fù)責(zé)響應(yīng) (把數(shù)據(jù)變成JSON串)
@RequestMapping 跟url匹配規(guī)定了url的寫法
@RestController 只能出現(xiàn)在類上
@RequestMapping 可以出現(xiàn)在類上或方法上
SpringBoot的注解?@SpringBootApplication 用來(lái)作為springboot的啟動(dòng)類
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家更多內(nèi)容!
相關(guān)文章
Java實(shí)戰(zhàn)之網(wǎng)上書店管理系統(tǒng)的實(shí)現(xiàn)
本文將利用Java語(yǔ)言實(shí)現(xiàn)網(wǎng)上書店管理系統(tǒng)。其功能一般包括:圖書信息管理、用戶信息管理、圖書購(gòu)買、圖書訂單查看、圖書添加、圖書維護(hù)等等,感興趣的可以了解一下2022-06-06
Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總
這篇文章主要介紹了Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總,HashMap實(shí)現(xiàn)緩存,可以實(shí)現(xiàn)簡(jiǎn)單的本地緩存,但是實(shí)際開發(fā)中不推薦,我們可以簡(jiǎn)單模擬一下緩存的實(shí)現(xiàn),本文通過(guò)示例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-03-03
SpringBoot使用AOP+注解實(shí)現(xiàn)簡(jiǎn)單的權(quán)限驗(yàn)證的方法
這篇文章主要介紹了SpringBoot使用AOP+注解實(shí)現(xiàn)簡(jiǎn)單的權(quán)限驗(yàn)證的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享
這篇文章主要介紹了Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
Java JDBC批量執(zhí)行executeBatch方法詳解
這篇文章主要介紹了Java JDBC批量執(zhí)行executeBatch方法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Java 定時(shí)器(Timer)及線程池里使用定時(shí)器實(shí)例代碼
這篇文章主要介紹了Java 定時(shí)器(Timer)及線程池里使用定時(shí)器實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12

