java ejb jsp 架構_JavaEE架構

B/S 體系結構

cbc519f0a98b

image.png

Java EE 經典架構

cbc519f0a98b

image.png

Java EE 13規范

JDBC

cbc519f0a98b

image.png

JDBC 對象與接口

java.sql.DriverManager:

用于管理JDBC驅動的服務類,當JDBC驅動加載至內存后,DriverManager會自動注冊JDBC驅動,然后通過getConnection方法建立Java應用至DBMS的連接;

java.sql.Connection:

數據庫連接對象,通過createStatement創建SQL聲明;

java.sql.Statement:

SQL語句接口,通過executeQuery或executeUpdate執行一個靜態的SQL語句;

java.sql.ResultSet:SQL語句執行結果對象,包含了若干維護表記錄的操作方法;

java.sql.SQLException:SQL操作期間的異常處理,所以異常均通過該類拋出;

JDBC 連接池

cbc519f0a98b

image.png

JNDI

Java Naming and Directory Interface(Java命名和目錄服務接口),是命名目錄服務的抽象接口集合,為企業級應用提供了統一的標準化連接,使Java能無縫獲取任何可目錄化的企業信息。

JNDI包含API與SPI(服務提供接口),JNDI SPI用于命名和目錄服務的設計與實現,使各類數據服務標準化,JNDI API用于快速方便的訪問任何目錄服務。

JNDI由3個包組成:

javax.naming:定義了命名服務的類型,以及所有 存取標準接口;

javax.naming.directory:是javax.naming的擴展,提供了所有對于目錄服務的 訪問標準操作與接口;

javax.naming.spi:定義了命名目錄的服務接口,遵循這些標準接口,開發者能夠為不同數據服務編寫出統一的命名目錄服務;

RMI

定義

基于 TCP/IP 套接字方式的分布式調用,是 Java 開發分布式應用的基礎,簡單來說,就是把接口(Interface)與實現從本地移到了遠程的服務器上,從而實現了接口與實現的分布式調用。

cbc519f0a98b

image.png

Servlet

Servlet的定義:

是部署在Java的Web服務器上的組件,整個Java服務端程序都構建在Servlet之上,以多線程方式提供服務,具有效率高,可擴展,可移植的特點;

JSP的定義:

Java Server Page,所有JSP頁面在執行時都會被編譯成Servlet,由JSP頁面生成的Serlvet叫作“JSP頁面實現類”,甚至可以把JSP認為是嵌入了Java語句的HTML頁面文件;

Servlet / JSP的關系:

在頁面展現上,Servlet通過輸出HTML語句來實現動態頁面,如果SUN不推出JSP標準,那么Java的Web頁面開發(動態頁面的交互過程)將會十分痛苦

EJB

整體結構

cbc519f0a98b

image.png

從上圖中可以看到,JavaBEAN,RMI與JNDI,在EJB中是基礎,起到關鍵作用;

1、EJB被成功發布后,客戶端通過JNDI獲得對HOME接口的引用;

2、然后通過HOME對象得到EJB對象;

3、最后,客戶端就可以通過EJB對象來調用EJB實例的業務方法

EJB作用示意圖

cbc519f0a98b

image.png

EJB包括3種類型的Bean:

會話Bean(Session):用于描述業務處理過程,可以作為其他Bean的客戶端,用來調用其他Bean;

實體Bean(Entity):用于描述數據,提供了持久數據的操作與表示,可同時與多個客戶機進行交互,運行結束后,其狀態仍能保留;有2種類型的實體Bean,CMP與BMP;

消息驅動Bean(Message-Driven):集成了JMS和EJB的功能,不向客戶端開放,只用于系統內部的交互;

JTA

JTA(Java Transaction API),Java事務API,其定義為:

是一組事務接口定義,描述了對于不同資源(包括數據庫,EJB,服務通訊等)的事務處理規范;

需要注意的是:

JTA只提供了接口,并沒有提供實現類,完全需要自行實現;

JTA可以實現同一事務對應不同的資源,但是不能實際事務的嵌套;

JTA的主要組成

javax.transaction.UserTransactoin定義了事務的操作范圍,包括啟動、提交以及回滾;

javax.transaction.xa.XAResource是面對各類資源的事務接口,JTA采用XA接口規范作為自身的資源標準,所以,只要是符合XA的資源,JTA都能夠處理

JMS

JMS(Java Message Service)的定義

提供了一列創建、發送、接收、和讀取企業消息的通用方法;

JMS中的消息通訊都是異步方式的;

JMS可以處理由其他類型客戶端所發消息;

具體JMS應用的組成

客戶端:用來處理消息的應用,分為JMS客戶與非JSM客戶端,區別在于實現的技術有所不同;

消息(Message):在不同應用或組件中進行異常通訊的請求、事件或報告;

JMS Provider:實現了JMS標準的應用服務;

被管理對象:事先配置的JMS對象,由管理員為使用JMS的客戶端所創建

JMS的消息傳遞方式

PTP:點對點方式,以隊列的方式進行消息的處理;

Pub/Sub:發布/訂閱方式,包含了“消息調適器(Topic)”,通過這個調用器來處理消息;

2種方式也可以同時存在一個應用中;

cbc519f0a98b

image.png

Java EE 輕量級架構

Mybatis

MyBatis是一個數據持久層(ORM)框架,在實體類和關系數據庫之間建立了sql映射關系,是一種半自動化的ORM實現。

Spring

特點:Ioc/DI(控制反轉/依賴注入)、AOP(面向切面)

Spring 包含并管理 應用對象 的配置和生命周期,在這個意義上它是一種容器,Spring 可以配置bean如何被創建,基于一個可配置原型 (prototype),bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例,以及bean之間是如何相互關聯的。

cbc519f0a98b

image.png

cbc519f0a98b

image.png

Spring容器了很多服務,但這些服務并不是默認打開的,應用需要某種服務,需要先指明使用該服務,如果應用使用的服務很少,如:只使用了spring核心服務,那么我們可以認為此時應用屬于輕量級的,如果應用使用了spring提供的大部分服務,這時應用就屬于重量級。

EJB容器就因為它默認為應用提供了EJB規范中所有的功能,所以它屬于重量級。

SpringBoot

核心

自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置

起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。

命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。

Actuator:能夠監控運行中的Spring Boot應用程序

經典架構

cbc519f0a98b

image.png

輕量級架構

cbc519f0a98b

image.png

輕量級微服務架構

cbc519f0a98b

image.png

輕量級前后端分離架構

cbc519f0a98b

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453585.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音視頻中的CBR,VBR,ABR

視頻碼率CBR和VBR 固定碼率(CBR)與可變碼率(VBR) 一般在我們輸出視頻文件的時候都會碰到一個選擇即CBR與VBR,CBR的英文全稱是Constant Bit Rate翻譯過來是固定碼率,就是說每一秒種的畫面如果看做是一個…

fifo java_java – 如何保證ThreadPoolExecutor中的FIFO執行順序

我用這行代碼創建一個ThreadPoolExecutor:private ExecutorService executor new ThreadPoolExecutor(5, 10, 120, TimeUnit.SECONDS, new ArrayBlockingQueue(20, true));然后,我運行25個任務(T01到T25),所以情況是:>目前正在運行的5個任務(T01到T0…

HihoCoder 1671 DFS

本以為是個簡單的水題,好吧,其實就是個水題,雖然我還是…… 題意的理解上有一點小小的問題orz,這里的括號里的字母是可以看成一個整體的,可以看作一個字母來進行反轉, 比如說,(abc(de))&#xf…

avs 中國音視頻標準DRA 中音頻標準及應用

DRA 是Digital Rise Audio的縮寫。是廣州廣晟數碼技術有限公司(Digital Rise Technology)開發的一項數字音頻編碼技術,目前是音頻編碼的國家標準。2007年1月被批準成為中國電子行業標準(標準號SJ/T11368-2006)。DRA音頻標準可應用…

UWP數據綁定

已針對 Windows 10 上的 UWP 應用更新。 有關 Windows 8.x 文章,請參閱存檔 ] 數據綁定是你的應用 UI 用來顯示數據的一種方法,可以選擇與該數據保持同步。 借助數據綁定,你可以將關注的數據從關注的 UI 中分離開來,從而可形成一個…

資源鏈接

http://cn.epubee.com/ 電子書 http://www.feemic.cn/mooc_search/1002384010 中國大學mooc視頻下載 http://www.icourse163.org 中國大學mooc http://www.xuetangx.com 學堂在線 http://yun.java1234.com/ 視頻搜索 http://www.52studyit.com/轉載于:https://www.cnblogs.co…

最大開源代碼sourceforge 簡介 及視音頻方面常用的開源代碼

所有的音視頻凱源代碼在這里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下載分析,視頻不懂請發郵件給我,幫你分析。 0.視頻項目 0.1 VLC media player VLC 多媒體播放器(最初為VideoLAN Clien…

[轉]被當做狗和雞來驅趕的百姓

原文鏈接:知乎 杜甫寫過許多好詩。 好詩,不一定是辭藻美、場面好、色色入畫。 不一定是吳楚東南坼,乾坤日夜浮。不一定是五更鼓角聲悲壯,三峽星河影動搖。 不一定是星垂平野闊,月涌大江流。不一定是細雨魚兒出&#xf…

背包問題(動態規劃)

本篇文章作為個人的背包問題學習資料,來自轉載 dd大牛的《背包九講》. P01: 01背包問題 題目 有N件物品和一個容量為V的背包。第i件物品的費用是c[i],價值是w[i]。求解將哪些物品裝入背包可使這些物品的費用總和不超過背包容量,且價值總和最大…

notepad編譯java_Notepad++直接編譯運行java代碼的具體步驟

最近不少朋友表示還不會Notepad直接編譯運行java代碼的操作步驟,使用下面小編就帶來了Notepad直接編譯運行java代碼的操作方法哦,一起去看看吧。Notepad直接編譯運行java代碼的具體步驟下載Notepad,找到Plugin Manager。插件--->Plugin Ma…

基于linux 的2048

于 debian 接著寫 2048, 的影響,如下面的: 感興趣的朋友能夠在這里(http://download.csdn.net/download/kamsau/7330933)下載。 版權聲明:本文博客原創文章,博客,未經同意,不得轉載。…

架構師之路

1. 架構師之路(1)---面向過程和面向對象 1、引言 機算機科學是一門應用科學,它的知識體系是典型的倒三角結構,所用的基礎知識并不多,只是隨著應用領域和方向的不同,產生了很多的分支,所以說編程并不是一件很困難的…

r語言做斷軸_R語言用nls做非線性回歸以及函數模型的參數估計

非線性回歸是在對變量的非線性關系有一定認識前提下,對非線性函數的參數進行最優化的過程,最優化后的參數會使得模型的RSS(殘差平方和)達到最小。在R語言中最為常用的非線性回歸建模函數是nls,下面以car包中的USPop數據集為例來講解其用法。數…

day8-異常處理與網絡編程

第1章 異常處理 1.1 什么是異常? 1.1.1 描述 #1 什么是異常? # 異常是錯誤發生的信號,一旦程序出錯,就會產生一個異常,應用程序未處理該異常, # 異常便會拋出,程序隨之終止 異常就是程序運行時發生錯誤的信…

常用數據結構的一部分類

VECTORvector是可以實現自動增長的對象數組。java.util.vector提供了向量類(vector)來實現向量數組的功能。在C和C中可以使用指針來實現動態數組,java通過提供大量的類庫來彌補這個功能。向量類的對象 可以向其中隨意插入不同類的對象&#x…

進程(并發,并行) join start 進程池 (同步異步)

一、背景知識 顧名思義,進程即正在執行的一個過程。進程是對正在運行程序的一個抽象。進程的概念起源于操作系統,是操作系統最核心的概念,也是操作系統提供的最古老也是最重要的抽象概念之一。操作系統的其他所有內容都是圍繞進程的概念展開的…

面對職業誘惑,我們如何作出理性的選擇?

版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章原始出版、作者信息和本聲明。否則將追究法律責任。本文地址:http://blog.csdn.net/jobchanceleo/archive/2007/07/08/1682484.aspx 分享一個發生在我們身邊的案例&a…

xamarin怎么調用java的_XamarinSQLite教程在Xamarin.Android項目中使用數據庫

XamarinSQLite教程在Xamarin.Android項目中使用數據庫在Xamarin.Android項目中使用預設數據庫的具體操作步驟如下:(1)創建一個Xamarin.Android項目,如AndroidSQLiteDemo。(2)在AndroidSQLiteDemo項目的Resources文件夾下創建一個Raw文件夾。(3)將上一節中…

Selector的一些state使用

(一)Selector的基本狀態android:state_selected 控件選中狀態,可以為true或falseandroid:state_focused 控件獲得焦點狀態,可以為true或falseandroid:state_pressed 控件點擊狀態,可以為true或falseandroid:state_enabled 控件使能狀態&#…

服務框架及服務治理組件——業界調研

聲明:主要內容來自公司內部 對業界的調研,不一定恰當、準確、實時。 表格文字較多,APP閱讀體驗較差 團隊服務相關組件\方案通信框架監控負載均衡\路由是否開源騰訊完全自研;BG內部自治,每個BG有自己相應的解決方案,單獨…