Springboot,SSM及SSH的概念、優點、區別及缺點


Springboot的概念:

是提供的全新框架,使用來簡化Spring的初始搭建和開發過程,使用了特定的方式來進行配置,讓開發人員不在需要定義樣板化的配置。此框架不需要配置xml,依賴於像MAVEN這樣的構建系統。

Springboot的優點:

1.減少了大量的開發時間並提高了生產力。
2.避免了編寫大量的樣板代碼,注釋和XML配置。
3.解決了Spring的弊端。
4.快速整合第三方框架,無需配置文件。
5.代碼少了、配置文件少了、不需要對第三方框架煩惱了、項目精簡了,對整個團隊的開發及維護來說,更大的節約了成本。
6.使用Java開發基於Spring的應用程序非常容易。

Springboot的缺點:

1.修復bug較慢,報錯時難以定位到該點。
2.集成度較高,不易了解底層。
總結:簡單、快速、方便地搭建項目;對主流開發框架的無配置集成;極大提高了開發、部署效率。

SSM的概念:

SSM框架,是三層結合所成的框架,分別是,Spring,SpringMVC,MyBatis所組成。Spring依賴注入來管理各層,面向切面編程管理事務,日志和權限。SpringMVC代表了Model,View,Controller接收外部請求,進行分發和處理。Mybatis是基於jdbc的框架,主要用來操作數據庫,並且將業務實體和數據表聯系起來。

Spring的概念:

Spring是一個開源開發框架,Spring主要用來開發java應用,構建J2EE平台的web應用。其核心就是提供一種新的機制管理業務對象及其依賴關系。

Spring的優點:

1.容器:Spring是一個容器,包含並管理對象的生命周期和配置。
2.支持AOP:Spring提供了對AOP的支持,它允許將一些通用任務,如安全、事物、日志等進行集中式處理,從而提高了程序的復用性。
3.輕量級框架:Spring是輕量級框架,其基本的版本大約2M。
4.控制反轉  :Spring通過控制反轉實現松散耦合,對象們給它們的依賴,而不是創建或者查找依賴的對象們方便解耦,簡化開發。
5.方便程序的測試:Spring提供了對Junit4的支持,可以通過注解方便的測試Spring程序。
6.降低Jave EE API的使用難度:Spring對Java EE開發中非常難用的一些API(如JDBC),都提供了封裝,使這些API應用難度大大降低。
7.方便集成各種優秀框架:Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如Struts、MyBatis等)的直接支持。
8.支持聲明式事務處理:只需要通過配置就可以完成對事物的管理,而無須手動編程。

Spring的缺點:

1.依賴反射,反射影響進程。
2.太過於依賴設計模式。
3.控制器過於靈活。
4.不支持分布式應用。

SpringMVC的概念:

屬於Spring框架的一部分,用來簡化MVC架構的web應用程序開發。

SpringMVC的優點:

1、擁有強大的靈活性,非侵入性和可配置性
2、提供了一個前端控制器DispatcherServlet,開發者無需額外開發控制器對象
3、分工明確,包括控制器、驗證器、命令對象、模型對象、處理程序映射視圖解析器,每一個功能實現由一個專門的對象負責完成
4、可以自動綁定用戶輸入,並正確的轉換數據類型
5.可重用的業務代碼:可以使用現有的業務對象作為命令或表單對象,而不需要去擴展某個特定框架的基類。

SpringMVC的優點:

1.Servlet API 耦合難以脫離容器獨立運行。
2.太過於細分,開發效率低。

Spring和Springboot的區別:

1.Spring Boot可以建立獨立的Spring應用程序;
2.內嵌了如Tomcat,Jetty和Undertow這樣的容器,也就是說可以直接跑起來,用不着再做部署工作了。
3.無需再像Spring那樣搞一堆繁瑣的xml文件的配置;
4.可以自動配置Spring;
5.提供的POM可以簡化Maven的配置;

Springboot和SpringMVC的區別:

Spring 是一個“引擎”;
Spring MVC 是基於Spring的一個 MVC 框架 ;
Spring Boot 是基於Spring的條件注冊的一套快速開發整合包。

mybatis的概念:

MyBatis是一個簡化和實現了 Java 數據持久化層(persistence layer)的開源框架,它抽象了大量的JDBC冗余代碼,並提供了一個簡單易用的API和數據庫交互。MyBatis的前身是iBATIS,iBATIS於2002年由ClintonBegin創建。MyBatis3是iBATIS的全新設計,支持注解和Mapper。

mybatis的優點:

1.與JDBC相比,減少了50%以上的代碼量。
2. MyBatis是最簡單的持久化框架,小巧並且簡單易學。
3. MyBatis靈活,不會對應用程序或者數據庫的現有設計強加任何影響,SQL寫在XML里,從程序代碼中徹底分離,降低耦合度,便於統一管理和優化,可重用。
4. 提供XML標簽,支持編寫動態SQL語句(XML中使用if, else)。
5. 提供映射標簽,支持對象與數據庫的ORM字段關系映射(在XML中配置映射關系,也可以使用注解)。

mybatis的缺點:

1.SQL語句的編寫工作量較大,對開發人員的SQL語句編寫有一定的水平要求。
2.SQL語句過於依賴數據庫,不能隨意更換數據庫。
3.拼接復雜SQL語句時不靈活。

SSH的概念:

SSH框架是JAVA EE中三種框架所集成。分別為Struts,Spring,Hibernate框架所組成,是當前比較流行的JAVA WEB開源框架。
集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。

Struts2的概念:

Struts2是一個基於MVC設計模式的Web應用框架,相當於一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互。Struts2在Struts1融合webwork。

Struts2的優勢:

1.實現了MVC模式,層次結構清晰,使程序員只需關注業務邏輯的實現。
2.豐富的標簽庫,大大提高了開發的效率。
3.Struts2提供豐富的攔截器實現。
4.通過配置文件,就可以掌握整個系統各個部分之間的關系。
5.異常處理機制,只需在配置文件中配置異常的映射,即可對異常做相應的處理。
6. Struts2的可擴展性高。
7.面向切面編程的思想在Strut2中也有了很好的體現。體現了攔截器的使用,攔截器就是一個一個的小功能單位,用戶可以將這些攔截器合並成一個大的攔截器,這個合成的攔截器就像單獨的攔截器一樣,只要將它配置到一個、Action中就可以。

Struts2的缺點:

1.校驗較繁瑣,多字段時出錯返回不同。
2.安全性太低。
3.獲取傳參時較麻煩。

Hibernate的概念:

Hibernate是一個Java領域的持久層的ORM(對象/關系映射)框架。與各種數據庫,SQL語句打交道,是數據持久化的一種解決方案。ORM框架是不同於MVC的另一種思想框架,適用范圍也與MVC截然不同。類似功能的框架還有SUN的JDO、Oracle公司的TopLink、Apache的iBatis和openJPA等。

Hibernate的優點:

1.對象/關系數據庫映射(Basic O/R Mapping)它使用時只需要操縱對象,使開發更對象化,拋棄了數據庫中心的思想,完全的面向對象思想。
2.透明持久化(Persistent)帶有持久化狀態的、具有業務功能的單線程對象,此對象生存期很短。這些對象可能是普通的JavaBeans/POJO,這個對象沒有實現第三方框架或者接口,唯一特殊的是他們正與(僅僅一個)Session相關聯。一旦這個Session被關閉,這些對象就會脫離持久化狀態,這樣就可被應用程序的任何層自由使用。
3.事務Transaction 應用程序用來指定原子操作單元范圍的對象,它是單線程的,生命周期很短。它通過抽象將應用從底層具體的JDBC、JTA以及CORBA事務隔離開。某些情況下,一個Session之內可能包含多個Transaction對象。盡管是否使用該對象是可選的,但無論是使用底層的API還是使用Transaction對象,事務邊界的開啟與關閉是必不可少的。4.它沒有侵入性,即所謂的輕量級框架。
5.移植性會很好。
6.緩存機制。提供一級緩存和二級緩存。

Hibernate的缺點:

1.持久層封裝過於完整,導致開發人員無法對SQL進行優化,無法靈活應用原生SQL。
2.批量數據處理的時候是較弱勢。
3.框架中使用ORM原則,導致配置過於復雜,遇到大項目,維護和問題不斷。
4.配置文件復雜。

原文鏈接:https://blog.csdn.net/nan961136007/article/details/88051476


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM