通用

关于组件化遇到的问题总结

微笑、不失礼 提交于 2019-11-30 17:41:38
问题 1: 现在有三个项目,A、B、C,都用了一个公用组件。 公用组件 引用了 另一个组件里的 文件。 但是 A、B 有这个组件,但是C 没有。 一般问题都出现在这种公用组件里。 组件必须拆的细一些,如果有两个组件依赖的话,就会出现上面的问题。 组件的划分参考: https://www.jianshu.com/p/88b4168e1ce4 划分根据自己项目总结: 比如有一个 CommonClass 基础通用组件,里面有一些常用的对网络请求,缓存图片,数据库等第三方库的一些二次封装,以及常用的类别等…但是每个项目改动都不大。 使用第三方库应该尽量进行二次封装,封装更适用于业务的组件,或者封装成一个接口类,避免在换第三方库的时候整个工程逐句代码修改。(至于细节及参考列子参考上面链接)。 接下来说说我们现在的通用基础组件里都有什么: 1.通用的缓存单例类 (xxxCache),存储一些常用的需要缓存的信息。 通用常用的一些类别(CategoryClass)。 3.一些常用的 父类(RootController)。 4.通用常用的对 系统控件的 二次封装类 ,比如 一些空数据页面,一些错误自定义提示框。封装的加载loading…. 等等 5.网络请求的二次封装 (xxxRequest). 6.一些常用的单例类…. …… 具体看使用,多学习多思考多交流。 这里可能出现的问题就是

通用mapper

谁说我不能喝 提交于 2019-11-30 01:14:59
Weekend<Emp> weekend = new Weekend<>(Emp.class); weekend.weekendCriteria().andEqualTo(Emp::getId, 1002); List<Emp> emps = empMapper.selectByExample(weekend);    来源: https://www.cnblogs.com/linson0116/p/11543171.html

自定义通用Mapper配置问题

我与影子孤独终老i 提交于 2019-11-28 21:56:04
1、通用Mapper4版本以后不再强制配置mappers参数。通过注解@RegisterMapper可以完成注册。 例如: 2、在启动类的位置添加扫描 这里要注意的是@tk.mybatis.spring.annotation.MapperScan 不是org下的扫描 3、在tkdao下面 来源: https://blog.csdn.net/ThinkingInJava_6/article/details/100132776

BI系统AWS云迁移方案(通用)

这一生的挚爱 提交于 2019-11-28 19:48:14
背景:为一家大型企业本地化BI系统做上云迁移的总体方案。客户对当前本地的BI系统不满意,希望迁移到AWS云之后,能够重新用Tableau做新的BI报表设计。所以这不是本地系统的平滑迁移,而是需要在云上重建BI系统的优化迁移。因此,主要内容是BI数据的迁移,利用AWS原生服务和生态厂商服务重建数据仓库和BI报表,并保留本地其他业务系统的联系和数据源。 业务需求 客户公司为了匹配整体业务上云策略,计划将当前BI系统迁移至AWS公有云; 当前客户本地BI系统数据包含3种模型 (IMS ,CPA ,Sales); 当前整体数据架构 GODW(Global Oracle Data Warehouse)分为两步处理,ETL7.1和ETL7.2: ETL7.1:从数据源中提取数据做处理,构建ODS ETL7.2:根据企业定义标准,转换和加载数据到数据仓库 企业当前BI系统 数据仓库: GODW (Global Oracle Data Warehouse) ETL 工具: Informatica PowerCenter 10.1.1 HF2 Report 工具: Tableau 2018.1.4 数据源: FlatFiles and SQL Server 迁移后的解决方案 数据仓库: AWS Redshift and S3 ETL 工具 : Informatica PowerCenter /

编写并提取通用 ShellCode

て烟熏妆下的殇ゞ 提交于 2019-11-28 17:15:40
ShellCode 通常是指一个原始的可执行代码的有效载荷,ShellCode 这个名字来源于攻击者通常会使用这段代码来获得被攻陷系统上的交互 Shell 的访问权限,而现在通常用于描述一段自包含的独立的可执行代码片段。 来源: https://www.cnblogs.com/LyShark/p/11416003.html

mybatis 通用CRUD的替换方法

丶灬走出姿态 提交于 2019-11-28 13:28:55
http://git.oschina.net/alexgaoyh/MutiModule-parent 代码此次变更较大,使用了mybatis-generator-maven-plugin 插件,把之前多模块项目中的domain部分删除,将这一部分代码整合到persise部分,原因是使用mybatis-generator-maven-plugin插件的时候,能够自动生成实体类,减少代码移动相关的工作量。(数据库逆向代码生成工具) 前一段时间使用maven多模块项目整合了spring mybatis部分,最近在处理通用CRUD方法的时候,遇到了一系列问题,特写文章记录一下: 网络上有很多通用CRUD方法的解决方案,增加DAO接口部分,动态拼接sql……,本文并不对这些方法做过多的介绍。 之前用过一段hibernate(强类型的ORM),最近再转入mybatis的时候,发现mybatis可以理解为半ORM,通过xml书写sql来满足业务需求,如果想使用通用的CRUD方法的话,很多解决方案注入性太强了,所以找了好久,觉得使用 mybatis-generator-maven-plugin 能够很好地替代这种解决方案: 1: 不改变mybatis的特点(接口,sql写到xml内部),新手拿到项目之后,能够很快上手; 2: 简单的单表CRUD也能够实现; 3: 减少代码量的书写

通用寄存器和内存

强颜欢笑 提交于 2019-11-28 10:18:47
计算机在运行时,需要提供数据的容器; 容器由内存和cpu提供,内存提供的容器比较多;cpu提供的容器较少但其中的数据计算速度快; cpu提供的容器就是寄存器,寄存器有特定的数据宽度,决定了该寄存器存储数据的范围; 1.常用的32位寄存器 32位通用寄存器还可以拆分来使用;将低16位当做16位寄存器; 一些16位寄存器也可以继续拆分;高8位和低8位分别当做8位寄存器来使用; 2.mov指令 mov 目标操作数,源操作数 作用:拷贝源操作数到目标操作数 注意: 源操作数可以是立即数、通用寄存器、段寄存器、内存单元; 目标操作数可以是通用寄存器、段寄存器、内存单元; 操作数的宽度必须一样; 源操作数和目标操作数不能同时为内存单元; mov的语法: 3.从内存中读写数据 内存由一段连续的内存单元组成,每个内存单元有8位; 32位机正常的寻址范围为0~FFFFFFFF,也就是4GB; 但这不是确定的,有些内存区域可能被固定无法访问,并且操作系统也可能扩展内存; 数据有3中类型: 字节 ->byte,宽度为8位 字 ->word,宽度为两个字节16位 双字 ->dword,宽度为两个字32位 用指令从内存中读写数据时,需要指明数据的类型 例如: mov dword ptr ds:[0x0012FF34],0x12345678 4.内存寻址的几种方式 1)[立即数] 从内存中读

打造通用 Room 数据库迁移工具

大憨熊 提交于 2019-11-28 08:30:48
在使用 Android Architecture Components 时对于其中的数据库 Room 的升级想到了一个较为通用的迁移方案,使用了一段时间,在此分享一下。 转载请注明出处: https://blog.csdn.net/y1551812297/article/details/86749963 1. 准备 数据库需要升级,通常是因为其中的表或表中的字段、约束等发生了变化,比如增减表、增减字段、重命名等等。通常我们提取新旧数据库的差异,将差异应用到旧数据库中,就完成了升级。如果要做一个通用易用的迁移方案,那么第一步,我们需要能够较为简单的获取这个差异。我们很自然的想到,获取新旧数据库中的表结构,然后做比对就可以了,那么在 Room 中如何获取这个表结构?直接查询数据库可以吗?显然是不行的,旧数据库的表结构可以查到,但是新数据库此时还不存在。那提供接口,在使用时通过接口返回差异信息可以吗?这样的确可以,但是在使用时会非常麻烦,和直接使用 Migration 差别不大,就毫无意义了。 那么有没有一种简单好用的方案?当然有。 我们查看 Room 官方文档中 Migrating Room databases 这一章,其中 Export schemas 这一节中提到了: Upon compilation, Room exports your database’s schema

通用语言

半世苍凉 提交于 2019-11-28 06:28:01
开发过程中领域专家、设计人员、开发人员一起沟通交流,建立领域模型,由于我们每个人掌握的知识、思考方式不一样,每个人都有自己的看法,没有通用语言会很难沟通达成共识。 通用语言的要求: 发现领域内的概念、术语,形成术语表,给出英文术语,基于统一语言进行沟通交流。 领域驱动设计的核心原则之一就是基于模型的语言,通用语言反应业务的概念和行为。 基于同意语言进行沟通交流,必须保证术语概念的一致性,及时更新维护,达成共识,减少沟通的成本。 领域行为是对业务的描述,基于领域术语描述业务场景用例,它体现了更加完整的业务需求以及复杂的业务规则。 在同一个限界上下文必须保持统一语言的唯一性。 获得统一语言就是需求分析的过程,也是团队中各个角色就系统目标、范围与具体功能达成一致的过程。 实现代码时,项目的类名、方法名、仓储、限界上下文、接口等,都应该用通用语言的英文术语命名。 来源: https://www.cnblogs.com/avalon-merlin/p/11397339.html

Mybatis通用Mapper介绍与使用

让人想犯罪 __ 提交于 2019-11-28 05:51:04
前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中, 除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL 。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是 为了解决单表增删改查 ,基于Mybatis的插件。开发人员不需要编写SQL, 不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法 。 如何使用 以MySQL为例,假设存在这样一张表: CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT '', `create_time` datetime DEFAULT NULL, `create_user_id` varchar(32) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_user_id` varchar(32) DEFAULT NULL, `is_delete` int(8) DEFAULT NULL, PRIMARY KEY (`id