落雁沙
吹牛逼大王
  • orika 解决多重继承的转换报错问题

    在使用orika做bean的转换的时候 ,我们会遇到不同字段不同类型的转换的情况。 一般的情况下,会简单的使用 fieldMap去做两个属性的转换。例如 ,我们有Article ,ArticleDTO,ArticleBO 三个Bean ,并且他们直接是继承关系,ArtilceBO extends ArticleDTO extends Article。 这个时候如果我们配置了 classMap(Article.class, ArticleDTO.class) classMap(ArticleDTO.class, ArticleBO.class) 这两个classMap 。需要把Article的 tagIdsJson 这个string 类型的转换成 ArticleDTO 的 List<Long> tagIds。按照之前的做法,首先注册一个转换器 converterFactory.regist...
    • 0
    • 3
    • 0
    • 2020-04-03
  • nextjs中处理css图片引用的问题

    我们在写样式的时候会用图片昨晚背景 ,例如下面的用法 background: url("../images/login-background.png") no-repeat 0 -50px; 在webpack进行构建的时候 我们会用url-loader 来处理,但是在nextjs中,直接使用是不行的 ,因为nextjs的静态文件夹是public 只有这个文件夹下的文件才能被访问到。我们从网上查找解决方案,大多是用的next-images 这个包去处理的。一般来说 这么用就行了,但是有些特殊情况 ,比如我们要用antd的icon,自定义icon的时候需要自己去加载svg文件,这个时候svg这种模式就需要单独处理了。所以我们还是需要自己来配置,我们从源码可以看到,实现还是用url-loader来做的。那么我们自己调整下即可。 let rules = [ { test...
    • 0
    • 33
    • 0
    • 2020-03-24
  • 解决mysql 和java Calendar 中第几周不一致的问题

    我们在业务场景中,有的时候需要做范围内的聚合统计,比如按月按周。由于数据库的数据不一定是连续的,比如中间有个时间段的没有数据的,我们group出来的数据就会断,这个时候,我们需要借助程序,计算出所有的时间段。 一般的来说,我们可以用mysql的data_format函数处理就可以了。 select date_format(now(),'%Y-%U'); 得到结果:2020-10,也就是2020年的第10周 但是,mysql 存在一个问题 ,如果当年的1月1日不是week 的第一天,那么第一周的周数是0,这个跟java 的Calendar的处理是不一样的,Calendar是从1开始的。 解决方案: 我们去判断当年的1月1日是否是设置的周第一天,如果是,正常计算,如果不是,需要减1. public static boolean isFirstWeekFull(Calendar calenda...
    • 0
    • 29
    • 0
    • 2020-03-11
  • react hooks写法中 父组件调用子组件中的方法

    最近antd发布了4.0版本,里面做了一些变化,特别是form组件部分。 比如说,之前我们在Modal的组件中使用Form 。原来的做法是Modal和From写在一个组件中,但是4.0版本中,我们看到文档上有这段文字。 为何在 Modal 中调用 form 控制台会报错?# Warning: Instance created by useForm is not connect to any Form element. Forget to pass form prop? 这是因为你在调用 form 方法时,Modal 还未初始化导致 form 没有关联任何 Form 组件。你可以通过给 Modal 设置 forceRender 将其预渲染 所以,我们需要在父组件中写Modal,子组件中使用Form。由于antd的Modal的确定和取消按钮都是Modal组件的,所以,我们需要在父组件中调用子组...
    • 0
    • 38
    • 0
    • 2020-03-06
  • 完美解决spring构造函数注入问题

    以前我们在做spring 项目的时候,一般会使用依赖注入的方式,但是,最近idea 会对这种用法抛出警告。 经过查询,是spring官方推荐使用构造函数注入的方式。那么我们自己去写构造函数,又不方便,要加参数,要加变量的。幸好,我们有Lombok。 一般我们会使用 @AllArgsConstructor ,但是,我们通常会有些不需要注入的属性。所以,我们会换一个@RequiredArgsConstructor 。 做个测试: UserDao @Repository public class UserDao { public void say(){ System.out.println("ss"); } } UserService @Service @RequiredArgsConstructor public class UserService { ...
    • 0
    • 26
    • 0
    • 2019-12-30
  • 利用async_hooks实现请求生命周期的数据共享

    在项目中我们经常会会日志打印出来,但是,由于请求一般的异步或者多线程的。N个请求生命周期中的日志会杂乱的显示在一起,我们很难判断出某个日志是同一请求的。这个时候,我们需求用到traceIdl来标记。在java中,我们会利用slf4j的MDC记录traceId。那么,在nodejs中,我们要怎么做呢? 我们都知道,nodejs在v10.5.0之后才增加了对多线程的支持。正常情况下,我们还是用单线程去执行的,然后,内部执行是异步的。那么,既然是异步的,我们就不可能通过类似Java的ThreadLocal的方案去做。那么,我们只能通过参数传递发方式去把ctx传递到需要的地方。 在node8.2中新增了async_hooks模块,虽然好像该api一直是试验阶段,但是,目前看来,还是可行的。 官方介绍async_hooks是这么用的 const asyncHook = require('async_...
    • 1
    • 51
    • 0
    • 2019-11-27
  • Elasticsearch的预处理

    1.背景 elasticsearch 5.0 版本开始引入了预处理节点[Ingest Node]。 2. 什么是预处理 在实际索引发生之前,可以使用Ingest Node对文档进行预处理。此预处理由接收节点进行,该节点拦截批量和索引请求,应用转换,然后将文档传递回索引或批量api。 简单的理解,就是类似我们使用的拦截器。在数据实际落库之前,对数据进行处理。 3. 预处理的使用场景 我们都知道,很多时候,我们用elk进行日志收集。但是,我们的日志很多时候就是一个包含了很多数据的字符串,那么,我们在把日志收集到elasticsearch的时候,我们希望对数据进行解析,把一些信息提取出来,这样,我们可以,更方便的检索日志。 4.预处理的用法 4.1 开启节点的预处理功能,默认是开启的。 如果需要关闭,在elasticsearh.yaml中 node.ingest: false 4.2 我们需要...
    • 0
    • 40
    • 0
    • 2019-11-26
  • elk环境配置

    随着微服务的发展,目前的应用很多都是分布式的,服务会落在不同的节点上。这个时候,日志的查看就是一个问题了。之前单应用的时候,我们只要去服务器上看下日志文件就行。分布式的应用,首先要确定是哪个服务出的问题,该服务在哪个节点上。 那么,解决这个问题的方向,当然就是日志的收集。目前行业主要有elk,splunk等方案。 我们今天说下elk,elk指的是elasticsearch,logstash,kibana. elasticsearch : 搜索引擎 filebeat:日志收集 logstash:日志解析过滤 kibana:展示面板 考虑到logstash的性能消耗比较大,而且,elasticsearch对json的支持,决定不使用logstash ,直接打出json格式的日志,然后,通过filebeat直接发送到elasticsearch。这里我们用docker来部署elasticsearc...
    • 1
    • 63
    • 0
    • 2019-11-22
  • 微信公众号授权流程整理

    我们在微信公众号下获取微信授权以及绑定账户的时候,有很多流程要做。需要判断好多次各种条件,所以整理了一下流程图。 再次吐槽下腾讯的文档以及规范,果然业界出名的差。
    • 0
    • 42
    • 4
    • 2019-10-27
  • next.js ssr与单页面应用同项目的注意点

    我们使用next.js的主要目的是为了做服务端渲染,但是,在管理后台上,就没有这样的需求,单页面应用自然更加方便。 那么,如果我们在展示前台使用ssr,管理后台使用单页面应用。 需要注意一下,next.js 9.0.6使用的 "@zeit/next-css": "^1.0.1", 而@zeit/next-css中引用的css-loader 的版本是1.0.0。这个版本是比较老了,所以在使用的时候,要注意不要再依赖css-loader了,或者指定css-loader的版本1.0.0。 否则会报错哦
    • 0
    • 35
    • 0
    • 2019-10-16
文章分组
暂无数据