`

java规范请求

 
阅读更多

 

  1. 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 规范请求** JSR(Java Specification Request)是Java Community Process(JCP)中的一个重要组成部分。JCP 是一个开放的组织,它负责制定和维护Java平台的标准,确保Java技术的不断发展和兼容性。JSR ...

    jsr:JSR的翻译(Java规范请求)

    JSR(Java规范请求) JSR的翻译(Java规范请求) 提交会自动发布在页面上 带有葡萄牙语和英语的JSR 311文本的文件。 js / msg / 311 / msg_pt-BR.json js / msg / 311 / msg_zh-CN.json

    Java语言规范SE8英文版

    文档中提到了“JSR-337 Java® SE 8 Release Contents”,这指代的是Java Specification Requests(Java规范请求)第337号,即Java SE 8的版本信息。Java SE 8是Java平台标准版的第八个主要版本,也是在2015年3月...

    java概念技术地图

    3. Java技术的用户可以通过多种方式参与Java社区过程(JCP),包括提交或评论Java规范请求(JSR)、成为专家小组的成员、对公开草稿进行评论、参与开发过程、请求维护领导者的修订、选举执行委员会等。这体现了Java...

    JAVA接口规范.doc

    JAVA接口规范文档主要介绍了在Java开发中如何设计和实现接口,特别是针对APP接口开发的一系列规范,以确保接口的高效、稳定和易于维护。以下是基于文档内容的详细说明: 一、概述 1.1 有关接口 接口在软件工程中...

    Java基础内容.pdf

    JCP的成员可以提交Java Specification Requests(JSR,即Java规范请求),这些请求在经过JCP执行委员会的审批后,可以正式纳入到Java规范的下一个版本中。 Java Community Process有两个执行委员会,一个负责Java ...

    java filter打印请求返回参数

    Java Servlet规范提供了Filter机制来实现这些需求。本文将详细介绍如何利用Java Filter来打印请求和响应的数据。 #### 二、技术方案概述 为了实现在过滤器中获取请求体内容以及响应内容的功能,本方案主要采用了...

    JSR80--java版--说明文档下载

    JSR80是Java规范请求(Java Specification Request)的编号,用于规定Java平台与通用串行总线(Universal Serial Bus,简称USB)设备通信的技术标准。JSR80的说明文档目前是稀缺资源,且仅有英文版。这一文档描述了...

    java命名规范以及注释规范

    Java编程语言有着严格的命名规范和注释规则,这对于提高代码的可读性、可维护性和团队协作至关重要。以下是对这些规范的详细说明: 1. **包名命名规范**: - 包名全由小写字母组成,可以包含少量数字。 - Java...

    Java语言规范_第9版_PR_EN

    JSR-379即Java Specification Request 379,是Java社区过程(Java Community Process)中为Java SE 9发布而提出的一项规范请求。公开预览版(Public Review)意味着该规范在正式发布之前,已经可以供开发者下载和...

    java API和编程规范中文版

    Java API和编程规范是Java开发者不可或缺的参考资料,它们为编写高效、可维护的代码提供了指导。本资源包含Java API的中文版以及Java编程规范,旨在帮助中国开发者更好地理解和应用Java技术。 首先,Java API...

    jpa2.0 英文手册

    - JSR 317:这是Java Specification Requests(Java规范请求)的编号,代表了JPA 2.0的规范请求。JSR是Java平台标准版(Java EE)中用于制定新特性或更新标准的流程。JSR 317被正式接受后,定义了JPA 2.0的新特性和...

    JAVA CARD 3.0.4 规范

    5. **多线程与并发**:在Java Card 3.0.4中,可能会支持多线程和并发处理,使得卡片可以同时处理多个请求,提高性能和用户体验。 6. **互操作性**:Java Card规范保证了不同厂商的智能卡和读卡器之间的互操作性。这...

    JAVA安全编码规范参考.pdf

    JAVA安全编码规范参考文档深入分析了在Java开发中如何编写安全的代码,降低系统被攻击的风险。文档内容涵盖了安全编码的基本原则以及常见漏洞的安全编码方法。 一、安全编码基本原则 1. 所有输入数据都是有害的 在...

    AXIS生成java请求客户端

    - AXIS1.4支持JAX-RPC(Java API for XML-RPC)规范,允许开发者通过SOAP调用远程方法,如同调用本地方法一样。 3. **生成Java请求客户端** - 使用AXIS,你可以通过一个WSDL文件生成Java客户端代码。WSDL文件定义...

    Java:Java平台

    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编程规范相关的知识点。 ### Java编程规范概述...

    JAVA代码规范详细版.doc

    `Action`处理页面请求,`Listener`响应事件,`Event`代表事件,`Servlet`表示Servlet,`Factory`为工厂类,`Adapter`用于适配,`Job`指定时任务,`Wrapper`是包装类,`Bean`通常表示Plain Old Java Object (POJO)。...

Global site tag (gtag.js) - Google Analytics