Java應(yīng)用開(kāi)發(fā)的顛覆者:Spring Boot(java spring boot開(kāi)發(fā))
有人說(shuō),Spring Boot的出現(xiàn),讓Java迎來(lái)了又一春,它是Java應(yīng)用開(kāi)發(fā)的顛覆者,徹底改變了Java應(yīng)用開(kāi)發(fā)的模式。
以往我們做Spring應(yīng)用開(kāi)發(fā),要知道配置哪些類(lèi)來(lái)讓Hibernate和Spring一起工作,要知道如何配置view resolver來(lái)控制哪個(gè)模版進(jìn)行視圖層的展示。經(jīng)常寫(xiě)了一大堆代碼之后發(fā)現(xiàn)只是在處理Spring框架本身的配置,根本一行業(yè)務(wù)邏輯都沒(méi)有寫(xiě)。
開(kāi)發(fā)完成之后,我們還要考慮部署的問(wèn)題,且不說(shuō)部署到非常笨重的應(yīng)用服務(wù)器,比如WebSphere, Weblogic或者JBoss,即使部署到Tomcat或者Jetty這種輕量級(jí)容器上面,我們要知道如何配置容器,如何修改配置文件等等。而且在多應(yīng)用部署到同一個(gè)Tomcat的時(shí)候,經(jīng)常會(huì)出現(xiàn)沖突。就算我們花了很大力氣解決了這些問(wèn)題,程序部署成功之后,我們很難去了解這個(gè)程序的運(yùn)行狀態(tài)。有可能我們要配置很多第三方工具來(lái)去知道這個(gè)應(yīng)用程序運(yùn)行狀態(tài)如何,有哪些參數(shù),環(huán)境變量是什么。盡管Spring幫我們解決了依賴(lài)注入的問(wèn)題,簡(jiǎn)化了一些MVC的流程,但是Spring框架本身集成了越來(lái)越多東西,導(dǎo)致其越來(lái)越難配置,維護(hù)成本成直線上升。
很多時(shí)候,Python, Ruby或者JavaScript程序員敲幾個(gè)命令安裝一些庫(kù),然后簡(jiǎn)單的敲幾行代碼,引入一些框架比如flask,然后直接一個(gè)簡(jiǎn)單的API就可以跑起來(lái)了。Java程序員可能還在研究該使用Maven里面的哪個(gè)庫(kù),如何在代碼里面進(jìn)行配置。
但是現(xiàn)在 Spring Boot的出現(xiàn)讓這一情況有了很大的改觀。
它使用“習(xí)慣優(yōu)于配置”(項(xiàng)目中存在大量的配置,此外還內(nèi)置一個(gè)習(xí)慣性的配置,讓你無(wú)須手動(dòng)進(jìn)行配置)的理念讓你的項(xiàng)目快速運(yùn)行起來(lái)。使用Spring Boot 很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌Servlet 容器)、準(zhǔn)生產(chǎn)級(jí)別的基于Spring框架的項(xiàng)目,使用Spring Boot 你可以不用或者只需要很少的Spring 配置。
【Spring Boot 核心功能】
- 獨(dú)立運(yùn)行的Spring 項(xiàng)目
Spring Boot 可以以jar 包的形式獨(dú)立運(yùn)行,運(yùn)行一個(gè)Spring Boot 項(xiàng)目只需通過(guò)java –jarxx.jar 來(lái)運(yùn)行。
- 內(nèi)嵌Servlet 容器
Spring Boot 可選擇內(nèi)嵌Tomcat、Jetty 或者Undertow ,這樣我們無(wú)須以war 包形式部署項(xiàng)目。
- 提供starter 簡(jiǎn)化Maven 配置
Spring 提供了一系列的starter pom 來(lái)簡(jiǎn)化Maven 的依賴(lài)加載,例如,當(dāng)你使用了spring-boot-starter-web 時(shí),會(huì)自動(dòng)加入如下圖所示的依賴(lài)包。
- 自動(dòng)配置Spring
Spring Boot 會(huì)根據(jù)在類(lèi)路徑中的jar 包、類(lèi),為jar 包里的類(lèi)自動(dòng)配置Bean,這樣會(huì)極大地減少我們要使用的配置。當(dāng)然,Spring Boot 只是考慮了大多數(shù)的開(kāi)發(fā)場(chǎng)景,并不是所有的場(chǎng)景,若在實(shí)際開(kāi)發(fā)中我們需要自動(dòng)配置Bean,而Spring Boot 沒(méi)有提供支持,則可以自定義自動(dòng)配置。
- 準(zhǔn)生產(chǎn)的應(yīng)用監(jiān)控
Spring Boot 提供基于http、ssh、telnet 對(duì)運(yùn)行時(shí)的項(xiàng)目進(jìn)行監(jiān)控。
- 無(wú)代碼生成和xml 配置
Spring Boot 的神奇的不是借助于代碼生成來(lái)實(shí)現(xiàn)的,而是通過(guò)條件注解來(lái)實(shí)現(xiàn)的,這是Spring 4.x 提供的新特性。
Spring 4.x 提倡使用Java 配置和注解配置組合,而Spring Boot 不需要任何xml 配置即可實(shí)現(xiàn)Spring 的所有配置。
SpringBoot 不僅讓我們做Java開(kāi)發(fā)變的簡(jiǎn)單有效,更重要的是SpringBoot徹底顛覆了我們對(duì)Java開(kāi)發(fā)的認(rèn)識(shí),讓我們第一次有了”原來(lái)Java開(kāi)發(fā)可以這么做” 的感覺(jué)。
關(guān)于SpringBoot還有非常多值得深入討論的東西,黑馬程序員JavaEE就業(yè)班中,不但有對(duì)于SpringBoot的講解,還增加了項(xiàng)目實(shí)戰(zhàn),讓學(xué)員在就業(yè)中脫穎而出,全國(guó)十八個(gè)校區(qū)正在火熱招中,可以點(diǎn)擊 撩小編獲取更多信息。
最后,小編整理了SpringBoot的教程,幫助大家進(jìn)一步了解它。
獲取方式:
關(guān)注“黑馬程序員”頭條號(hào),評(píng)論轉(zhuǎn)發(fā)后后臺(tái)回復(fù)“boot”即可獲取。