- GetByName和GetByUserName都OK,因为语义一目了然。但是GetAllRetired呢?什么是退休?超过法定退休年龄的算退休,那么病退的是不是算在里面?这里返回的所有Customer中,仅仅包含了已退休的男性客户,还是所有性别的客户都在里面?
规约模式就是DDD引入用来解决以上问题的一种特殊的模式。规约是一种布尔断言,它表述了给定的对象是否满足当前约定的语义。经典的规约模式实现中,规约类只有一个方法,就是IsSatisifedBy(object);如下:
1
Specification
-- jsr java规范请求
2
// Populate the class2type map
4、
代码实体类定义规范 DO(Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。 DTO(Data Transfer Object):数据传输对象,Service和Manager向外传输的对象。 BO(Business Object):业务对象。可以由Service层输出的封装业务逻辑的对象。 Query:数据查询对象,各层接收上层的查询请求。注:超过2个参数的查询封装,禁止使用Map类来传输。 VO(View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。 1)结果实体类: (1)service层以BO结尾 (2)mananger层DO结尾 (3)dao层以DO结尾 (4)jsf传输层以DTO结尾 (5)controller层传递给页面以VO结尾 2)请求实体类: 上层向下层提交请求的时候,如果没有封装成对象,则用Param结尾的实体,负责为BO或DO,具体如下: 写请求: (1)controller层Param结尾 (2)service层BO结尾 (3)mananger层DO结尾 (4)dao层DO结尾 查请求: (1)controller层Param结尾 (2)service层Query结尾 (3)mananger层Query结尾 (4)dao层Query结尾 实体类转换工具BeanUtils.copyProperties
public class BeanUtils extends org.springframework.beans.BeanUtils { public static void copyProperties(Object source, Object target) throws BeansException { copyProperties(source, target, null, (String[]) null); } private static void copyProperties(Object source, Object target, Class<?> editable, String... ignoreProperties) throws BeansException { Assert.notNull(source, "Source must not be null"); Assert.notNull(target, "Target must not be null"); Class<?> actualEditable = target.getClass(); if (editable != null) { if (!editable.isInstance(target)) { throw new IllegalArgumentException("Target class [" + target.getClass().getName() + "] not assignable to Editable class [" + editable.getName() + "]"); } actualEditable = editable; } PropertyDescriptor[] targetPds = getPropertyDescriptors(actualEditable); List<String> ignoreList = (ignoreProperties != null) ? Arrays.asList(ignoreProperties) : null; for (PropertyDescriptor targetPd : targetPds) { Method writeMethod = targetPd.getWriteMethod(); if (writeMethod != null && (ignoreProperties == null || (!ignoreList.contains(targetPd.getName())))) { PropertyDescriptor sourcePd = getPropertyDescriptor(source.getClass(), targetPd.getName()); if (sourcePd != null) { Method readMethod = sourcePd.getReadMethod(); if (readMethod != null && ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) { try { if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) { readMethod.setAccessible(true); } Object value = readMethod.invoke(source); if (value != null) { if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) { writeMethod.setAccessible(true); } writeMethod.invoke(target, value); } } catch (Exception ex) { throw new FatalBeanException("Could not copy property '" + targetPd.getName() + "' from source to target", ex); } } } } } } }
相关推荐
**JSR:Java 规范请求** JSR(Java Specification Request)是Java Community Process(JCP)中的一个重要组成部分。JCP 是一个开放的组织,它负责制定和维护Java平台的标准,确保Java技术的不断发展和兼容性。JSR ...
JSR(Java规范请求) JSR的翻译(Java规范请求) 提交会自动发布在页面上 带有葡萄牙语和英语的JSR 311文本的文件。 js / msg / 311 / msg_pt-BR.json js / msg / 311 / msg_zh-CN.json
文档中提到了“JSR-337 Java® SE 8 Release Contents”,这指代的是Java Specification Requests(Java规范请求)第337号,即Java SE 8的版本信息。Java SE 8是Java平台标准版的第八个主要版本,也是在2015年3月...
3. Java技术的用户可以通过多种方式参与Java社区过程(JCP),包括提交或评论Java规范请求(JSR)、成为专家小组的成员、对公开草稿进行评论、参与开发过程、请求维护领导者的修订、选举执行委员会等。这体现了Java...
JAVA接口规范文档主要介绍了在Java开发中如何设计和实现接口,特别是针对APP接口开发的一系列规范,以确保接口的高效、稳定和易于维护。以下是基于文档内容的详细说明: 一、概述 1.1 有关接口 接口在软件工程中...
JCP的成员可以提交Java Specification Requests(JSR,即Java规范请求),这些请求在经过JCP执行委员会的审批后,可以正式纳入到Java规范的下一个版本中。 Java Community Process有两个执行委员会,一个负责Java ...
Java Servlet规范提供了Filter机制来实现这些需求。本文将详细介绍如何利用Java Filter来打印请求和响应的数据。 #### 二、技术方案概述 为了实现在过滤器中获取请求体内容以及响应内容的功能,本方案主要采用了...
JSR80是Java规范请求(Java Specification Request)的编号,用于规定Java平台与通用串行总线(Universal Serial Bus,简称USB)设备通信的技术标准。JSR80的说明文档目前是稀缺资源,且仅有英文版。这一文档描述了...
Java编程语言有着严格的命名规范和注释规则,这对于提高代码的可读性、可维护性和团队协作至关重要。以下是对这些规范的详细说明: 1. **包名命名规范**: - 包名全由小写字母组成,可以包含少量数字。 - Java...
JSR-379即Java Specification Request 379,是Java社区过程(Java Community Process)中为Java SE 9发布而提出的一项规范请求。公开预览版(Public Review)意味着该规范在正式发布之前,已经可以供开发者下载和...
Java API和编程规范是Java开发者不可或缺的参考资料,它们为编写高效、可维护的代码提供了指导。本资源包含Java API的中文版以及Java编程规范,旨在帮助中国开发者更好地理解和应用Java技术。 首先,Java API...
- JSR 317:这是Java Specification Requests(Java规范请求)的编号,代表了JPA 2.0的规范请求。JSR是Java平台标准版(Java EE)中用于制定新特性或更新标准的流程。JSR 317被正式接受后,定义了JPA 2.0的新特性和...
5. **多线程与并发**:在Java Card 3.0.4中,可能会支持多线程和并发处理,使得卡片可以同时处理多个请求,提高性能和用户体验。 6. **互操作性**:Java Card规范保证了不同厂商的智能卡和读卡器之间的互操作性。这...
JAVA安全编码规范参考文档深入分析了在Java开发中如何编写安全的代码,降低系统被攻击的风险。文档内容涵盖了安全编码的基本原则以及常见漏洞的安全编码方法。 一、安全编码基本原则 1. 所有输入数据都是有害的 在...
- AXIS1.4支持JAX-RPC(Java API for XML-RPC)规范,允许开发者通过SOAP调用远程方法,如同调用本地方法一样。 3. **生成Java请求客户端** - 使用AXIS,你可以通过一个WSDL文件生成Java客户端代码。WSDL文件定义...
JSR Java规范请求:펙스펙 :추가추사양술에술에공식문서JSR-ID 기술 366 Java SE 8 379 Java SE 9 383 Java SE 10 384 Java SE 11 386 Java SE 12 388 Java SE 13 389 Java SE 14 390 Java SE 15 901 JLS(Java语言...
根据提供的文件信息,我们可以推断出这是一篇关于Java编程规范的文章。虽然部分内容存在编码错误或不清晰的地方,但从已有的信息中,我们可以提取并展开一些重要的Java编程规范相关的知识点。 ### Java编程规范概述...
`Action`处理页面请求,`Listener`响应事件,`Event`代表事件,`Servlet`表示Servlet,`Factory`为工厂类,`Adapter`用于适配,`Job`指定时任务,`Wrapper`是包装类,`Bean`通常表示Plain Old Java Object (POJO)。...