java dto层是什么?javaEE开发为什么要用到DTO层
今天给各位分享java dto层是什么的知识,其中也会对javaEE开发为什么要用到DTO层进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
javaEE开发为什么要用到DTO层
DTO层的作用是为了隔离Domain Model:
让DoMain Model的改动不会直接影响到UI;保持Domain Model的安全,不暴露业务逻辑
有两个方案可以省略DTO层,又能起到DTO的作用:
1.继承:定义失血模型的Model,然后再做一个从Model继承的代理类,代理类里实现业务逻辑。贫血模型的Model单独为一个DLL,代理模型另起一个DLL。Client端只能引用贫血模型的DLL,这样就达到了隔离的目的,又省略了Contract层。
2.接口:为Domain Model做一个贫血模型的接口,接口单独为一个DLL,Client端只引用接口DLL。
这两种方案的核心思想都是让数据字段与业务方法分离,然后只对Client端公开数据部份。但这种思想会导致域模型趋向事务脚本模型,所以都不可取。
JAVA里的domain和dao都是指什么啊
分类:电脑/网络>>程序设计>>其他编程语言
问题描述:
详细的论述一下,他们都是做什么用的,如果是缩写,全称是什么
解析:
dao: data access Object是后台实现业务逻辑的java类;
对应DAO还有个DTO是Data transfer Object数据运输对象,它是一个定义了很多变量及变量的get,set方法的类,常用来做流程方法的参数.也可以看成是一个自定义的数据类型;
domain是范围,界线,也被用来批一个变量的有效作用域
也常用这个词做一个包,然后在里面放些DAO类文件.
.baidu.domain.AddUserDao
在java开发中什么是业务逻辑
业务逻辑就是处理数据的逻辑啦。一般后台代码也分三层 action(controller) service DAO(这里的三层不是MVC)
比如我得到用户名但是在存入数据库的时候用户名字段应该是前台的用户名加上当前日期拼成的字符串
action或者controller层是第一层一般是用来及接受数据并且做数据的非空啊格式是否正确的验证
如用户名是否为空是不是安全字符串之类的
service层一般是用来做一个业务逻辑的实现
这时候 userName= userName+ new Date();
DAO层就是与数据库交互层啦
也就是读写数据库将逻辑层得到的新的userName插入到数据库
关于java三层开发中的一些关系
BPO这个东西我不是很了解,去网上看了看貌似是说是商务流程外包.网上的解释都是一些很官方的解释,感觉和我们具体开发的业务不是很有关系.这里我就不说了。这里我主要给你讲讲bs,bsimp以及action,actionForm的关系吧
首先你要知道Action在b/s架构中充当的身份,根据MVC思想来说的话,Action在每个业务模块中充当的是一个控制器的角色.而Controller在整个系统中充当一个总的控制器.
客户端(Browser)发送一个请求,Controller会根据请求的URL来决定将该请求交给哪个Action去处理。
在这里,ActionForm的作用就体现出来了,Action层中是不会处理任何的业务逻辑的,真正的业务逻辑是交给bs层也就是业务层去处理的。但是客户端发送过来的数据如何传递给业务逻辑层呢?
就是通过ActionForm.在Action中,会将相应ActionForm中的数据封装到具体的某一个业务对象里。
实际开发当中,一般情况下一个业务对象对应一个Form表单的.
封装完业务对象之后,Action就会根据具体的请求选择调用某一个业务接口。
这时候bs就出现了。bs和bsimp主要体现的是java中面向接口的编程,也就是面向抽象的编程。
在bs包内,全都都是接口。而bsimpl包内都是各个接口的实现类。为什么会有这样的思想??
因为考虑到将来系统的扩展,以及业务层不同的实现方案,所以必须把bs设计为接口,而根据具体的需求为每个接口添加实现类.
这样在Action层就不需要知道bs接口具体是如何实现的了,他只要负责调用这个接口,而这个接口可以根据配置文件的信息,根据具体的需求去调用不同的实现类。
最后就是Dao层了。这个层是为了访问DB,进行持久化的,这一层也会用到面向接口的编程.
最后数据处理完成之后,在通过Controller选择具体的展示页面,返回给客户端Browser.
最后我给你大概画了下流程图,比价丑陋,但是应该可以看懂,希望能够帮助你,谢谢
关于本次java dto层是什么和javaEE开发为什么要用到DTO层的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。