首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实战:Bean的数据完整性验证方法| 从开发角度看应用架构11

Java应用程序将数据存储在Java对象中。这些Java对象通过网络,作为参数传递给方法,并存在于Java EE应用程序的不同层中。为了保持数据完整性,数据验证是应用程序逻辑的主要要求。开发人员需要在应用程序的不同层中编写数据验证代码以进行数据验证,这容易出错并且非常耗时。提供bean验证API规范是为了避免代码重复并简化数据验证。 Bean验证是一种通过使用可以应用预定义约束的内置和自定义注释来验证Java对象中的数据的模型。 Bean验证对于Java EE和Java Web应用程序的所有层都是通用的。 Java在JSR 349中提供了bean验证1.1 API .JPA通过bean验证API支持实体类的运行时验证。 JBoss EAP完全符合JSR 349。

03
您找到你想要的搜索结果了吗?
是的
没有找到

[Bazel]自定义工具链

本文会讲述 Bazel 自定义工具链的两种方式,Platform 和 Non-Platform 方式。会存在这两种方式的原因是 Bazel 的历史问题。例如,C++ 相关规则使用 --cpu 和 --crosstool_top 来设置一个构建目标 CPU 和 C++ 工具链,这样就可以实现选择不同的工具链构建 C++ 项目。但是这都不能正确地表达出“平台”特征。使用这种方式不可避免地导致出现了笨拙且不准确的构建 APIs。这其中导致了对 Java 工具链基本没有涉及,Java 工具链就发展了他们自己的独立接口 --java_toolchain。因此非平台方式(Non-Platform)的自定义工具链实现并没有统一的 APIs 来规范不同语言的跨平台构建。而 Bazel 的目标是在大型、混合语言、多平台项目中脱颖而出。这就要求对这些概念有更原则的支持,包括清晰的 APIs,这些 API 绑定而不是分散语言和项目。这就是新平台(platform)和工具链(toolchain) APIs 所实现的内容。

03

OptaPlanner规划引擎的工作原理及简单示例(2)

在前面一篇关于规划引擎OptaPlanner的文章里(OptaPlanner规划引擎的工作原理及简单示例(1)),老农介绍了应用OptaPlanner过程中需要掌握的一些基本概念,这些概念有助于后面的内容的理解,特别是关于将约束应用于业务规则上的理解。承上一文,在本篇中将会减少一些理论,而是偏向于实践,但过程中,借助实际的场景对一些相关的理论作一些更细致的说明,也是必要的。本文将会假设我们需要对一个车间,需要制定生产计划.我们为生产计划员们设计一套智能的、自动的计划系统;并通过OptaPlanner把这个自动计划系统开发出来。当然,里面的业务都是经过高度抽象形成的,去除了复杂的业务规则,仅保留可以体现规划引擎作用的一些业务需求。因此,这次我们只用一个简单的小程序即可以演绎一个自动计划系统,来呈现规划引擎OptaPlanner在自动计划上的魅力。

01

【译】OptaPlanner开发手册本地化: (0) - 前言及概念

在此之前,针对APS写了一些理论性的文章;而对于OptaPlanner也写了一些介绍性质,几少量入门级的帮助初学者走近OptaPlanner。在此以后,老农将会按照OptaPlanner官方的用户手册的结构,按章节地对其进行翻译,并成型一系列的操作说明文章。在文章中,为了降低对原文的理解难度,有些地方我不会直接按原文档的字面翻译,而是有可能加入一些我自己的理解,或添一些解释性的内容。毕竟英语环境下的思维和语言表达方式,跟中文或多或少会有差别的,所以如果全部按字面翻译,内容就非常生硬,可读性差,解程难度较大。我认为应该在理解了作者原意的基础上,再进一步以中文方式的表达,才算是真的的本地化。记得老农还是少农时,学习开发技术,需要阅读一些外国书箱的翻译本时,印象最深的是候捷老师的书,尽管《深入浅出MFC》,砖头厚度的书,硬是被我翻散了线,MFC尽管真的晦涩难懂,但候老却能把Windows的消息机制及MFC中整个个宏体系,系统地通俗地描述出来,令读者不需要花费太多精力去理解猜测书中字面的意义,大大降低的VC++中MFC的学习门槛。但老农毕竟只是一个一线开发人员,不是专业的技术资料翻译人才,不可能有候老师的专业水平,因此,我也只可尽我所能把内容尽量描述得通俗一些,让读者尽量容易理解,花费更少的时间掌握这些知道要点。

00
领券