Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >EJB JPA体系结构

EJB JPA体系结构
EN

Stack Overflow用户
提问于 2015-10-21 08:27:47
回答 1查看 75关注 0票数 0

我有一个使用EJB和JPA的应用程序。目前我有以下架构:

实体:ActionEntity

服务:ActionService

实体是JPA实体,服务是所有CRUD操作的实现位置。ActionService实现了GenericService接口(DAO操作)

代码语言:javascript
运行
AI代码解释
复制
public abstract class GenericServiceImpl<T, PK> implements GenericService<T, PK> {

    @PersistenceContext
    protected EntityManager em;

    private Class<T> type;

    public GenericServiceImpl(Class<T> t) {
        this.type = t;
    }

    @Override
    public T create(final T t) {
        this.em.persist(t);
        return t;
    }

    @Override
    public void delete(final PK id) {
        this.em.remove(this.em.getReference(type, id));
    }

    @Override
    public T find(final PK id) {
        return (T) this.em.find(type, id);
    }

    @Override
    public T update(final T t) {
        return this.em.merge(t);    
    }
}

因此,ActionServiceAction实体的DAO。我想知道这是不是一个好的架构?

Action创建一个DAO是不是更好,例如ActionDao,它只实现基本的DAO操作。然后,ActionService可以实现自己的create方法,该方法具有一些额外的业务逻辑,并最终调用ActionDao?或者你会不会认为这有点过头了?

EN

回答 1

Stack Overflow用户

发布于 2015-10-21 08:49:44

嗯,将服务(业务逻辑)层与数据层分离是一种常见的做法。这种方法实际上有多个好处:

  1. 您将能够在一个服务调用中对多个简单的DAO调用进行分组,这反过来将帮助您轻松地处理事务
  2. 另一个想法是,当您决定切换到任何其他存储(XML或NoSQL)或者您决定将JPA切换到普通的Hibernate

时,提取DAO层将使您的工作变得更容易。

因此,基本上这就是SRP的主要思想-职责分离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33254394

复制
相关文章
JDK与JRE的区别
JDK是Java Development Kit的缩写,它是功能齐全的Java SDK。JDK拥有JRE所拥有的一切,还有很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。JDK能够创建和编译程序。JDK包含以下几个部分:
黑洞代码
2021/01/14
7890
jdk和jre有什么区别_jdk与jre的关系
JDK与JRE 在安装的过程中各位可能注意到了JRE这个名词,下面我们来聊聊JDK和JRE的关系和区别。  JDK:它是Java开发运行环境,在程序员的电脑上当然要安装JDK;  JRE:Java Runtime Environment它是Java运行环境,如果你不需要开发只需要运行Java程序,那么你可以安装JRE。例如程序员开发出的程序最终卖给了用户,用户不用开发,只需要运行程序,所以用户在电脑上安装JRE即可。  JDK包含了JRE。  JRE中包含虚拟机JVM JRE: Java Runtime Environment JDK:Java Development Kit JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。 JRE根据不同操作系统(如:windows,linux等)和不同JRE提供商(IBM,ORACLE等)有很多版本,最常用的是Oracle公司收购SUN公司的JRE版本。 简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,俺发现事jdk/bin目录里比jre7/bin多了一套Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。
Java架构师必看
2022/05/26
1.1K0
jdk和jre有什么区别_jdk与jre的关系
JDK,JRE,JVM区别与联系
JVMJDKEclipseJava企业应用 很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。 今天特写此文,来整理下三者的关系。 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国 内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比 SUN的JDK高的多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。 JDK有以下三种版本: J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序 我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库 供我们使用。 JRE:Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE 下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。 JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。 下图很好的表面了JDK,JRE,JVM三者间的关系: 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些 JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
Java学习123
2021/12/28
1.6K0
JVM、JRE、JDK的作用与区别
在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。
算法与编程之美
2022/05/23
1.3K0
JAVA JVM JRE JDK
https://stackoverflow.com/questions/11547458/what-is-the-difference-between-jvm-jdk-jre-openjdk
平凡的学生族
2019/05/25
1.3K0
macOS:卸载JRE或JDK
本来打算在我的macbook pro上安装JDK,一不小心安装了jre。linux下卸载JRE很简单删除对应的文件夹就好了,可是macOS上dmg安装的软件怎么卸载对我这个macOS新手来说还真不知道。 好在oracle官网上有说明:
10km
2021/04/14
2K0
JDK、JRE、JVM 的关系
Java 是一种跨平台的编程语言,它的实现离不开三个关键组件:JDK、JRE 和 JVM。本文将深入探讨这三个组件之间的关系以及它们在 Java 技术体系中的作用。
疯狂的KK
2023/07/01
3400
弄懂 JRE、JDK、JVM 之间的区别与联系
其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云。本篇不会讲述 jvm 底层是如何与不同的系统进行交互的,而主要理清楚三者之间的区别,搞清楚我们写的 xxx.java 文件是被谁编译,又被谁执行,为什么能够跨平台运行。
Single
2018/03/14
1.4K0
弄懂 JRE、JDK、JVM 之间的区别与联系
JRE、JDK、JVM是什么?
JVM 是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行 bytecodes 字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
帅飞
2019/01/22
1.4K0
JDK和JRE的关系
JDK(Java Development Kit)是我们学习Java首先要安装的软件,JDK安装完成之后,安装向导会询问我们是否安装JRE(Java Runtime Environment),那到底还要不要安装呢?回答这个问题前,首先要知道JDK和JRE是什么关系。
编程大道
2019/07/15
2.6K0
JDK和JRE的关系
Jre和Jdk的区别?
Jre和Jdk的区别 JRE:(Java Runtime Environment),java运行环境。包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。 JDK:(Java Development Kit Java)开发工具包。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具:编译工具(java
Java学习
2018/04/18
1.1K0
Java基础(3)-JDK、JRE、JVM区别与联系
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/171
joshua317
2021/10/22
2.9K0
Windows系统 配置Java开发环境 JDK与JRE
       通过oracle官网---->下载---->Java---->Java SE找JDK8
week
2018/08/27
8800
Windows系统 配置Java开发环境 JDK与JRE
【Java核心】JDK、JRE、 JVM的联系与区别
JDK 是开发 Java 程序所需的工具包,包含了 JRE,并且额外提供了开发工具和库。JRE 是 Java 的运行时环境,包含了JVM。JVM 是运行 Java 程序的虚拟机。
.29.
2023/10/17
5920
【Java核心】JDK、JRE、 JVM的联系与区别
JDK和JRE的区别
JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 JDK(Java Development Kit)又称J2SDK(Java2 Software Development Kit),是Java开发工具包,它提供
10JQKA
2018/05/09
1.2K0
Eclipse启动错误:A Java Runtime Environment(JRE) or Java Development Kit(JDK) must be available……
确保Jdk,Jre都安装完成并且环境变量配置无误的情况下,自动Ecplise报错如下:
Twcat_tree
2022/11/30
1.3K0
Eclipse启动错误:A Java Runtime Environment(JRE) or Java Development Kit(JDK) must be available……
JDK,JRE,JVM之间的区别
JDK,JRE,JVM之间的区别 JDK, JRE和JVM是java编程语言的核心概念。他们看起来有点相似。作为一个编程者我们似乎也并不是很关心这个概念。但是她们确实是有区别的,并且他们分别基于不同的目的的。本文将会分别解释这三个概念,并且说明他们之间的不同点。 Java Development Kit (JDK) JDK是java环境的核心组件,它提供了编译、调试、执行一个java program必须要用到的可执行和二进制的所有tool。JDK是一个平台定制软件,这也是我们为什么要把安装版分为 fo
ImportSource
2018/04/03
1.4K0
读 Differences between JDK, JRE and JVM
Java Development Kit Java applications and applets 的开发环境。它包括 JRE,java解释/加载工具( java),编译工具( javac ),归档工具( jar ),文档生成工具( javac ) 以及其他的 java 开发需要的工具
shengjk1
2020/06/18
1K0
读 Differences between JDK, JRE and JVM
Java简介 | Jdk、Jre、Jvm区别
Jre全称是Java Runtime Environment,意为Java运行环境。
Defu Li
2019/12/19
8480
JDK、JRE、JVM三者间的联系与区别
首先大家看一幅图哈: JDK: Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。 JRE: Ja
编程张无忌
2021/01/26
7790
JDK、JRE、JVM三者间的联系与区别

相似问题

Java -即使在使用urlencode之后,仍然会出现路径错误

20

类加载器行为: java jars与在pom中添加-cp依赖关系

10

将Nexus中的所有jars添加到Leiningen依赖项列表

22

ClassNotFoundException,即使在添加了依赖的jars之后

12

将jars添加到java webapp

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档