java軟體開發的架構設計

軟體架構作為一個概念,體現在技術和業務兩個方面。
從技術角度來說:軟體架構隨著技術的革新不斷地更新其內容,軟體架構建立於當前技術和一些基本原則的基礎之上。
先說一些基本原則:
分層原則:分層是為了降低軟體深度復雜性而使用的關鍵思想,就像社會有了階級一樣,軟體有了層次結構。
模塊化原則:模塊化是化解軟體廣度復雜的必然手段,模塊化的目的就是讓軟體分工。
介面實現分離原則隨著軟體模塊化的不斷深入改進,面向介面編程而不是面向實現編程可以讓復雜度日趨增高的軟體降低模塊之間的耦合度,從而讓各模塊更輕松改進。從這個原則出發,軟體也從微觀進行了細致的規范化。
還有兩個比較小但很重要的原則:
細節隱藏原則很顯然把復雜問題簡化,把難看的細節隱去,能讓軟體結構更清晰。其實這個原則使用很普遍,java/c++語言中的封裝原則以及設計模式中的Facade(外觀)模式就很能體現這個原則的精神。
依賴倒置原則隨著軟體結構的進一步發展,層與層之間、模塊與模塊之間的依賴逐漸加深,而層、模塊的動態可插拔要求不端增大。依賴倒置原則可看視為介面實現分離原則的深化,根據此原則的精神,軟體進入了工具時代。這個原則有點類似於知名的好萊塢法則:Don't call us, we'll call you。
以上這些原則奠定了我們的軟體架構的價值指標。但軟體架構畢竟是建立在當前技術之上的。而每一代技術都有架構模式。過去的不再說了,讓我們就來看一下當前流行的技術,以及當前我們能採用的架構。
因為面向對象是當前最流行開發技術,且設計模式的大量使用使面向對象的走向成熟,而資料庫是當前最有效的存儲結構、web界面是當前最流行的用戶介面,所以當前最典型的三層次架構就架構在以上幾項技術的基礎之上,用資料庫作存儲層、用面向對象來實現業務層、用web來作為用戶介面層。我們從三層次架構談起:
因為面向對象技術和資料庫技術不適配,所以在標准三層次架構的基礎上,我們增加了數據持久層,來管理O-R雙向映射,但目前一直沒有最理想的實現技術。cmp和entity bean技術因為其實現復雜,功能前景有限,已接近被淘汰的邊緣。JDO及hibernate作為o-r映射的後期之秀,尤其是hibernate,功能相當完備。推薦作為持久層的首選
在業務層,因為當前業務日趨負載,且變動頻繁,所以我們必須有足夠敏捷的技術來保證我們的適應變化的能力,在標准j2ee系統中session bean負責業務處理,且有不錯的性能表現,但採用ejb系統對業務架構模式改變太大,且其復雜而昂貴,業務代碼移植性差。而spring 作為一個bean配置的輕量級架構,漂亮的IOC模式實現,對業務架構影響小,所以推薦作為中間層業務框架。
在用戶結構層,雖然servlet/jsp/jstl/javaBean 能夠實現MVC架構,但終究過於粗糙。struts對MVC架構的實現就比較完美,Taperstry也極好地實現MVC架構,且採用基於事件的方式,非常誘人,惜其不夠成熟,我們仍舊推薦struts作為用戶介面層基礎架構。
因為業務層是三層次架構中最有決定意義的,所以讓我們回到業務層細致地分析一下,在復雜的業務我們常常需要以下基礎服務的一種或幾種:事務一致 性服務acid(tool:jta/jts)、並發加鎖服務concurrent&&lock、池化管理服務cache、訪問控制服務(tool:jaas)、流程式控制制服務workflow、動態實現服務IOC,串列化消息服務(tool:jms)、負載平衡服務blance等。如果我們不採用重量級應用伺服器(如weblogic,websphere,jboss等)及重量級組件(EJB),我們必須自己實現其中一些服務。雖然我們大 多情況下,不需要所有這些服務,但實現起來卻非易事。幸運的是我們有大量的開源實現代碼,但採用開源代碼卻常常是件不輕松的事。
隨著xml作為結構化信息傳輸和存儲地位日漸重要,一些xml文檔操作工具(DOM,Digester,SAX等)的使用愈發重要,而隨著 xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,採用xml schema來設計xml文檔格式,然後採用java binding來生成java bean 會成為主要編程模式,而這又進一步使數據中心向xml轉移,使在中小數據量上,愈發傾向於以xquery為查詢語言的xml資料庫。現還有一個趨勢, microsoft,ibm等紛紛大量開發中間軟體如(microsoft office之infopath),可以直接從xml schema 生成錄入頁面等非常實用的功能。還有web service 的廣泛應用,都將對軟體的架構有非常重大的影響。至於面向服務架構(SOA)前景如何,三層次架構什麼時候走入歷史,現還很難定論。
aop的發展也會對軟體架構有很深的影響,但在面向對象架構里,無論aspectJ還是jboss-aop抑是aspectWerks、 nanning都有其自身的嚴重問題:維護性很差,所以說它將很難走遠。也許作為一個很好的思想,它將在web service里大展身手。
rdf,owl作為w3c語義模型的標志性的語言,也很難想像能在當前業務架構發揮太大影響。但如果真如它所聲稱那樣,廣泛地改變著信息的結構。那麼對軟體架構也會有深遠影響。

⑵ 什麼是java五大框架

一、五大框架是:

1、struts2

2.servlet

3.hibernate

4.spring

5.mybatis

二、拓展:

1、Spring是什麼:

Spring是一個輕量級的DI和AOP容器框架。

說它輕量級有一大部分原因是相對與EJB的(雖然本人從沒有接觸過EJB的應用),重要的是,Spring是非侵入式的,基於spring開發的應用一般不依賴於spring的類。

2、Struts2 是一個相當強大的Java Web開源框架,是一個基於POJO的Action的MVC Web框架。它基於當年的Webwork和XWork框架,繼承其優點,同時做了相當的改進。Struts2現在在Java Web開發界的地位可以說是大紅大紫,從開發人員的角度來分析,Struts2之所以能夠如此的深入開發人員之心,與其優良的設計是分不開的。

⑶ java框架有哪些常用框架

十大常用框架:

一、

二、Spring

三、Mybatis

四、Dubbo

五、Maven

六、RabbitMQ

七、Log4j

八、Ehcache

九、Redis

十、Shiro

⑷ Java 設計框架 設計模式

不大一樣,框架更大一點,設計模式更細致一些。
可以理解為設計模式的模式。比如我們經常用到的MVC模式,盡管我們叫他模式,但實際上它是一個設計框架,裡麵包含了很多對其他模式的運用。

⑸ 有java框架spring開發的團隊嗎為什麼java框架就不能設計好一點呢使用起來多麻煩啊!

SpringMVC太過復雜,建議使用Struts2作為MVC框架,也就是大名鼎鼎的SSH整合框架。

另外很多程序員喜歡XML,其實XML配置要比編程式配置要明了的多。
但是現在也有一種趨勢,不用XML改用Java註解。

另外Spring的Jar包依賴做的不錯了,很多都是單向依賴,包內聚合度還是很高的。
除了Spring開頭的Jar包,好像也就是依賴Commons,Log4J了吧,
如果要用AOP,好像還要aopalliance-1.0.jar

希望樓主戒驕戒躁,努力學習。
既然覺得框架太難用,何不自己寫一個。

其實不僅僅是MVC框架,IOC容器,持久層框架,都可以嘗試自己寫一寫。

就算是寫不了那麼完美,也能大約明白一定的原理,對於更好的理解,使用框架是有幫助的。

⑹ 如何學好Java框架,Java框架有那些

Java是現階段中國互聯網公司中,覆蓋度最廣的研發語言,掌握了Java技術體系,不管在成熟的大公司,快速發展的公司,還是創業階段的公司,都能有立足之地。
學習Java技術體系,設計模式,流行的框架與組件是必不可少的:

常見的設計模式,編碼必備

Spring5,做應用必不可少的最新框架。

MyBatis,玩資料庫必不可少的組件。
二:工程化與工具

工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:

Maven,項目管理

Jenkins,持續集成

Sonar,代碼質量管理

Git,版本管理

三:分布式架構

高並發,高可用,海量數據,沒有分布式的架構知識肯定是玩不轉的:

分布式架構原理

分布式架構策略

分布式中間件

分布式架構實戰

四:微服務架構

業務越來越復雜,服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?

微服務框架

Spring Cloud

Docker與虛擬化

微服務架構

五:性能優化

任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線性能問題,Java技術體系,需要了解:

性能指標體系

JVM調優

Web調優

DB調優

六:底層知識

從架構設計,到應用層調優,再深入了解底層原理,扎實的Java基本功才能讓自己變為掃地神僧:

內存模型

並發模式

線程模型

鎖細節

⑺ Java中的框架技術

1. Apache Struts框架

Struts框架是一開源產品,基於模型-視圖-控制器(MVC)設計範例來開發Web應用軟體。它使用並且擴展了Java Servlet API,最初由Craig McClanahan創建。在2000年5月,它被捐贈到Apache Foundation。Struts框架展示了一個強有力的定製標簽庫,平鋪顯示,表單檢驗和I18N(國際化)。另外,Struts支持許多描述層,包括JSP,XML/XSLT,JavaServerFaces(JSF)和Velocity;還支持一些模型層,包括JavaBeans和EJB。

2. Spring框架

Spring框架是一個分層的Java/J2EE應用程序框架,基於Expert One-on-One J2EE設計和發行的代碼。Spring框架提供一種簡單的開發技術,用於自動化處理工程中大量的屬性文件和助理類。

Spring框架包括的主要特色有:

1 強有力的基於JavaBeans的配置管理,使用Inversion-of-Control(IoC)原則。

2 一個核心bean工廠,可用在任何環境,從applets到J2EE容器程序。

3 通用的抽象層適合於資料庫事務管理,允許可插入的事務管理器,並且不需要處理低層次的問題就可容易地劃分各事務的界限。

4 一個很有意義的異常處理的JDBC抽象層。

5 與Hibernate集成到一起,DAO實現支持以及事務策略。

3. Hibernate框架

Hibernate是一適合於Java語言的對象-關系映射(ORM)解決方案。它也是開源軟體,類似Struts,並且在LGPL保護下發布。Hibernate被一群來自世界各地的Java軟體開發者所共同開發。它提供一個易用的框架來實現把一個面向對象的域模型映射到一傳統的關系資料庫。它不僅負責從Java類到資料庫表格(以及來自Java數據類型的SQL數據類型)的映射,而且還提供數據查詢和檢索能力,並能大大減少花在SQL和JDBC手工數據處理上的開發時間。

Hibernate的目標是減輕開發者的與大量普通的數據持續性相聯系的編程任務。Hibernate還能夠適應開發進程,無論它是剛開始設計還是來自一現成的資料庫。Hibernate可以自動生成SQL,使開發者擺脫了手工處理結果集和進行對象轉化的繁瑣任務,並能使應用程序移植到所有的SQL資料庫。它還能提供透明的持續性,對持續性類的唯一的要求的是實現一個無參數的構造器。

這個框架典型地使用在JavaSwing應用軟體、基於Servlet的Java應用軟體和使用EJBsession beans的J2EE應用軟體中。

⑻ 如何設計一款Java框架

這個話題比較大,還得看具體用於何領域。
一般來說框架的設計首先要考慮其穩定性和通用性,應足夠靈活和健壯,能滿足可預想的各種應用場合的要求,不至於需要經常調整修改。
通常穩定、通用和靈活、多功能的要求是矛盾的,所以框架應是可定製、可插拔的,以解決這個矛盾。
總之,框架的設計需要有比較豐富的設計經驗,這樣才能確保可以考慮得比較全面、設計質量比較高,而且往往要經過比較長時間的實際應用檢驗才能真正成熟完善。
個人看法,僅供參考。

⑼ Java框架有哪些要學哪個

  1. ssh:spring,Springmvc,hibernat

  2. ssm:spring,Springmvc,mybatis(ibatis)(mybatis-plus)

  3. 後來的springboot,springcloud等

可以先學習javaSE語法等,然後開始寫簡單的servlet項目,然後可以開始一個簡單的ssm項目可以參考下這個,特別詳細:網頁鏈接

這些都懂點了,可以看看springboot項目,算是目前最流行的了吧

⑽ 怎麼開發Java的框架呢

Struts2
Struts2
是一個
web
應用框架。它不是一個
Struts
的新的發布版本,而是一個全新的框架。
Struts2

第二代基於
Model-View-Controller (MVC)
模型的
web
應用框架。

Struts2

java
企業級
web
應用
的可擴展性的框架。

它是
WebWork

Struts
社區合並後的產物。

這一版本的
Struts2
聲稱,
Struts2
會接近於原先版本
Struts

並且會更容易使用。
Struts2
沒有繼承
struts 1
的血統,
而是繼承了
webwork
的血統。

Struts2

Struts
的構建是社區開發模式的最好實踐和證明。事實上,第一版本的
Struts
設計的第一目
標就是使
MVC
模式應用於
web
程序設計。

在過去
10
年,
Struts
在更好的
web
應用方面所做的工作是
值得肯定的。在某些方面,
Struts
社區注意到這一框架的局限性,但在這個活躍的社區里,自動識別弱點
和頑強不屈的精神,使得克服這些弱點是不困難的。

在深入學習
MVC
運行模式並同時引入一些新的建築
學方面的設計理念後,新的
Struts2
框架結構更清晰,使用更靈活方便。

這一新的結構包含應用邏輯的
橫切面攔截器,
基於注釋的配置以減少和去除
XML
形式的配置文件,
功能強大的表達式語言,
支持可更改、
可重用
UI
組件的基於微
MVC
的標簽庫。
Struts2
有兩方面的技術優勢,一是所有的
Struts2
應用程序
都是基於
client/server HTTP
交換協議,
The Java Servlet API
揭示了
Java Servlet
只是
Java API
的一個很小子集,這樣我們可以在業務邏輯部分使用功能強大的
Java
語言進行程序設計。

Struts
Struts
是一個基於
Sun J2EE
平台的
MVC
框架,
主要是採用
Servlet

JSP
技術來實現的。
由於
Struts
能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。
Struts

Servlet

JSP

自定義標簽和信息資源
(message resources)
整合到一個統一的框架中,
開發人員利用其進行開發時不用
再自己編碼實現全套
MVC
模式,極大的節省了時間,所以說
Struts
是一個非常不錯的應用框架。

StrutsIDE
:用於
Struts
輔助開發的一個
Eclipse
插件】

EasyJWeb
EasyJ
Web
是基於
java
技術,
應用於
WEB
應用程序快速開發的
MVC
框架,
框架設計構思來源於國內眾
多項目實踐,框架充分借簽了當前主要流行的開源
Web
框架(
Struts

JSF

Tapestry

Webwork
),
吸取了其優點及精華,利用
Velocity
作為模板頁面引擎,是一個實現了頁面及代碼完全分離的
MVC
開發
框架。是一個能實現中小型
Web
應用系統快速開發的簡易
Web
框架。

通過
EasyJWeb Tools
提供的配套開發工具,可以實現基於
EasyJWeb
框架的
Web
應用快速開發,
包括常用應用軟體的代碼自生成、資料庫添刪改查(
CRUD
)代碼生成、自動頁面模版生成、配置文件管
理等。

框架特點:

1

零配文件置支持
。以前我們每接觸一個框架,開始總都要被他的配置文件折騰一番。
EasyJWeb
實現零配置支持,可以不寫一句配置文件就在框架基礎上構建你的運用。(適合小型網站系統)。

2

簡易的模板頁面設計支持
:放棄使用
jsp
,使用簡單
Velocity
腳本語言作為頁面模板。

3

頁面程序完全分離:
實現顯示頁面與程序邏輯的完全分離,克服了傳統
jsp
頁面難於維護的問