javascript
Springboot是什么?Springboot详解!入门介绍
Spring Boot概述
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等。使用Spring Boot可以做到專注于Spring應(yīng)用的開發(fā),而無需過多關(guān)注XML的配置。Spring Boot使用“習(xí)慣優(yōu)于配置”的理念,簡單來說,它提供了一堆依賴打包,并已經(jīng)按照使用習(xí)慣解決了依賴問題。使用Spring Boot可以不用或者只需要很少的Spring配置就可以讓企業(yè)項(xiàng)目快速運(yùn)行起來。
Spring Boot是開發(fā)者和Spring 本身框架的中間層,幫助開發(fā)者統(tǒng)籌管理應(yīng)用的配置,提供基于實(shí)際開發(fā)中常見配置的默認(rèn)處理(即習(xí)慣優(yōu)于配置),簡化應(yīng)用的開發(fā),簡化應(yīng)用的運(yùn)維;總的來說,其目的Spring Boot就是為了對(duì)Java web 的開發(fā)進(jìn)行“簡化”和加“快”速度,簡化開發(fā)過程中引入或啟動(dòng)相關(guān)Spring 功能的配置。這樣帶來的好處就是降低開發(fā)人員對(duì)于框架的關(guān)注點(diǎn),可以把更多的精力放在自己的業(yè)務(wù)代碼上。
同時(shí)隨著微服務(wù)概念的推廣和實(shí)踐,Spring Boot的精簡理念又使其成為Java微服務(wù)開發(fā)的不二之選,也可以說,Spring Boot其實(shí)就是為了微服務(wù)而生的Java web框架。
先如今,Spring Boot已經(jīng)在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者
1.2.2 Spring Boot的核心功能
1、 可獨(dú)立運(yùn)行的Spring項(xiàng)目:Spring Boot可以以jar包的形式獨(dú)立運(yùn)行。
2、 內(nèi)嵌的Servlet容器:Spring Boot可以選擇內(nèi)嵌Tomcat、Jetty或者Undertow,無須以war包形式部署項(xiàng)目。
3、 簡化的Maven配置:Spring提供推薦的基礎(chǔ) POM 文件來簡化Maven 配置。
4、 自動(dòng)配置Spring:Spring Boot會(huì)根據(jù)項(xiàng)目依賴來自動(dòng)配置Spring 框架,極大地減少項(xiàng)目要使用的配置。
5、 提供生產(chǎn)就緒型功能:提供可以直接在生產(chǎn)環(huán)境中使用的功能,如性能指標(biāo)、應(yīng)用信息和應(yīng)用健康檢查。
6、 無代碼生成和xml配置:Spring Boot不生成代碼。完全不需要任何xml配置即可實(shí)現(xiàn)Spring的所有配置。
我們的主要目標(biāo)是:
- 為所有Spring開發(fā)提供一個(gè)更快,更廣泛的入門體驗(yàn)。
- 立即開始斟酌,但隨著需求開始偏離默認(rèn)值,快速避開
- 提供大型項(xiàng)目(如嵌入式服務(wù)器,安全性,指標(biāo),運(yùn)行狀況檢查和外部配置)通用的一系列非功能性功能。
- 絕對(duì)不會(huì)生成代碼,并且不需要XML配置。
1.2.3SpringBootB的相關(guān)好處
A.為什么要用SpringBoot?
B.什么是SpringBoot?
C.SpringBoot與SpringCloud 的區(qū)別?
D.SpringBoot與SpringMVC 的區(qū)別?
(一)為什么要用SpringBoot?
以往的項(xiàng)目整合起來是比較繁瑣復(fù)雜的,而且存在架包沖突的問題,這時(shí)候SpringBoot應(yīng)運(yùn)而生了,SpringBoot也就是用來做這個(gè)的。
(二)什么是SpringBoot?
SpringBoot是一個(gè)快速開發(fā)的框架,能過快速整合第三方框架,他是如何快速整合的呢?其實(shí)他是的基本原來是Maven依賴關(guān)系,Maven的集成,完全采用注解化,簡化XML配置,內(nèi)嵌HTTP服務(wù)器(Tomcate,jetty),默認(rèn)嵌入Tomcate,最終以Java應(yīng)用程序進(jìn)行執(zhí)行。
總結(jié)一下:
1.SpringBoot是微服務(wù)框架(網(wǎng)上很多這樣說的朋友,其實(shí)并不合理,后面我們總結(jié)也SpringCloud的時(shí)候在細(xì)說)
2.SpringBoot核心:快速整合第三方框架
3.SpringBoot原理:Maven依賴關(guān)系,Maven的繼承,完全采用注解化,Spring3.0以后采用注解方式啟動(dòng)SpringMVC
(三)SpringBoot與SpringCloud 的區(qū)別?
1.SpringBoot快速開發(fā)框架,快速整合第三方框架(Maven依賴關(guān)系###Maven繼承),完全采用注解化,簡化XML配置,最終以java應(yīng)用程序進(jìn)行執(zhí)行。
2.SpringCloud一套目前完整的微服務(wù)解決框架,功能非常強(qiáng)大,注冊(cè)中心,客戶端調(diào)用工具,服務(wù)治理(負(fù)載均衡,斷路器,分布式配置中心,網(wǎng)管,消息總線等)。
3.關(guān)系:微服務(wù)通訊技術(shù)Http+json(restfull)輕量級(jí),SpringBoot Web組件默認(rèn)集成SpringMVC,SpringCloud依賴于SpringBoot實(shí)現(xiàn)微服務(wù),使用SpringMVC編寫微服務(wù)接口。
總結(jié):
SpringCloud 微服務(wù)開發(fā)——RPC遠(yuǎn)程通訊技術(shù),服務(wù)治理,單純的只是集成SpringBoot實(shí)現(xiàn)快速開發(fā)。
(四)SpringBoot與SpringMVC 的區(qū)別?
說白了就是SpringBoot Web組件默認(rèn)集成SpringMVC框架,SpringMVC3.0以后支持注解方式使用java代碼啟動(dòng)SpringMVC。
1.2.4為什么學(xué)習(xí)SpringBoot
1.從官方來看
2.從Spring的優(yōu)點(diǎn)來看
①良好的基因
因?yàn)镾pringBoot是伴隨著Spring 4.0而生的,boot是引導(dǎo)的意思,也就是它的作用其實(shí)就是在于幫助開發(fā)者快速的搭建Spring框架,因此SpringBoot繼承了Spring優(yōu)秀的基因,在Spring中開發(fā)更為方便快捷。
②簡化編碼
比如我們要?jiǎng)?chuàng)建一個(gè) web 項(xiàng)目,使用 Spring 的朋友都知道,在使用 Spring 的時(shí)候,需要在 pom 文件中添加多個(gè)依賴,而 Spring Boot 則會(huì)幫助開發(fā)著快速啟動(dòng)一個(gè) web 容器,在 Spring Boot 中,我們只需要在 pom 文件中添加如下一個(gè) starter-web 依賴即可。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>我們點(diǎn)擊進(jìn)入該依賴后可以看到,Spring Boot 這個(gè) starter-web 已經(jīng)包含了多個(gè)依賴,包括之前在 Spring 工程中需要導(dǎo)入的依賴,我們看一下其中的一部分,如下:
<!-- .....省略其他依賴 --> <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.0.7.RELEASE</version><scope>compile</scope> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.7.RELEASE</version><scope>compile</scope> </dependency>由此可以看出,Spring Boot 大大簡化了我們的編碼,我們不用一個(gè)個(gè)導(dǎo)入依賴,直接一個(gè)依賴即可。
③簡化配置
Spring 雖然使Java EE輕量級(jí)框架,但由于其繁瑣的配置,一度被人認(rèn)為是“配置地獄”。各種XML、Annotation配置會(huì)讓人眼花繚亂,而且配置多的話,如果出錯(cuò)了也很難找出原因。Spring Boot更多的是采用 Java Config 的方式,對(duì) Spring 進(jìn)行配置。舉個(gè)例子:
我新建一個(gè)類,但是我不用 @Service注解,也就是說,它是個(gè)普通的類,那么我們?nèi)绾问顾渤蔀橐粋€(gè) Bean 讓 Spring 去管理呢?只需要@Configuration 和@Bean兩個(gè)注解即可,如下:
public class TestService {public String sayHello () {return "Hello Spring Boot!";} }import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;@Configuration public class JavaConfig {@Beanpublic TestService getTestService() {return new TestService();} }@Configuration表示該類是個(gè)配置類,@Bean表示該方法返回一個(gè) Bean。這樣就把TestService作為 Bean 讓 Spring 去管理了,在其他地方,我們?nèi)绻枰褂迷?Bean,和原來一樣,直接使用@Resource注解注入進(jìn)來即可使用,非常方便。
@Resource private TestService testService;
另外,部署配置方面,原來 Spring 有多個(gè) xml 和 properties配置,在 Spring Boot 中只需要個(gè) application.yml即可。
④簡化部署
在使用 Spring 時(shí),項(xiàng)目部署時(shí)需要我們?cè)诜?wù)器上部署 tomcat,然后把項(xiàng)目打成 war 包扔到 tomcat里,在使用 Spring Boot 后,我們不需要在服務(wù)器上去部署 tomcat,因?yàn)?Spring Boot 內(nèi)嵌了 tomcat,我們只需要將項(xiàng)目打成 jar 包,使用 java -jar xxx.jar一鍵式啟動(dòng)項(xiàng)目。
另外,也降低對(duì)運(yùn)行環(huán)境的基本要求,環(huán)境變量中有JDK即可。
⑤簡化監(jiān)控
我們可以引入 spring-boot-start-actuator 依賴,直接使用 REST 方式來獲取進(jìn)程的運(yùn)行期性能參數(shù),從而達(dá)到監(jiān)控的目的,比較方便。但是 Spring Boot 只是個(gè)微框架,沒有提供相應(yīng)的服務(wù)發(fā)現(xiàn)與注冊(cè)的配套功能,沒有外圍監(jiān)控集成方案,沒有外圍安全管理方案,所以在微服務(wù)架構(gòu)中,還需要 Spring Cloud 來配合一起使用。
3.從未來發(fā)展趨勢(shì)看
微服務(wù)是未來發(fā)展的趨勢(shì),項(xiàng)目會(huì)從傳統(tǒng)架構(gòu)慢慢轉(zhuǎn)向微服務(wù)架構(gòu),因?yàn)槲⒎?wù)可以使不同的團(tuán)隊(duì)專注于更小范圍的工作職責(zé)、使用獨(dú)立的技術(shù)、更安全更頻繁地部署。而 繼承了 Spring 的優(yōu)良特性,與 Spring 一脈相承,而且 支持各種REST API 的實(shí)現(xiàn)方式。Spring Boot 也是官方大力推薦的技術(shù),可以看出,Spring Boot 是未來發(fā)展的一個(gè)大趨勢(shì)。
總結(jié)
以上是生活随笔為你收集整理的Springboot是什么?Springboot详解!入门介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据相关,资源相关,控制相关的解决方法
- 下一篇: JS 判断输入是否为数字