2024-02-29 分類(lèi): 網(wǎng)站建設(shè)
下面是這篇博客的主要內(nèi)容:
1、spring boot 介紹
2、spring boot 項(xiàng)目快速搭建
3、spring-boot中單元測(cè)試
4、spring boot 與mybatis 的集成
一、初識(shí)spring boot
1、web項(xiàng)目傳統(tǒng)的搭建方式
導(dǎo)入jar包,配置tomcat 的context.xml 、web.xml,配置class path ,啟動(dòng)。我靠,怎么一堆報(bào)錯(cuò)?classNotFoundException?尼瑪哥不是導(dǎo)入了jar包嗎,哦版本不對(duì),那我使用maven管理jar包咯,千辛萬(wàn)苦終于配置好maven 并學(xué)會(huì)了如何使用,啟動(dòng)也沒(méi)報(bào)錯(cuò)了,但是尼瑪已經(jīng)過(guò)去打半天了我都還沒(méi)有開(kāi)始正式代碼的書(shū)寫(xiě),趕緊開(kāi)始寫(xiě)業(yè)務(wù)代碼吧,又發(fā)現(xiàn)spring 中配置老是尼瑪?shù)膱?bào)錯(cuò),而我他媽只是想要搞個(gè)簡(jiǎn)單的發(fā)郵件功能啊。
所以說(shuō),自己搭建web項(xiàng)目,很多步驟都是重復(fù)性的,有沒(méi)有什么工具可以一步達(dá)成啊?我只想快點(diǎn)投入到實(shí)際業(yè)務(wù)開(kāi)發(fā)中去,我再也不想折騰jar包版本問(wèn)題,再也不想折騰那繁瑣的配置過(guò)程(雖然這是一個(gè)很好的學(xué)習(xí)過(guò)程),那么,spring boot 估計(jì)是老鐵你不二的選擇!
2、spring boot 是什么?
什么是spring boot?直接copy官網(wǎng)的介紹:
原諒我并不咋地的英文,官網(wǎng)說(shuō),spring boot 可以讓你以一種非常簡(jiǎn)單的方式構(gòu)建一個(gè)機(jī)遇Application 的spring 項(xiàng)目,而你索要做的僅僅是run 這個(gè)項(xiàng)目,spring boot 集成了主流的框架,我們構(gòu)建項(xiàng)目大概只需要兩三分鐘,spring boot 項(xiàng)目,只需要很少的配置即可。
用了spring boot 后,你會(huì)發(fā)現(xiàn),什么配置問(wèn)題,什么jar包問(wèn)題統(tǒng)統(tǒng)沒(méi)有了,你的生產(chǎn)效力會(huì)提高很多,因?yàn)?,spring boot 已經(jīng)幫你弄好了一個(gè)項(xiàng)目原型,你只需要在這個(gè)原型上添加自己的業(yè)務(wù)代碼,自己的service 和dao就萬(wàn)事大吉了!
spring boot 真的有那么厲害?好,下面就開(kāi)始進(jìn)入正題,說(shuō)說(shuō)怎么搭建利用spring boot搭建項(xiàng)目。
2、spring boot 項(xiàng)目快速搭建
第一步,上官網(wǎng),進(jìn)行項(xiàng)目原始jar 包的選取,官網(wǎng)在線搭建地址如下:https://start.spring.io/,看圖:
特別說(shuō)明下:在選擇你要的jar 包中,一般包括三部分:web部分--包含 了spring、springboot 等常用的web開(kāi)發(fā)必須jar包;spring提供的工具類(lèi)部分(devTool),這個(gè)用于熱部署效果;數(shù)據(jù)庫(kù)部分,spring boot自動(dòng)可以幫你繼承各種數(shù)據(jù)庫(kù)框架,我這里以mybatis 為演示例子,最后選完jar包的效果如下:
第二步、下載項(xiàng)目并導(dǎo)入IDE,當(dāng)然,需要版本管理工具的支持,這里推薦IntelliJ IDEA 開(kāi)發(fā)工具(它簡(jiǎn)直就是web開(kāi)發(fā)的標(biāo)配?。唧w看下面截圖:
解壓后得到項(xiàng)目文件
,然后,就可以打開(kāi)我們的IDE,這里已我最?lèi)?ài)的IntelliJ idea為例子
打開(kāi)idea,找到file-->open-->選擇項(xiàng)目的路徑,找打pom文件-->以project 形式打開(kāi)
第三步、hello spring項(xiàng)目 大概長(zhǎng)什么樣子?打開(kāi)項(xiàng)目之后,maven 會(huì)加載必須的jar包,這段時(shí)間,你可以去喝杯香醇的龍井茶或者咖啡,當(dāng)項(xiàng)目構(gòu)建完成之后,你會(huì)看到下面這樣的典型maven目錄結(jié)構(gòu):
具體各個(gè)目錄放什么,請(qǐng)參考截圖,這里補(bǔ)充說(shuō)明的是,HelloSpringbootApplication是整個(gè)項(xiàng)目的入口,我們啟動(dòng)項(xiàng)目不再是啟動(dòng)tomcat,而是運(yùn)行這個(gè)類(lèi),這個(gè)類(lèi)的main方法就是整個(gè)項(xiàng)目的main方法即執(zhí)行入口,
第四步,寫(xiě)hello demo了。新建一個(gè)package demo,然后新建一個(gè)類(lèi)HelloSpringBoot,寫(xiě)入以下代碼
@RestController public class HelloSpringBoot { @RequestMapping(path = {"/helloSpringBoot"}) public String HelloSpring (){ System.out.println("hello spring boot"); return "hello spring boot"; } }我們先不解釋這個(gè)類(lèi)里面的東西,先配置并啟動(dòng)網(wǎng)站,初步感受下spring boot的魔力:
在啟動(dòng)網(wǎng)站前,由于spring boot 是默認(rèn)自動(dòng)注冊(cè)加載數(shù)據(jù)庫(kù)相關(guān)的類(lèi)文件的,所以為了不報(bào)錯(cuò),我們需要打開(kāi)數(shù)據(jù)庫(kù)并在resource目錄下的application.property中加入數(shù)據(jù)庫(kù)配置相關(guān)文件,這里以mysql為例子,配置文件如下:
spring.datasource.url=jdbc:mysql://localhost:3306/wenda?useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=root配置文件中各個(gè)字段含義估計(jì)讀者也能看懂,后面會(huì)再具體說(shuō)明。
當(dāng)然,如果沒(méi)有安裝數(shù)據(jù)庫(kù),讀者也可以在HelloSpringbootApplication 類(lèi)中利用exclude屬性聲明不自動(dòng)注冊(cè)加載數(shù)據(jù)庫(kù)相關(guān)文件,具體參考下面的代碼:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class})//這里的MybatisAutoConfiguration.class對(duì)應(yīng)你的數(shù)據(jù)庫(kù)框架 public class HelloSpringbootApplication { public static void main(String[] args) { SpringApplication.run(HelloSpringbootApplication.class, args); } }然后,我們所有的工作就完成了,可以啟動(dòng)網(wǎng)站了,見(jiàn)證奇跡的時(shí)候到了。
找到HelloSpringbootApplication類(lèi),雙擊打卡,右擊鼠標(biāo),run,然后項(xiàng)目就啟動(dòng)了。
啟動(dòng)網(wǎng)站之后,輸入http://localhost:8080/helloSpringBoot即可訪問(wèn)對(duì)應(yīng)的方法。瀏覽器以及idea后臺(tái)效果如圖
這里簡(jiǎn)單解釋下這個(gè)類(lèi)里面的東西的含義:
首先是@RestController這個(gè)注解:用過(guò)spring的大佬估計(jì)知道是什么東西,當(dāng)我們其他類(lèi)要通過(guò)spring引用該類(lèi)時(shí),第一步就是要將該類(lèi)注冊(cè)到spring中,@RestController就是相當(dāng)于將這個(gè)類(lèi)注冊(cè)到spring容器的意思當(dāng)然,還有一種比較常用的就是@Controller,具體他們兩區(qū)別后面再討論吧。
然后就是@RequestMapping,通過(guò)設(shè)置這個(gè)注解里面面的path屬性,就可以聲明相對(duì)于項(xiàng)目根路徑(localhost:8080)的訪問(wèn)路徑。
@RestController public class HelloSpringBoot {/** * url傳參,訪問(wèn)的路徑類(lèi)似這樣:localhost:8080/getParamDemo1/1 * 方法體中的參數(shù)要在前面加注釋?zhuān)珸PathVariable,代表url中的參數(shù) */ @RequestMapping(path = {"/getParamDemo1/{id}"}) public String getParamDemo1 (@PathVariable("id") int userId){ System.out.println("get param " + userId); return "success get param"; } /** * 當(dāng)然,你也可以通過(guò)這種傳參方式:localhost:8080/getParamDemo?param1=1或者直接表單提交參數(shù) * 當(dāng)然,同時(shí)方法中參數(shù)聲明的注釋也要變成@RequestParam,代表請(qǐng)求參數(shù),required屬性說(shuō)明了參數(shù)是否是必須的 */ @RequestMapping(path = {"/getParamDemo2"}) public String getParamDemo2 (@RequestParam(value="param1",required = false) int param){ System.out.println("get param " + param); return "success get param"; } }3、構(gòu)建restful編程風(fēng)格
@RestController public class HelloSpringBoot { /** * 通過(guò)設(shè)置RequestMapping的method屬性便可以設(shè)置該方法可處理的對(duì)應(yīng)請(qǐng)求了,例如下面的getRequestDemo方法只會(huì)處理get請(qǐng)求 */ @RequestMapping(path = {"/getRequestDemo"},method = RequestMethod.GET) public String getRequestDemo (@RequestParam(value="param1",required = false) int param){ System.out.println("get request test ,get param " + param); return "success get param"; } /** * 下面的deleteRequestDemo方法只會(huì)處理delete請(qǐng)求 */ @RequestMapping(path = {"/deleteRequestDemo"},method = RequestMethod.DELETE) public String deleteRequestDemo (@RequestParam(value="param1",required = false) int param){ System.out.println("delete request test ,get param " + param); return "success get param"; } }另外,利用上面說(shuō)的url中的值(類(lèi)似這個(gè):path="/member/{userid}")進(jìn)行資源定位,也非常符合resultful的風(fēng)格要求,例如這path="/getParamDemo1/{userid}"的配置就是對(duì)應(yīng)的就是對(duì)會(huì)員級(jí)別的某個(gè)用戶(由userid定位)進(jìn)行某些操作,如果要?jiǎng)h除該用戶,則對(duì)應(yīng)http請(qǐng)求的delete請(qǐng)求即可。
通過(guò)上面的那些步驟,估計(jì)讀者對(duì)于如何用spring boot 進(jìn)行一個(gè)簡(jiǎn)單的web項(xiàng)目快速搭建已經(jīng)清楚了,下面在spring boot搭建的項(xiàng)目中如何進(jìn)行單元測(cè)試。
三、spring boot 項(xiàng)目中的單元測(cè)試問(wèn)題
spring boot 中集成了junite框架,對(duì)于單元測(cè)試,也不用寫(xiě)各種繁瑣的類(lèi)了,只需要對(duì)測(cè)試類(lèi)進(jìn)行一定的注釋?zhuān)瑂pring boot 便會(huì)幫你做好一切,就算是數(shù)據(jù)庫(kù)相關(guān)的操作,spring boot 也能很好地進(jìn)行測(cè)試,具體還是看代碼例子,下面是一個(gè)簡(jiǎn)單的測(cè)試業(yè)務(wù)類(lèi)方法的例子:
首先,我們新建一個(gè)service 層,新增一個(gè)demo類(lèi),最后的demo代碼如下:
@Component public class ServiceDemo { public String testDemo(){ String rtnAfterDosomething = "我是返回結(jié)果"; //這里是業(yè)務(wù)代碼 return rtnAfterDosomething; } }下面的代碼是測(cè)試類(lèi)
@RunWith(SpringRunner.class) @SpringBootTest public class ServiceDemoTest { @Autowired ServiceDemo serviceDemo; @Test public void testDemo() { String rtn = serviceDemo.testDemo(); Assert.assertEquals(rtn, "我是返回結(jié)果"); } }如果要測(cè)試數(shù)據(jù)庫(kù)dao,也是類(lèi)似的,但是特別注意的是,測(cè)試之前必須啟動(dòng)項(xiàng)目(即HelloSpringbootApplication的run方法必須運(yùn)行起來(lái)),否則將會(huì)包c(diǎn)an not find ApplicationContext的錯(cuò)誤。
四、spring boot中配置數(shù)據(jù)庫(kù)框架(以mybatis為例子)
在spring boot中集成數(shù)據(jù)庫(kù)相關(guān)的開(kāi)源框架也是很方便的(當(dāng)然,記得在一開(kāi)始新建項(xiàng)目的時(shí)候引用相關(guān)的jar包),當(dāng)你上面的步驟都沒(méi)什么錯(cuò)誤的時(shí)候,你只需要簡(jiǎn)單地配置下applocation.properties文件即可
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=root 下面這條配置聲明了mybatis的配置文件路徑,classpath對(duì)應(yīng)的是和這個(gè)文件統(tǒng)計(jì)的resources mybatis.config-location=classpath:mybatis-config.xml目錄的文件結(jié)構(gòu)參考下面截圖:
ok,mybatis 的引用配置便弄好了,下面我們嘗試?yán)胢ybatis 這個(gè)數(shù)據(jù)庫(kù)框架,進(jìn)行一個(gè)數(shù)據(jù)庫(kù)的簡(jiǎn)單查詢操作,首先,看下面的mybatis-config.xml的配置內(nèi)容,讀者可以以這個(gè)為模板進(jìn)行配置,當(dāng)然,想了解更具體的mybatis配置說(shuō)明,建議去官網(wǎng)看看,這里不展開(kāi)了:
恩,然后,就可以進(jìn)行數(shù)據(jù)庫(kù)的操作了,我簡(jiǎn)單用mysql建了個(gè)名字為springboot的數(shù)據(jù)庫(kù),在庫(kù)里面建了一個(gè)簡(jiǎn)單的demo表(具體怎么建表那些不用我說(shuō)了吧?實(shí)在沒(méi)有接觸過(guò)數(shù)據(jù)庫(kù)的同學(xué),可以自行百度或者谷歌去咯),然后,dao代碼如下:
@Mapper public interface DemoDao { @Select({"select demo_param from demo "}) String queryDemo(); }注意,mybatis 的dao是一個(gè)接口,關(guān)于mybatis更多的內(nèi)容,請(qǐng)讀者參開(kāi)官方文檔,這里不展開(kāi)了。
然后,就在原來(lái)的ServiceDemo類(lèi)中調(diào)用一下吧,代碼看下圖吧:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import springboot.hello.helloSpringboot.dao.DemoDao; @Component public class ServiceDemo { @Autowired DemoDao demoDao; public String testDemo(){ String rtnAfterDosomething = "我是返回結(jié)果"; //這里是業(yè)務(wù)代碼 return rtnAfterDosomething; } public String queryDemo(){ return demoDao.queryDemo(); } }ok,簡(jiǎn)單寫(xiě)個(gè)測(cè)試類(lèi),出現(xiàn)小綠條,測(cè)試成功。
然后,所有項(xiàng)目原型的工作完成了,然后,我們就可以進(jìn)行我們核心業(yè)務(wù)開(kāi)發(fā)了,很快有沒(méi)有?很爽有木有?所以說(shuō),spring boot 搭建項(xiàng)目的確飛快,可以讓我們省去很多機(jī)械的前期操作,讀者們趕緊去探索下吧,spring boot ,你值得捅有!
非常感謝您讀完創(chuàng)新互聯(lián)的這篇文章:"Spring-Boot快速搭建web項(xiàng)目詳解",僅為提供更多信息供用戶參考使用或?yàn)閷W(xué)習(xí)交流的方便。我們公司提供:網(wǎng)站建設(shè)、網(wǎng)站制作、官網(wǎng)建設(shè)、SEO優(yōu)化、小程序制作等服務(wù),歡迎聯(lián)系我們提供您的需求。
當(dāng)前題目:Spring-Boot快速搭建web項(xiàng)目詳解
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/news6/319406.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、搜索引擎優(yōu)化、外貿(mào)建站、定制網(wǎng)站、企業(yè)建站、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容