springboot與springmvc基礎(chǔ)入門(mén)講解
用來(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ù)器
打開(kāi)瀏覽器訪問(wèn)指定的地址::http://localhost:8080/hi
主要的職責(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)寫(xiě)業(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)的類里的方法開(kāi)始干活
?處理器映射器HandlerMapping::根據(jù)url來(lái)找到對(duì)應(yīng)的類并找到對(duì)應(yīng)的方法
http://localhost:8080/hello/hi 即將訪問(wèn) HelloBoot類里的 hi()
?處理器適配器HandlerAdaptor::拿到要執(zhí)行的類名和方法名,開(kāi)始干活
?視圖解析器ViewResolver::解析要在瀏覽器上展示的數(shù)據(jù)
?視圖渲染:::真正的把數(shù)據(jù)在瀏覽器上展示
?3,入門(mén)案例需求:訪問(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)重寫(xiě),就是用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的寫(xiě)法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的寫(xiě)法 public void get(){System.out.println(123); }}
?5,測(cè)試
SpringMVC的原理?DispatcherServlet->HandlerMapping->HandlerAdaptor->ViewResolver->View
SpringMVC里用的注解?@RestController 接受請(qǐng)求 + 負(fù)責(zé)響應(yīng) (把數(shù)據(jù)變成JSON串)
@RequestMapping 跟url匹配規(guī)定了url的寫(xiě)法
@RestController 只能出現(xiàn)在類上
@RequestMapping 可以出現(xiàn)在類上或方法上
SpringBoot的注解?@SpringBootApplication 用來(lái)作為springboot的啟動(dòng)類
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注好吧啦網(wǎng)更多內(nèi)容!
相關(guān)文章:
1. Java8內(nèi)存模型PermGen Metaspace實(shí)例解析2. 概述IE和SQL2k開(kāi)發(fā)一個(gè)XML聊天程序3. 利用CSS3新特性創(chuàng)建透明邊框三角4. HTML <!DOCTYPE> 標(biāo)簽5. XML入門(mén)的常見(jiàn)問(wèn)題(二)6. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)7. HTML5 Canvas繪制圖形從入門(mén)到精通8. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼9. HTML DOM setInterval和clearInterval方法案例詳解10. XML入門(mén)的常見(jiàn)問(wèn)題(一)
