SpringBoot與Spring之間的對(duì)比
SpringBoot與Spring之間對(duì)比
原有Spring優(yōu)缺點(diǎn)分析
1.Spring的優(yōu)點(diǎn)分析
Spring是Java企業(yè)版(Java Enterprise Edition,JEE,也稱(chēng)J2EE)的輕量級(jí)代替品。無(wú)需開(kāi)發(fā)重量級(jí)的EnterpriseJavaBean(EJB),Spring為企業(yè)級(jí)Java開(kāi)發(fā)提供了一種相對(duì)簡(jiǎn)單的方法,通過(guò)依賴(lài)注入和面向切面編程,用簡(jiǎn)單的Java對(duì)象(Plain Old Java Object,POJO)實(shí)現(xiàn)了EJB的功能。
2.Spring的缺點(diǎn)分析
雖然Spring的組件代碼是輕量級(jí)的,但它的配置卻是重量級(jí)的。一開(kāi)始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的組件掃描,這消除了大量針對(duì)應(yīng)用程序自身組件的顯式XML配置。Spring 3.0引入了基于Java的配置,這是一種類(lèi)型安全的可重構(gòu)配置方式,可以代替XML。
所有這些配置都代表了開(kāi)發(fā)時(shí)的損耗。因?yàn)樵谒伎糞pring特性配置和解決業(yè)務(wù)問(wèn)題之間需要進(jìn)行思維切換,所以編寫(xiě)配置擠占了編寫(xiě)應(yīng)用程序邏輯的時(shí)間。和所有框架一樣,Spring實(shí)用,但與此同時(shí)它要求的回報(bào)也不少。
除此之外,項(xiàng)目的依賴(lài)管理也是一件耗時(shí)耗力的事情。在環(huán)境搭建時(shí),需要分析要導(dǎo)入哪些庫(kù)的坐標(biāo),而且還需要分析導(dǎo)入與之有依賴(lài)關(guān)系的其他庫(kù)的坐標(biāo),一旦選錯(cuò)了依賴(lài)的版本,隨之而來(lái)的不兼容問(wèn)題就會(huì)嚴(yán)重阻礙項(xiàng)目的開(kāi)發(fā)進(jìn)度。
SpringBoot的概述
1.SpringBoot解決上述Spring的缺點(diǎn)
SpringBoot對(duì)上述Spring的缺點(diǎn)進(jìn)行的改善和優(yōu)化,基于約定優(yōu)于配置的思想,可以讓開(kāi)發(fā)人員不必在配置與邏輯業(yè)務(wù)之間進(jìn)行思維的切換,全身心的投入到邏輯業(yè)務(wù)的代碼編寫(xiě)中,從而大大提高了開(kāi)發(fā)的效率,一定程度上縮短了項(xiàng)目周期。
2.SpringBoot的特點(diǎn)
為基于Spring的開(kāi)發(fā)提供更快的入門(mén)體驗(yàn)開(kāi)箱即用,沒(méi)有代碼生成,也無(wú)需XML配置。同時(shí)也可以修改默認(rèn)值來(lái)滿(mǎn)足特定的需求提供了一些大型項(xiàng)目中常見(jiàn)的非功能性特性,如嵌入式服務(wù)器、安全、指標(biāo),健康檢測(cè)、外部配置等SpringBoot不是對(duì)Spring功能上的增強(qiáng),而是提供了一種快速使用Spring的方式。
SpringBoot的核心功能
1.起步依賴(lài)
起步依賴(lài)本質(zhì)上是一個(gè)Maven項(xiàng)目對(duì)象模型(Project Object Model,POM),定義了對(duì)其他庫(kù)的傳遞依賴(lài),這些東西加在一起即支持某項(xiàng)功能。簡(jiǎn)單的說(shuō),起步依賴(lài)就是將具備某種功能的坐標(biāo)打包到一起,并提供一些默認(rèn)的功能。
2.自動(dòng)配置
Spring Boot的自動(dòng)配置是一個(gè)運(yùn)行時(shí)(更準(zhǔn)確地說(shuō),是應(yīng)用程序啟動(dòng)時(shí))的過(guò)程,考慮了眾多因素,才決定Spring配置應(yīng)該用哪個(gè),不該用哪個(gè)。該過(guò)程是Spring自動(dòng)完成的。
SpringBoot與springcloud版本對(duì)應(yīng)關(guān)系
Springboot官方版本:
springCloud官方版本:
對(duì)應(yīng)關(guān)系:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之棧
棧(stack)又名堆棧,它是一種運(yùn)算受限的線(xiàn)性表。限定僅在表尾進(jìn)行插入和刪除操作的線(xiàn)性表。這一端被稱(chēng)為棧頂,相對(duì)地,把另一端稱(chēng)為棧底,棧是基礎(chǔ)中的基礎(chǔ),如果你還沒(méi)掌握透徹就來(lái)接著往下看吧2022-02-02SpringMVC?bean實(shí)現(xiàn)加載控制方法詳解
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web?MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)2022-08-08解決java.lang.ClassCastException的java類(lèi)型轉(zhuǎn)換異常的問(wèn)題
這篇文章主要介紹了解決java.lang.ClassCastException的java類(lèi)型轉(zhuǎn)換異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09SpringBoot 并發(fā)登錄人數(shù)控制的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot 并發(fā)登錄人數(shù)控制的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05在 Spring Boot 中集成 MinIO 對(duì)象存儲(chǔ)
MinIO 是一個(gè)開(kāi)源的對(duì)象存儲(chǔ)服務(wù)器,專(zhuān)注于高性能、分布式和兼容S3 API的存儲(chǔ)解決方案,本文將介紹如何在 Spring Boot 應(yīng)用程序中集成 MinIO,以便您可以輕松地將對(duì)象存儲(chǔ)集成到您的應(yīng)用中,需要的朋友可以參考下2023-09-09Spring Boot整合Spring Security的示例代碼
這篇文章主要介紹了Spring Boot整合Spring Security的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04解決SpringBoot整合MybatisPlus分模塊管理遇到的bug
這篇文章主要介紹了解決SpringBoot整合MybatisPlus分模塊管理遇到的bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java?empty、null、blank的區(qū)別小結(jié)
本文主要介紹了Java?empty、null、blank的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06