1. 程式人生 > >EJB容器簡單介紹(一)

EJB容器簡單介紹(一)

EJB跟我們之前所瞭解的元件,框架,,類等都有什麼關係?接下來主要是從容器入手來理解這些概念.

J2EE中容器充當中介軟體的角色。主要的容器包括:

WEB容器:給處於其中的應用程式元件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變數介面互動,不必關注其它系統問題。主要有WEB伺服器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的介面嚴格遵守J2EE規範中的WEB APPLICATION 標準。我們把遵守以上標準的WEB伺服器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行業領域特色。他提供給執行在其中的元件EJB各種管理功能。只要滿足J2EE規範的EJB放入該容器,馬上就會被容器進行高效率的管理。並且可以通過現成的介面來獲得系統級別的服務。例如郵件服務、

事務管理。WEB容器和EJB容器在原理上是大體相同的,更多的區別是被隔離的外界環境。WEB容器更多的是跟基於HTTP的請求打交道。而EJB容器不是。它是更多的跟資料庫、其它服務打交道。但他們都是把與外界的互動實現從而減輕應用程式的負擔。例如SERVLET不用關心HTTP的細節,直接引用環境變數session,request,response就行、EJB不用關心資料庫連線速度、各種事務控制,直接由容器來完成。

物件,,,模組,元件,容器,框架,這些java屬於他們都有一個共同的特點:容納.但是他們彼此之間又有什麼關係和聯絡麼?

物件(Object):

java的世界裡,物件是通過屬性和方法來分別對應事物所具有的靜態屬性和動態屬性

.

(Class):

用於描述同一型別的物件的一個抽象的概念.

物件和類的關係:

類是具有共同的屬性名稱和行為的一組物件的抽象,而物件則是一個類的真實的例子。

元件(component):

元件也是抽象的概念,可以理解為一些符合某種規範的類組合在一起就構成了元件。他可以提供某些特定的功能。J2EE來說,有什麼servletjsp, javabeanejb都是元件。但實際他們都是類,只不過有他們特殊的規定。

元件和類的關係:符合某種規範的類的組合構成元件.

容器(Container):

容器也叫做元件容器,元件容器是一種比較特殊的元件,它可以包含其他的元件。我們可以把元件放在元件容器中。反之,如果一個元件不是元件容器,則其中不能包含其他的元件。

元件容器也是一種元件,所以一個元件容器可以放在另一個元件容器中。元件容器的出現使得事情變得複雜了起來。我們可以把元件放在元件容器裡,也可以把元件容器放在另一個元件容器裡,這樣就形成了有層次的元件結構。

我們可以把普通的元件想像成為雞蛋,而把元件容器想像成為籃子。那麼,雞蛋可以放在小籃子裡,小籃子和別的雞蛋又可以放在大籃子裡。於是,籃子裡可以有雞蛋,還可以有其他的籃子,可以通過下面的手繪圖進行理解.

計算機生成了可選文字:籃子(容器)雞蛋(元件)O一、...,少O卜0

容器和元件的關係:容器是特殊的元件,可以包含其他元件的元件.

框架(framework):

就是某種應用的半成品,就是一組元件,供你選用完成你自己的系統.java框架就是一些類和介面的集合,通過這些類和介面協調來完成一系列的程式實現。框架又叫做開發中的半成品,它不能提供整個WEB應用程式的所有東西,但是有了框架,我們就可以集中精力進行業務邏輯的開發而不用去關心它的技術實現以及一些輔助的業務邏輯。我們熟知的StructsSpring就是表示層和業務層框架的代表。

框架和元件的關係:框架是一組組元件構成的.

架構:

軟體架構描述的物件是直接構成系統的抽象元件。各個元件之間的連線則明確和相對細緻地描述元件之間的通訊。在實現階段,這些抽象元件被細化為實際的元件,比如具體某個類或者物件。在面向物件領域中,元件之間的連線通常用介面()來實現。

架構和框架的關係:

框架不是構架。架構確定了系統整體結構、層次劃分,不同部分之間的協作等設計考慮。框架比架構更具體,更偏重於技術涉嫌。對於同一架構(比如Web開發中的MVC),可以通過多種框架來實現。

     如果按照包含或者容納的關係來彙總這些概念,得到下面的一張圖,

計算機生成了可選文字:架構框架(1)框架(2)容器元件類物件」L二丁型

相關推薦

EJB容器簡單介紹

EJB跟我們之前所瞭解的元件,框架,包,類等都有什麼關係?接下來主要是從容器入手來理解這些概念.J2EE中容器充當中介軟體的角色。主要的容器包括:WEB容器:給處於其中的應用程式元件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變數介面互動

FreeSWITCH第三方庫音頻簡單介紹

優勢 帶寬 blog 網絡 ndt 目標 領域 合成 通道 FreeSWITCH使用了大量的第三方庫,本文檔主要介紹音頻相關庫的信息: 視頻相關庫的信息介紹參考:http://www.cnblogs.com/yoyotl/p/5488890.html 其他相關庫的信

android application類簡單介紹

cati theme text color raw sdn water bsp public 每次應用程序執行時。應用程序的application類保持實例化的狀態。通過擴展applicaiton類,能夠完畢下面3項工作: 1.對android執行時廣播的應用程序

gulp node nvm npm bower 簡單介紹

知識點 瞭解什麼是 Node ,什麼是 NPM 掌握 Bower的使用 熟練使用Less/Sass 搭建一個自己的自動化工作流環境 自動編譯, 自動合併, 自動重新整理, 自動部署 GIT 與 GITHUB master 託管原始檔 g

websocket簡單介紹

對於websocket的理解,可能我和其他人的理解也是不一樣的,簡單的來說websocket如果分開那就是web和socket兩個,所以websocket便是是瀏覽器和底層程序正常通訊的重要途徑,我對websocket的理解是websocket本身是一種協議,瀏覽器想要和程序進行直接通訊那需要首

ZooKeeper簡單介紹

這篇博文我們簡單的介紹一下什麼是ZooKeeper,ZooKeeper的下載安裝,以及Zookeeper的整體概況,它們將作為黑暗中的探照燈指明我們前進的方向。 簡介 ZooKeeper是原始碼開放的分散式協調服務,由雅虎建立,是Google的開源實

JFreeChart詳解——各類的簡單介紹

好多專案中都有JFreeChart 的使用,查閱資料和結合實際使用這裡做一個總結,和詳解。簡單介紹:JFreeChart是一個免費建立圖片的java工具. 目前是最好的 java 圖形解決方案,基本能夠解決目前的圖形方面的需求,主要包括如下幾個方面:pie charts (2

CTE(Common Table Expressions)簡單介紹

上星期去上了個公開課,關於CTE(Common Table Expressions)。 CTE在MSSQL 2005的時候已經出現。當然,不是MSSQL的特有的,在Oracle裡也有。 CTE是在SQL語句裡定義一個臨時的資料集,然後在跟著的SQL語句裡面使用。 一下是一個

Apollo架構體系、Apollo執行原理、Apollo配置中心簡單介紹

筆者在工作中遇到如下問題,隨著程式功能越多,配置檔案不斷增加,一些功能的開關、伺服器地址、介面地址、不同環境的一些配置檔案不同,這些在每次釋出不同環境、更新專案時都比較繁瑣,後來學習微服務時接觸到了Spring Cloud Config配置中心,用了一段時間發現比之前方便不少,但是還是比較繁瑣和麻煩

FreeSWITCH第三方庫音訊簡單介紹

FreeSWITCH使用了大量的第三方庫,本文件主要介紹音訊相關庫的資訊: ① libbroadvoice BroadVoice是一種高清語音編解碼,支援窄帶8kHz的BV16和寬頻16kHz的BV32。 BroadVoice使用LGPL(Lesser Ge

Git簡單介紹

Git是什麼? Git是目前世界上最先進的開源的分散式版本控制系統(沒有之一),用於敏捷高效地處理任何或小或大的專案。 Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。 Git 與常用的版本

CSS簡單學習-CSS介紹和CSS引入方式

CSS作用和發展 CSS(Cascading Style Sheet),稱之為層疊樣式表 一種專門描述結構文件的變現方式文件,主要用於網頁風格設計,包括字型大小,顏色,以及元素的精確定位等。 在傳統的網頁設計裡,使用CSS能讓單調的HTML網頁更富表現力 作用:

23種設計模式介紹---- 創建型模式

接口 ret static 深復制 return 對象 相互 object c png 由於設計模式篇幅比較大,如果在一篇文章講完所有的設計模式的話不利於閱讀。於是我把它分為三篇文章 23種設計模式介紹(一)---- 創建型模式 23種設計模式介紹(二)---- 結構型模

OkHttp3的簡單使用

獲得 enqueue css 界面 字節 cat read 註意事項 字符串 一、導入 1)gradle方式: compile ‘com.squareup.okhttp3:okhttp:3.8.0‘(okhttp 最新版) compile ‘com.squareup.ok

fullpage.js簡單教程

style 準備工作 iba 耐心 兼容性 css3 動畫 lin per orm 最近準備做一個全屏滾動的網頁,在網上搜了一堆教程,結果大多都是一些很籠統的使用方法,對我這種耐心不超過3秒的笨蛋來說,很晦澀很籠統,所以打算邊研究邊自己寫個教程,有什麽不懂的,我再回來翻看筆

vue-router單頁應用簡單示例

問題 clas 做了 設置 new scope 文件的 log target 請先完成了項目初始化,具體請看我另一篇博文。vue項目初始化 看一下完成的效果圖,很典型的單頁應用。 .vue後綴名的單文件組件 這裏先說一下我對組件的理解。組件,顧名思義就是一組元素組成的

Spring Data 介紹

tin 可能 動態 javac 行高 spec 增加 核心概念 一個 簡介   Spring Data是什麽       Spring Data是一個用於簡化數據庫訪問,並支持雲服務的開源框架。其主要目標是使得對數據的訪問變得方便快捷 Spring Data JPA能幹什麽

Nginx之基本介紹

動靜分離 quit 共享內存 oct bytes err 配置文件 默認頁 日誌格式 這是一篇介紹Nginx基本信息和配置文件詳情的文章,適合入門者,如果你想深入了解Nginx請繞道 什麽是Nginx?   Nginx是輕量級,高性能,跨平臺的web服務器 Nginx的特點

差分約束系統簡單介紹入門

難點 兩個 技術 最短 短路徑 裏的 http 最大值 image 一直不知道差分約束是什麽類型題目,最近在寫最短路問題就順帶看了下,原來就是給出一些形如x-y<=b不等式的約束,問你是否滿足有解的問題 好神奇的是這類問題竟然可以轉換成圖論裏的最短路徑問題,下面開始詳

機器學習之numpy庫中常用的函數介紹

做的 string idt 維度 數據 round float 數值 array 1. mat() mat()與array的區別: mat是矩陣,數據必須是2維的,是array的子集,包含array的所有特性,所做的運算都是針對矩陣來進行的。 array是數組,數據可以是多