自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 服务粒度分解因素

微服务拆分原则

2024-04-15 16:11:30 179

原创 分解单体数据库步骤

分解单体应用到微服务应用时,最终需要将原来的单体数据库分解为多个数据库。4.迁移schema到独立的数据库服务器。3.不同数据域的数据库连接相互隔离。1.分析数据库和划分数据域。2.指定数据表到数据域。

2024-04-15 16:08:04 69 1

原创 spring LdapTemplate创建AD账户时创建密码

通过springboot ldapTemplate创建用户并设置密码

2022-07-13 17:39:46 1034

原创 this.$forceUpdate方法的应用

最近在有一个页面是在列表页弹出详情页,此时需要显示创建人/修改人姓名。由于是从当前页已经获取的数据中遍历的不需要网络请求,但创建人/修改人显示不出来。最后调用this.$forceUpdate()方法才显示出来。推测原因是因为给创建人/修改人属性赋值的时候vue还没有绑定属性...

2021-05-06 10:48:15 709

原创 vue附件上传下载

一、项目要求附件和表单数据同时上传二、实现1、组件配置<el-col :span="12"> <el-form-item label="关联文档"> <el-upload ref="upload"//组件的id,随便写 :show-file-list="false" //不使用组件自带的文件列表 :auto-upload...

2020-12-30 11:10:08 710

原创 线程模型

实现线程主要有三种方式:1)使用内核线程实现(1:1),2)使用用户线程实现(1:N),3)使用用户线程加轻量级进程混合实现(N:M)1、使用内核实现内核线程就是直接由操作系统内核支持的线程,由操作系统对线程进行分配、调度。程序通过内核线程的高级接口-轻量级进程(Light Weight Proccess,LWP,我们通常意义上的线程)使用内核线程。由于每个轻量级进程都由一个内核线程支持,因此只有先支持内核线程才能有轻量级进程。轻量级进程和内核线程的关系是1:1对应关系。优点:每个轻量级进程都成

2020-11-05 17:45:38 135

原创 SpringBoot集成Activiti找不到监听器类问题

今天测试activiti任务监听器的使用,在监听器的类型为"Java Class"时没有问题,但是将监听器类型改为"Delegate Expression"是死活找不到定义的标识符。最后发现是activiti版本问题。测试用的是5.23.0,改为5.22.0或者6.0.0都没问题。...

2020-10-20 17:44:02 847

原创 springboot的profile

1、springboot的application.yml文件中可以定义多个特定profile的属性。每个profile用3个中划线进行分割,并用spring.profiles命名profile.如 ---spring: profiles:prod其它profile相关的属性2、@profile注解 @profile注解可以基于profile条件化的创建bean,如此一来可以设定某些对象中能在特定环境下创建。...

2020-08-25 17:41:23 255

原创 VUE模型的一个坑

刚开始vue+element-ui开发前端,踩了很多坑。在一个页面的form中绑定了对象属性dafaForm.name在data中为了省事没有把dataForm的属性定义写上,只定义了dataForm:{},开发的过程中一切正常(可能是测试的不到位?),部署到测试环境中测试时,输入框不定时的无法输入,选择框无法选中,刷新后可能会好,也可能不会好,总之不定时有无法输入的现象。经过一番测试,最后把所有的属性写到dataForm对象里才没问题了。 如果必须要把所有属性写到模型中这就有点不智能了...

2020-08-25 17:17:06 176

原创 JS中的apply和call方法

javascript中每个函数都包含两个非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this 对象的值。 apply()方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,第二个参数可以是Array 的实例,也可以是arguments 对象。 对于call()方法而言,第一个参数是this 值没有变化,变化的是其余参数都直接传递给函数。 例: var obj = {name:"张三"...

2020-08-12 14:38:08 71

原创 分布式事务概览

一、强一致性解决方案 1、二阶段提交协议:第一阶段准备,第二阶段提交 2、三阶段提交协议:第一阶段预备,第二阶段准备,第三阶段提交。同时引入了超时机制,如果超时默认提交成功。可能会出现数据的不一致性。二、最终一致性解决方案(可能会需要手工介入) 1、TCC模式:try、confirm、cancel(基于RPC) 在 TCC 模式中,主业务服务负责发起流程,而从业务服务提供 TCC 模式的 Try、Confirm、Cancel 三个操...

2020-08-10 10:47:22 84

原创 vue日期控件的坑

el-date-picker控件默认情况下传递给后端的日期比选择的日期少一天,需要加上属性value-format="yyyy-MM-dd"才能保证日期传递的正确

2020-07-14 14:46:03 383

原创 整洁的单元测试

1、面向特定领域的测试语言2、对测试代码和生成代码执行双重标准,测试代码首重简洁3、每个测试一个断言,或者每个测试尽量少的断言4、每个测试一个概念5、快速 测试应该够快6、独立 测试应该相互独立7、可重复 测试应当可在任何环境中重复通过8、自足验证 测试应该有布尔值输出9、及时 测试就及时编写...

2020-05-18 14:14:13 206

原创 SiteMesh与MockMvc冲突

有一个使用了SiteMesh的项目中使用MockMvc测试时产生异常去掉SiteMesh配置后执行成功

2020-04-16 10:53:35 86

原创 Mybatisrc返回List<Map>类型转换

1、Dao接口中定义方法声明为List<Map<String,String>> countByRow(@Param("rows")List<String> rows);2、map文件中sql语句为<select id="countByRow" resultType="map"> SELECT row_id rowId,co...

2020-04-01 16:19:11 457

原创 页面初始化时datatable不显示数据

有一个查询页面使用了datatable,但要求初始化时不显示数据,而datatable默认是自动查询数据的。在网上没有找到比较好的解决办法,于是使用了一个比较不正规的办法,就是在点击“查询”按钮后再初始化datatable控件。首先,将datatable初始化代码封装到一个方法内,function initTable(){ oTable = $('#taskList').DataT...

2020-03-10 11:09:28 3214 1

原创 Boostrap模态框通过url加载内容

Boostrap模态框可能通过jquery.load方法加载内容。1、通过<a>标签加载<a data-toggle="modal" href="{url}" data-target="#modal" rel="noopener noreferrer">请点击我</a>2、通过button加载<button type='button' ...

2020-01-06 15:45:21 1139

原创 WebApplicationContextUtils获取WebApplicationContext

今天在一个springMVC项目中通过WebApplicationContextUtils获取WebApplicationContext报错,说找不到WebApplicationContext。通过排查问题,发现web.xml中没有定义ApplicationContextListener,只定义了DispatcherServlet。如果再定义ApplicationContextListen...

2019-12-25 18:43:10 1599

原创 应用扩展立方体

应用扩展可以分为三个方向,X,Y,ZX轴分割代表把相同的工作或应用的镜像分配给多个实体。对应用来讲就是多个实例,对数据来讲就是多个复本。 Y轴分割代表把工作职责基于”动词”或动作分配到多个实体(服务)。因为可以单独的实施每个服务,所以Y轴分割可以改善开发时间。同时有助于交易增长及故障隔离。对特定功能数据增长的扩展也有所帮助,但对客户数据增长的扩展并没有太大的好处。 Z轴分割代表按照...

2019-12-20 09:50:11 144

原创 好的架构的原则

原则应该影响团队的行为和文化。一个好的原则有以下几个特点:具体的。原则不应该被混淆在它的措辞中。 可度量的。原则不应包含“无限”这样的词汇。 可达到的。原则应该能够在设计和执行上实现。 现实的。团队应该有能力达成目标。 可测试的。修改后的原则可以用于测试设计,以验证它是否符合需要。 ...

2019-12-11 21:47:43 148

原创 No subject alternative names matching IP address X.X.X. found

我们有一个程序需要访问ldap,在虚拟机上运行时一切正常,最近要迁移到k8s环境中,测试时发现不能访问ldap,并报以下异常:Caused by: java.security.cert.CertificateException: No subject alternative names matching IP address 10.xx.xx.254 found 开始一直找不...

2019-12-09 19:25:08 4186

原创 架构原则

N+1设计。永远不少于两个,通常为三个。 回滚设计。确保系统可以回滚到以前发布过的任何版本。 禁用设计。能够关闭任何发布的功能。 监控设计。在设计阶段就必须考虑监控,而不是在实施完成之后补充。 设计多活数据中心。不要被一个中心的解决方案把自己限制住。 使用成熟的技术。只用确实好用的技术。 异步设计。只有在绝对必要的时候才进行同步调用。 无状态系统。只有当业务确实需要的时候,才使用状态...

2019-12-05 21:53:32 137

原创 Excel生成帮助类

开发的一个管理系统中很多地方需要实例下载功能,为简化下载代码的开发,基于apacher的poi工具创建了一个工具类。1、工具类ExcelExport代码如下:public class ExcelExport { private HSSFWorkbook wb = new HSSFWorkbook(); private HSSFSheet sheet;...

2019-11-25 19:09:25 148

原创 datatable的一些常用操作

var table=$('#table');var oTable = table.DataTable()1、表格中点击某控件处理方法table.on('click','.edit',function(e){ e.preventDefault(); var row = $(this).parents('tr')[0]; var data = oTable.rows...

2019-11-20 10:32:43 331

原创 计算工作日时间

计算指定时间间隔前的工作日时间点,其中的工作时间单独配置管理。/** * 计算指定间隔时间(分钟)之前的工作时间,前提是传入的当前日期是工作日 * 是否工作日由其它办法验证 * @param limit 时隔时间(小时) * @return 返回工作日的一个时间点 */ public Date befor(int limitMinue,...

2019-11-14 17:18:01 604

原创 jquery直接提交form

$.ajax({ type : "POST", url : url, data:$('#form').serialize(), success : function(grad) { //提交成功 }, error:function(request){ //提交失败 }, complete : funct...

2019-11-13 15:16:53 68

原创 面向接口编程

一、什么是接口1、接口是java中的interface,是C++中的abstract,是模块间的调用协议2、接口是系统中各部分的组合协议、连接协议、调用协议3、接口是规范化的url地址 二、java中的interface1、在系统内部面向接口编程是指在一个任务有多种实现方式时,调用方通过调用接口的方式不必指定具体的实现类,而是在运行时决定实际的被调用对象。2、在模块间调...

2018-12-10 16:23:16 153

原创 JAVA模块化(二)

模块依赖当模块中的类导入了另一个模块中的至少一个类时,就认为这两个模块间存在依赖关系。一般模块会有输入依赖、输出依赖或者二者兼有。如果有其他的模块依赖当前模块中的类,那么就说存在输入依赖。如果模块依赖其他模块中的一个或多个类,那么就说存在输出依赖。我们的目标是尽可能减少输出依赖,在输出依赖很必要的地方,应该依赖抽象模块。具有很多输入依赖的模块难以变化,具有很多输出依赖的模块

2014-01-02 17:55:51 581

原创 JAVA模块化设计(一)

简单来说,模块就是“一个软件块”。在JAVA中就是一个jar文件。模块的粒度在应用/服务下面,包/类的上面。模块的特点:可部署 模块是一个独立的部署单元。它能够与其他软件模块共处。可管理 模块是一个可管理的单元。在运行时系统中,模块可以进行安装、卸载以及更新。在开发过程中,将系统拆分成模块有助于简化很多其他的复杂活动。可测试 模块可以独立测试原生可重用 模块是进程内

2013-12-17 18:04:33 1535

原创 log4j的性能比较

log4j:AsyncAppender比一般性能略有优势,但相差不多,基本相当log4j2:AsyncAppender模式在“阻塞”模式下性能比一般差3-4倍,但在“非阻塞”模式下性能好3-4倍总体上,log4j2比log4j性能要好,尤其是并发越高,差距越大。注意:并发一是指线程数,二是指不同的logger的数量。形成此种状况的原因是log4j有两层阻塞,而log4j2只有一

2013-07-10 14:02:26 986

原创 NoUniqueBeanDefinitionException异常

java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException今天写代码时出现上面这个异常,很是奇怪。从网上下载了个Spring源码包,通过追踪源码发现并没有到加载工程代码中去。于是分析和Spring包有关系。查看依赖库发现有两个版本的Spring。通过分析去

2013-04-03 14:14:27 8791 2

原创 java.sql.SQLException: 数字溢出

今天开发时碰到一个问题,在一个查询中出了一个异常java.sql.SQLException: 数字溢出。开始时以为是传递的参数的问题,后经仔细排查后发现是有一个字段保存的是手机号,但生成的对应实体类是int类型,导致设置值的时候产生溢出。

2013-03-18 17:56:16 1954 1

原创 SQL的like参数的设置

在拼接SQL语句的时候要用到Like的时候只需要一个Like方法,方法的参数可以为以下三种:%F%、%F、F%。注:F为字段

2013-03-06 12:01:05 1406

原创 IncompleteElementException:Could not find result map java.util.Map异常

这是在测试MyBatis支持的工程时产生的异常。从字面上理解是xml文件中元素不完整,末找到结果集映射类。这是因为resultMap属性设置的值不正确这里的陷阱是:真正出问题的文件不一定是正在测试的类对应的文件。别的文件出了问题也可能会出错。

2013-02-26 17:34:37 3647

原创 找出复杂问题中隐含的递归结构

1、从整体问题中隐去部分问题2、判断剩余部分是否和整体问题是同类问题假设要找出问题中的递归结构,那么应按以下步骤进行:1、从n层的整体问题中隐去部分问题2、判断剩余部分是否是n-1层问题

2013-02-05 15:37:39 277

原创 找不到spring配置文件

maven格式下main/resources目录下的文件夹的图标为普通的文件夹图标,经过与正常项目对比后发现是因为main/resources的excluded配置为“**",导致不能引入配置文件。将这个配置属性设置为空解决。

2013-02-04 11:35:54 425

分页和选择标签

一个自定义分页标签和一个自定义选择标签,分布标签支持两种模式,选择标签有一个默认的通过配置文件配置选择项的实现。

2013-12-16

SQL语句拼接工具,简化SQL语句拼写代码

针对不确定的查询参数,简化SQL语句的拼写代码。目前支持Oracl及MySql数据库

2011-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除