成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java EE幾十種技術,“活著的”還剩幾何(企業應用技術篇)

開發 后端
本文繼續,繼續領略Java EE的企業應用技術,它曾在企業級開發中叱咤風云,來看看它現在的生存現狀。

[[419932]]

前言

你好,我是方同學(YourBatman)

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

上篇文章已經聊過了Java EE最重要的部分:Web應用技術,發現情況“慘不忍睹”,8項技術僅剩Servlet依舊保持主流,其它的均已淘汰或瀕臨淘汰。“此景”詳情可移步閱讀:上篇文章。

本文繼續,繼續領略Java EE的企業應用技術,它曾在企業級開發中叱咤風云,來看看它現在的生存現狀。為了便于理解,還是貼上這張分類圖:

所屬專欄

BATutopia-Java EE

相關下載

  • 工程源代碼:https://github.com/yourbatman/BATutopia-java-ee
  • 【女媧Knife-Initializr工程】訪問地址:http://152.136.106.14:8761
  • Java開發軟件包(Mac):https://wangpan.yourbatman.cn/s/rEH0 提取碼:javakit
  • 程序員專用網盤上線啦,開放注冊送1G超小容量,幫你實踐做減法:https://wangpan.yourbatman.cn

版本約定

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

正文

Part2: 企業應用技術

Enterprise Application Technologies,共13種規范。

1. Bean Validation

推薦學習指數 5

在后臺開發過程中,對參數的校驗成為開發環境不可缺少的一個環節。比如參數不能為null,email必須符合email的格式,如果手動進行if判斷或者寫正則表達式判斷無意開發效率太低,在時間、成本、質量的博弈中必然會落后。正所謂專業的事情交給專業的組件去做,我們可把校驗層抽象出來,這就是Bean Validation。

Bean Validation簡直就是業務開發中祛掉壞味道代碼的利器,完美的實現契約式編程,大大提高開發效率,降低出錯概率。

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的實現有Apache的 Bval和Hibernate Validator,前者可忽略,后者幾乎成為唯一實現。

2. EJB

推薦學習指數2

Enterprise JavaBeans它就是鼎鼎大名的EJB,也叫企業級JavaBean。EJB技術的誕生標志著Java Beans的運行正式從客戶端領域擴展到服務器領域。

用于基于組件的事務性分布式編程。EJB不僅指定了bean格式,而且定義了運行bean的容器必須提供的一組服務。因此,開發人員無需擔心服務細節,例如安全性,事務支持或任何遠程對象訪問。如此以至,想運行EJB必須有EJB容器,如JBoss,WebLogic,WebSphere等......就問你重不重?

API的GAV:

  • jakarta.ejb
  • jakarta.ejb-api

 

代表API:

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

由EJB容器提供實現。

3. DI

推薦學習指數3

Dependency Injection該規范比較簡單,約定了一些標準注解:

  • @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容器等均有提供實現。

4. CDI

推薦學習指數 3

Contextual Dependency Injection上下文依賴注入。其實它包含兩個概念:

  • Context:上下文。可以綁定生命周期,可以與有狀態的組件交互
  • DI:依賴注入。以類型安全的方式注入一個組件到應用中去,包括指定特定實現注入

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

推薦學習指數 4

Java Persistence API:Java持久層API。描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。

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

其實JPA的實現除了Hibernate,還有Eclipsellink,OpenJPA或Batoo。

6. JMS

推薦學習指數 3

Java Message Service:Java消息服務。兩個應用程序之間需要進行通信,我們使用一個JMS服務,進行中間的轉發,通過JMS 的使用,我們可以解除兩個程序之間的耦合。也是我們常說的MQ。

JMS有一個類似協議AMQP,請注意區分

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是對JMS的典型實現。

7. JavaMail

推薦學習指數 3

JavaMail:Java郵件。顧名思義,幫助我們發送Email電子郵件用的。方便Java開發人員在應用程序中實現郵件發送和接收功能而提供的一套標準開發包,它支持一些常用的郵件協議,如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

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

8. JTA

推薦學習指數 3

Java Transaction API (JTA):用于描述Java EE框架中事務管理器與應用程序,資源管理器,以及應用服務器之間的事務通訊。簡而言之:分布式事務規范。XA是分布式協議規范,而JAT是Java中對XA協議的實現。

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

推薦學習指數 4

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

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

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 沒必要導入,因為自JDK 6開始已經被集成到Java SE內部了。

10. JCA

推薦學習指數 1

Java EE Connector Architecture:Java連接體系架構,是對Java EE標準集的重要補充。因為它注重的是將Java程序連接到非Java程序和軟件包中間件的開發。

JCA的目標:企業應用程序集成方面,它提供的標準化體系結構讓Java EE組件能夠對異構 EIS進行“即插即用”的訪問,其中包括ERP、事務處理、老式數據庫系統等。

API的GAV:

  1. 無單獨Jar,是一種架構說明 

代表API:無

11. Batch

推薦學習指數 1

Batch Applications for the Java Platform:Java平臺的批處理規范。從它出生起就被認為是抄襲Spring Batch項目的,所以沒啥好聊的~

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

推薦學習指數1

Concurrency Utilities for Java EE:Java企業平臺并發工具。額......希望是和企業平臺整合,所以定義了一堆借口。結果是:一句話,沒啥用,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

推薦學習指數 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

總結

企業應用技術是Java EE為企業級開發量身打造的一系列技術合集,曾經叱咤市場數十年,現在回頭再看早已風頭不再,不禁讓人感嘆。

共包含13項具體技術,其中:

1個仍為主流:Bean Validation

2個還比較重要:JPA、Common Annotation

其它的存在感已越來越弱,幾近消亡

 

Web應用技術 + 企業應用技術覆蓋了Java EE體系的核心內容,下文將繼續補充剩下的3個part。

 

責任編輯:武曉燕 來源: BAT的烏托邦
相關推薦

2021-08-26 00:22:57

Java EE技術Web

2021-08-31 19:12:51

Java服務安全

2023-12-06 09:27:09

人工智能區塊鏈

2024-01-22 08:15:42

API協議設計

2016-05-30 10:45:17

2022-10-25 15:55:13

2013-07-19 09:09:06

中小企業技術投資虛擬化

2024-03-14 11:12:28

2020-03-17 12:00:06

人工智能數據科學新冠病毒

2021-03-22 09:00:00

IT人工智能技術

2023-07-25 13:07:59

2022-07-06 09:00:00

DevOpsIT技術債務

2018-11-02 08:53:15

2015-06-02 10:08:51

布線技術光纖

2018-01-15 11:41:33

代碼網絡運維研發

2009-12-09 10:48:50

ibmdwLotus

2022-04-24 12:46:59

網絡安全威脅事件安全運營

2011-05-30 09:17:18

光纖

2021-03-29 10:56:50

技術資訊

2023-09-12 13:42:00

數據庫數據庫緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕久久精品 | 91 在线 | 国产精品久久久久久久三级 | 色综合99| 日韩中文字幕 | 呦呦在线视频 | 国产精品a久久久久 | 午夜视频免费网站 | 日韩精品一区二区三区中文在线 | 久久1区| 精品亚洲永久免费精品 | 久久小视频 | 国产精产国品一二三产区视频 | 99精品久久久久久久 | 成人在线免费观看视频 | 一区二区三区四区不卡视频 | 亚洲精品一区二区三区中文字幕 | 日韩欧美在线观看 | 午夜国产精品视频 | 97日韩精品| 亚洲国产成人一区二区 | 日韩在线免费视频 | 人人干人人舔 | 成人av播放| 日韩欧美三区 | 久久国产欧美日韩精品 | 孰女乱色一区二区三区 | 亚洲精品久久久久久久久久久久久 | 欧美日韩久久久久 | 综合一区二区三区 | 国产美女久久久 | 91免费看片神器 | 国产亚洲一区二区三区在线 | 精品久久99 | 天天久久| 一级黄色片美国 | 成人精品鲁一区一区二区 | 亚洲a视频| 久久精品亚洲国产奇米99 | 国产精品久久性 | 欧产日产国产精品视频 |