前言大家好,我是方同学(你的蝙蝠侠)如果你还不知道什么是JavaEE,可以先移步这里:什么是JavaEE?JavaEE最重要的部分在之前的文章:Web应用技术中已经讨论过了,发现情况“惨不忍睹”。八种技术中,只有Servlet仍然是主流,其他的已经被淘汰或濒临淘汰。《这一幕》详细可阅读:上一篇。本篇继续,继续领略JavaEE的企业应用技术,在企业级开发中已是集大成者,一起来看看它目前的生存状态吧。为了方便理解,我还是贴这个分类图:相关专栏BATutopia-JavaEE相关下载项目源码:https://github.com/yourbatman/BATutopia-java-ee【NuwaKnife-Initializr项目】访问地址:http://152.136.106.14:8761Java开发软件包(Mac):https://wangpan.yourbatman.cn/s/rEH0提取码:javakit程序员专用网盘上线,开启注册送1G超-小容量,帮你练减法:https://wangpan.yourbatman.cn版本约定JavaEE:6,7,8JakartaEE:8,9,9.1TextPart2:EnterpriseApplicationTechnologies,共13个规范。一、BeanValidation推荐学习索引5在后台开发过程中,参数的验证已经成为开发环境不可或缺的一部分。比如参数不能为null,邮件必须符合邮件格式。如果手动判断if或者写一个正则表达式判断无心开发效率太低,必然会在时间、成本、质量的博弈中落伍。所谓专业的东西交给专业的组件,我们可以抽象出验证层,也就是BeanValidation。BeanValidation简直就是业务开发中去除难闻代码的利器。完美实现合约编程,大大提高开发效率,降低出错概率。API的GAV:jakarta.validationjakarta.validation-api2.0.2代表API:Validation,ConstraintViolation@Valid、@GroupSequence、@ConvertGroup、@Notnull、@Min、@NotEmptyBeanValidation的实现有Apache的Bval和HibernateValidator,前者可以忽略,后者几乎是唯一的实现。2.EJB推荐学习索引2EnterpriseJavaBeans就是大名鼎鼎的EJB,也叫enterpriseJavaBean。EJB技术的诞生,标志着JavaBeans的运行正式从客户端领域扩展到服务器领域。用于基于组件的事务分布式编程。EJB不仅规定了bean的格式,还定义了运行bean的容器必须提供的一组服务。因此,开发人员无需担心服务细节,例如安全性、事务支持或任何远程对象访问。以至于如果你要运行EJB,你必须有一个EJB容器,比如JBoss、WebLogic、WebSphere等等……对你来说重要吗?API的GAV:jakarta.ejbjakarta.ejb-api代表API:EJBContext@EJB、@DependsOn、@Singleton、@SessionBean、@Stateless由EJB容器实现。3.DI推荐学习索引3DependencyInjection这个规范比较简单,约定了一些标准注解:@Inject@Named@Qualifier@Scope@SingletonAPI的GAV:jakarta.injectjakarta.inject-api1.0.3代表API:上面的CDI容器、SpringIoC容器、Guice容器等都提供了实现。4.CDI推荐学习索引3ContextualDependencyInjection上下文依赖注入。其实它包含两个概念:Context:语境。您可以绑定生命周期并与有状态组件交互DI:依赖注入。以类型安全的方式将组件注入到应用程序中,包括指定特定的实现以注入到Spring容器中。我们对它很熟悉。CDI是JavaEE容器。APIGAV:jakarta.enterprisejakarta.enterprise.cdi-api2.0.2代表API:CDI,CDIProvider,Bean,InjectionPoint@Model,@Stereotype,@Produces5。JPA推荐学习索引4JavaPersistenceAPI:Java持久层API。描述对象-关系表的映射关系,将运行时的实体对象持久化到数据库中。API的GAV:jakarta.persistencejakarta.persistence-api2.2.3代表API:EntityManager@Entity,@Column,@Cacheable@ManyToMany,@ManyToOne,@NamedQuery其实实现JPA的不只是Hibernate,还有Eclipselink,OpenJPA或者Batoo。6.JMS推荐学习索引3JavaMessageService:Java消息服务。需要两个应用程序之间的通信。我们使用JMS服务进行中间转发。通过使用JMS,我们可以将两个程序解耦。也就是我们常说的MQ。JMS有一个类似于AMQP的协议。请注意区分API的GAV:jakarta.jmsjakarta.jms-api代表API:JMSContext,JMSProducer,JMSConsumerMessage,TextMessage,MapMessageMessageListenerActiveMQ是JMS的典型实现。7.JavaMail推荐学习索引3JavaMail:Java邮件。顾名思义,就是用来帮助我们发送Email的。为Java开发者提供的一套标准开发包,用于在应用程序中实现邮件收发功能。它支持一些常用的邮件协议,如SMTP、POP3、IMAP和MIME。APIGAV:jakarta.mailjakarta.mail-api1.6.7代表API:Address,BodyPart,HeaderTransport和Multipart对于发送邮件来说并不重要,但是我们在实际使用中很可能不需要关心底层的API,而是使用更高级的封装工具。8、JTA推荐学习索引3JavaTransactionAPI(JTA):用于描述JavaEE框架中事务管理器与应用程序、资源管理器、应用服务器之间的事务通信。简而言之:分布式事务规范。XA是分布式协议规范,JAT是XA协议在Java中的实现。APIGAV:jakarta.transactionjakarta.transaction-api1.3.3代表API:Transaction、TransactionManager、TransactionSynchronizationRegistry@Transactional,@TransactionScoped9。CommonAnnotation推荐学习索引4CommonAnnotationsfortheJavaPlatform:Java平台通用注解。这是我们特别熟悉的JSR250通用注解:@Resource/@Resources@PostConstruct@PreDestroy@@Generated:用来标记某段代码是生成的,而不是人写的。这个注解基本没有使用API??的GAV:jakarta.annotationjakarta.annotation-api1.3.5代表API:值得注意的是jar是不需要Import的,因为从JDK6开始就集成到JavaSE中了。10.JCA推荐学习索引1JavaEECon??nectorArchitecture:Java连接架构是对JavaEE标准的重要补充放。因为它专注于开发将Java程序连接到非Java程序和软件包的中间件。JCA的目标:在企业应用集成方面,提供一个标准化的架构,使JavaEE组件能够“即插即用”地访问异构EIS,包括ERP、事务处理、遗留数据库系统等。API的GAV:没有单独的Jar,是一种架构描述代表API:无11.批处理推荐学习索引1BatchApplicationsfortheJavaPlatform:Java平台的批处理规范。从诞生之日起,就被认为抄袭了SpringBatch项目,所以无话可说~APIGAV:jakarta.batchjakarta.batch-api1.0.2代表API:BatchletPartitionMapper、PartitionCollectorJobOperator、BatchRuntimeException12。并发推荐学习索引1ConcurrencyUtilitiesforJavaEE:Java企业平台并发工具。呃……希望是和企业平台集成,所以定义了一堆借口。结果是:一句话,没用,JUC就够了。API的GAV:jakarta.enterprise.concurrentjakarta.enterprise.concurrent-api1.1.2代表API:ContextServiceManagedTaskTrigger13。拦截器推荐学习索引1JavaEE拦截器,与EJB配合使用。比如@AroundInvoke和@IntercerptorsAPI的GAV:jakarta.interceptorjakarta.interceptor-api1.2.5代表API:InvocationContext@Interceptor,@AroundInvoke,@AroundTimeout,@AroundConstruct总结企业应用技术是JavaEE为企业级开发量身定做的一系列技术集合。让人感叹。一共包含了13个具体技术,其中:1个还是主流:BeanValidation2个还是比较重要的:JPA,CommonAnnotation其他的越来越弱,快要死了Web应用技术+企业应用技术涵盖了JavaEE的核心内容关于系统,下面会继续补充剩下的三个部分。