一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

2021-08-28 01:10BAT的烏托邦YourBatman Java教程

本文繼續(xù),繼續(xù)領(lǐng)略Java EE的企業(yè)應(yīng)用技術(shù),它曾在企業(yè)級(jí)開(kāi)發(fā)中叱咤風(fēng)云,來(lái)看看它現(xiàn)在的生存現(xiàn)狀。

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

前言

你好,我是方同學(xué)(YourBatman)

若你還不太清楚Java EE是什么,可先移步這里:什么是Java EE?

上篇文章已經(jīng)聊過(guò)了Java EE最重要的部分:Web應(yīng)用技術(shù),發(fā)現(xiàn)情況“慘不忍睹”,8項(xiàng)技術(shù)僅剩Servlet依舊保持主流,其它的均已淘汰或?yàn)l臨淘汰。“此景”詳情可移步閱讀:上篇文章。

本文繼續(xù),繼續(xù)領(lǐng)略Java EE的企業(yè)應(yīng)用技術(shù),它曾在企業(yè)級(jí)開(kāi)發(fā)中叱咤風(fēng)云,來(lái)看看它現(xiàn)在的生存現(xiàn)狀。為了便于理解,還是貼上這張分類圖:

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

所屬專欄

BATutopia-Java EE

相關(guān)下載

  • 工程源代碼:https://github.com/yourbatman/BATutopia-java-ee
  • 【女?huà)zKnife-Initializr工程】訪問(wèn)地址:http://152.136.106.14:8761
  • Java開(kāi)發(fā)軟件包(Mac):https://wangpan.yourbatman.cn/s/rEH0 提取碼:javakit
  • 程序員專用網(wǎng)盤上線啦,開(kāi)放注冊(cè)送1G超小容量,幫你實(shí)踐做減法:https://wangpan.yourbatman.cn

版本約定

  • Java EE:6、7、8
  • Jakarta EE:8、9、9.1

正文

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

Part2: 企業(yè)應(yīng)用技術(shù)

Enterprise Application Technologies,共13種規(guī)范。

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

1. Bean Validation

推薦學(xué)習(xí)指數(shù) 5

在后臺(tái)開(kāi)發(fā)過(guò)程中,對(duì)參數(shù)的校驗(yàn)成為開(kāi)發(fā)環(huán)境不可缺少的一個(gè)環(huán)節(jié)。比如參數(shù)不能為null,email必須符合email的格式,如果手動(dòng)進(jìn)行if判斷或者寫(xiě)正則表達(dá)式判斷無(wú)意開(kāi)發(fā)效率太低,在時(shí)間、成本、質(zhì)量的博弈中必然會(huì)落后。正所謂專業(yè)的事情交給專業(yè)的組件去做,我們可把校驗(yàn)層抽象出來(lái),這就是Bean Validation。

Bean Validation簡(jiǎn)直就是業(yè)務(wù)開(kāi)發(fā)中祛掉壞味道代碼的利器,完美的實(shí)現(xiàn)契約式編程,大大提高開(kāi)發(fā)效率,降低出錯(cuò)概率。

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.validation</groupId> 
  3.     <artifactId>jakarta.validation-api</artifactId> 
  4.     <version>2.0.2</version> 
  5. </dependency> 

代表API:

  • Validation、ConstraintViolation
  • @Valid、@GroupSequence、@ConvertGroup
  • @Notnull、@Min、@NotEmpty

Bean Validation的實(shí)現(xiàn)有Apache的 Bval和Hibernate Validator,前者可忽略,后者幾乎成為唯一實(shí)現(xiàn)。

2. EJB

推薦學(xué)習(xí)指數(shù)2

Enterprise JavaBeans它就是鼎鼎大名的EJB,也叫企業(yè)級(jí)JavaBean。EJB技術(shù)的誕生標(biāo)志著Java Beans的運(yùn)行正式從客戶端領(lǐng)域擴(kuò)展到服務(wù)器領(lǐng)域。

用于基于組件的事務(wù)性分布式編程。EJB不僅指定了bean格式,而且定義了運(yùn)行bean的容器必須提供的一組服務(wù)。因此,開(kāi)發(fā)人員無(wú)需擔(dān)心服務(wù)細(xì)節(jié),例如安全性,事務(wù)支持或任何遠(yuǎn)程對(duì)象訪問(wèn)。如此以至,想運(yùn)行EJB必須有EJB容器,如JBoss,WebLogic,WebSphere等......就問(wèn)你重不重?

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

API的GAV:

  • jakarta.ejb
  • jakarta.ejb-api

代表API:

  • EJBContext
  • @EJB、@DependsOn、@Singleton、@SessionBean、@Stateless

由EJB容器提供實(shí)現(xiàn)。

3. DI

推薦學(xué)習(xí)指數(shù)3

Dependency Injection該規(guī)范比較簡(jiǎn)單,約定了一些標(biāo)準(zhǔn)注解:

  • @Inject
  • @Named
  • @Qualifier
  • @Scope
  • @Singleton

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.inject</groupId> 
  3.     <artifactId>jakarta.inject-api</artifactId> 
  4.     <version>1.0.3</version> 
  5. </dependency> 

代表API:如上

CDI容器、Spring IoC容器、Guice容器等均有提供實(shí)現(xiàn)。

4. CDI

推薦學(xué)習(xí)指數(shù) 3

Contextual Dependency Injection上下文依賴注入。其實(shí)它包含兩個(gè)概念:

  • Context:上下文??梢越壎ㄉ芷?,可以與有狀態(tài)的組件交互
  • DI:依賴注入。以類型安全的方式注入一個(gè)組件到應(yīng)用中去,包括指定特定實(shí)現(xiàn)注入

Spring的容器我們熟悉,CDI就是Java EE的容器。

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.enterprise</groupId> 
  3.     <artifactId>jakarta.enterprise.cdi-api</artifactId> 
  4.     <version>2.0.2</version> 
  5. </dependency> 

代表API:

  • CDI、CDIProvider、Bean、InjectionPoint
  • @Model、@Stereotype、@Produces

5. JPA

推薦學(xué)習(xí)指數(shù) 4

Java Persistence API:Java持久層API。描述對(duì)象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中。

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.persistence</groupId> 
  3.     <artifactId>jakarta.persistence-api</artifactId> 
  4.     <version>2.2.3</version> 
  5. </dependency> 

代表API:

  • EntityManager
  • @Entity、@Column、@Cacheable
  • @ManyToMany、@ManyToOne、@NamedQuery

其實(shí)JPA的實(shí)現(xiàn)除了Hibernate,還有Eclipsellink,OpenJPA或Batoo。

6. JMS

推薦學(xué)習(xí)指數(shù) 3

Java Message Service:Java消息服務(wù)。兩個(gè)應(yīng)用程序之間需要進(jìn)行通信,我們使用一個(gè)JMS服務(wù),進(jìn)行中間的轉(zhuǎn)發(fā),通過(guò)JMS 的使用,我們可以解除兩個(gè)程序之間的耦合。也是我們常說(shuō)的MQ。

JMS有一個(gè)類似協(xié)議AMQP,請(qǐng)注意區(qū)分

Java EE幾十種技術(shù),“活著的”還剩幾何(企業(yè)應(yīng)用技術(shù)篇)

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.jms</groupId> 
  3.     <artifactId>jakarta.jms-api</artifactId> 
  4. </dependency> 

代表API:

  • JMSContext、JMSProducer、JMSConsumer
  • Message、TextMessage、MapMessage
  • MessageListener

ActiveMQ是對(duì)JMS的典型實(shí)現(xiàn)。

7. JavaMail

推薦學(xué)習(xí)指數(shù) 3

JavaMail:Java郵件。顧名思義,幫助我們發(fā)送Email電子郵件用的。方便Java開(kāi)發(fā)人員在應(yīng)用程序中實(shí)現(xiàn)郵件發(fā)送和接收功能而提供的一套標(biāo)準(zhǔn)開(kāi)發(fā)包,它支持一些常用的郵件協(xié)議,如SMTP,POP3,IMAP,還有MIME。

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.mail</groupId> 
  3.     <artifactId>jakarta.mail-api</artifactId> 
  4.     <version>1.6.7</version> 
  5. </dependency> 

代表API:

  • Address、BodyPart、Header
  • Transport、Multipart

并不是發(fā)郵件不重要,而是實(shí)際使用中我們大概率不需要關(guān)心其底層API,而使用更高層級(jí)的封裝工具。

8. JTA

推薦學(xué)習(xí)指數(shù) 3

Java Transaction API (JTA):用于描述Java EE框架中事務(wù)管理器與應(yīng)用程序,資源管理器,以及應(yīng)用服務(wù)器之間的事務(wù)通訊。簡(jiǎn)而言之:分布式事務(wù)規(guī)范。XA是分布式協(xié)議規(guī)范,而JAT是Java中對(duì)XA協(xié)議的實(shí)現(xiàn)。

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.transaction</groupId> 
  3.     <artifactId>jakarta.transaction-api</artifactId> 
  4.     <version>1.3.3</version> 
  5. </dependency> 

代表API:

  • Transaction、TransactionManager、TransactionSynchronizationRegistry
  • @Transactional、@TransactionScoped

9. Common Annotation

推薦學(xué)習(xí)指數(shù) 4

Common Annotations for the Java Platform:Java平臺(tái)通用注解。這就是我們特別熟悉的JSR 250 通用注解:

  • @Resource / @Resources
  • @PostConstruct
  • @PreDestroy
  • @@Generated:用于標(biāo)注某段代碼是生成的而非人寫(xiě)的,該注解基本不使用

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.annotation</groupId> 
  3.     <artifactId>jakarta.annotation-api</artifactId> 
  4.     <version>1.3.5</version> 
  5. </dependency> 

代表API:同上

值得注意的是,該jar 沒(méi)必要導(dǎo)入,因?yàn)樽訨DK 6開(kāi)始已經(jīng)被集成到Java SE內(nèi)部了。

10. JCA

推薦學(xué)習(xí)指數(shù) 1

Java EE Connector Architecture:Java連接體系架構(gòu),是對(duì)Java EE標(biāo)準(zhǔn)集的重要補(bǔ)充。因?yàn)樗⒅氐氖菍ava程序連接到非Java程序和軟件包中間件的開(kāi)發(fā)。

JCA的目標(biāo):企業(yè)應(yīng)用程序集成方面,它提供的標(biāo)準(zhǔn)化體系結(jié)構(gòu)讓Java EE組件能夠?qū)Ξ悩?gòu) EIS進(jìn)行“即插即用”的訪問(wèn),其中包括ERP、事務(wù)處理、老式數(shù)據(jù)庫(kù)系統(tǒng)等。

API的GAV:

  1. 無(wú)單獨(dú)Jar,是一種架構(gòu)說(shuō)明 

代表API:無(wú)

11. Batch

推薦學(xué)習(xí)指數(shù) 1

Batch Applications for the Java Platform:Java平臺(tái)的批處理規(guī)范。從它出生起就被認(rèn)為是抄襲Spring Batch項(xiàng)目的,所以沒(méi)啥好聊的~

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.batch</groupId> 
  3.     <artifactId>jakarta.batch-api</artifactId> 
  4.     <version>1.0.2</version> 
  5. </dependency> 

代表API:

  • Batchlet
  • PartitionMapper、PartitionCollector
  • JobOperator、BatchRuntimeException

12. Concurrent

推薦學(xué)習(xí)指數(shù)1

Concurrency Utilities for Java EE:Java企業(yè)平臺(tái)并發(fā)工具。額......希望是和企業(yè)平臺(tái)整合,所以定義了一堆借口。結(jié)果是:一句話,沒(méi)啥用,JUC足矣。

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.enterprise.concurrent</groupId> 
  3.     <artifactId>jakarta.enterprise.concurrent-api</artifactId> 
  4.     <version>1.1.2</version> 
  5. </dependency> 

代表API:

  • ContextService
  • ManagedTask
  • Trigger

13. Interceptors

推薦學(xué)習(xí)指數(shù) 1

它是Java EE的攔截器,和EJB一起使用。如@AroundInvoke、@Intercerptors

API的GAV:

  1. <dependency> 
  2.     <groupId>jakarta.interceptor</groupId> 
  3.     <artifactId>jakarta.interceptor-api</artifactId> 
  4.     <version>1.2.5</version> 
  5. </dependency> 

代表API:

  • InvocationContext
  • @Interceptor、@AroundInvoke、@AroundTimeout、@AroundConstruct

總結(jié)

企業(yè)應(yīng)用技術(shù)是Java EE為企業(yè)級(jí)開(kāi)發(fā)量身打造的一系列技術(shù)合集,曾經(jīng)叱咤市場(chǎng)數(shù)十年,現(xiàn)在回頭再看早已風(fēng)頭不再,不禁讓人感嘆。

共包含13項(xiàng)具體技術(shù),其中:

1個(gè)仍為主流:Bean Validation

2個(gè)還比較重要:JPA、Common Annotation

其它的存在感已越來(lái)越弱,幾近消亡

Web應(yīng)用技術(shù) + 企業(yè)應(yīng)用技術(shù)覆蓋了Java EE體系的核心內(nèi)容,下文將繼續(xù)補(bǔ)充剩下的3個(gè)part。

原文鏈接:https://mp.weixin.qq.com/s/PEHLEVdyZpLhoah9DzL0xQ

延伸 · 閱讀

精彩推薦
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
  • Java教程Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
主站蜘蛛池模板: 深夜精品高中女学生 | 男生和老师一起差差差 | 日韩高清在线高清免费 | 亚洲国产中文字幕在线视频综合 | 午夜精品久久久久 | 免费视频专区一国产盗摄 | 日本成人免费在线视频 | 欧亚专线欧洲m码可遇不可求 | 乌克兰粉嫩摘花第一次 | 天天天综合网 | 91久久偷偷做嫩草影院免费看 | 青草久久网 | h黑寡妇一级毛片 | 国产成人精品日本亚洲网址 | 1986葫芦兄弟全集免费观看第十集 | 免费看男人狂躁女人 | 成年人免费看的视频 | 99精品网站 | 国产欧美精品一区二区三区四区 | 男人狂躁女人gif动态图 | h版小说| 国产区成人综合色在线 | 日本成人黄色网址 | 波多野结衣同性系列698 | 赤色疑惑 | 美女被狂揉下部羞羞动漫 | 农村美女沟厕嘘嘘被偷看 | 欧美专区在线观看 | 精品精品久久宅男的天堂 | 日韩在线观看一区二区不卡视频 | 亚洲精品成人456在线播放 | 免费观看在线观看 | 男人操男人 | 日本爽p大片免费观看 | 亚洲福利一区 | 嫩草视频在线观看免费 | 天堂69亚洲精品中文字幕 | 369看片网| 精品一区二区高清在线观看 | 4444kk在线看片 | 精品久久久久久亚洲 |