Jan29

【原创】mapstruct expression使用注意事项

Author: mapstruct  Click: 776   Comments: 0 Category: java  Tag: mapstruct,expression

mapstruct在expression使用时网上说有如下问题:

https://blog.csdn.net/BruceChao5211/article/details/105430093

http://www.kailing.pub/article/index/arcid/262.html

上面两篇文章原意都是说expression定义的方法会复用到所有同类型的其他属性上。

例如我定义一个toConvert方法,传入的参数类型是String,那么mapstruct代码生成器会自动将映射的原类中的属性都赋予toConvert方法。这样会导致我本意只针对某一个属性执行toConvert方法,结果所有同类型属性都被执行。

两篇文章都没有很好的说明这种情况我们应该怎么处理?

mapstruct官方的issue给出了答案:https://github.com/mapstruct/mapstruct/issues/2700

其实expression在mapstruct的本意就是用来对同类型进行处理的,如果需要指定到某个属性进行某个方法的调用,我们需要采用qualifiedByName来处理。例如如下示例:

[code="java"] @Mappings({
@Mapping(source = "sex1",target = "sex2",qualifiedByName = {"getBySexEnum"})
})
Student2 toStudent2(Student1 student1);

@Named("getBySexEnum")
default Integer getBySexEnum(SexEnum sexEnum){
return sexEnum.getCode();
} [/code]

Dec18

【原创】nacos配置踩坑记

Author: leeon  Click: 611   Comments: 0 Category: java  Tag: nacos

nacos的配置管理中如果采用properties格式来管理配置,千万别用注释符“#” 来屏蔽配置。否则有可能存在配置项取消不生效的问题发生。

假设应用中有如下注入的动态变量:

[code="java"]
@NacosValue(value = "${config.set.val:}", autoRefreshed = true)
private String val;
[/code]

注意其中有个冒号,表示当配置不存在的时候使用空字符串替代。

如果当前应用程序是启动的状态,对配置项config.set.val做注释,发布后应用中并不会自动将val变量配置成默认值空字符串,而是继续沿用原先nacos中配置的参数值。

那么我们如何撤销config.set.val的配置数据呢?

其实很简单,只要在nacos中如下设置即可:

config.set.val=

等号后面留空即可。注意此时提交发布nacos会提示有可能存在语法错误,我们不用管直接提交就好了。这时候应用就会收到配置项为空字符串了。

如果反过来设置,期初nacos的配置项中注释禁用了某个配置,然后启动应用,如果我们想要再次启用这个配置项,该怎么办?其实很简单,去掉“#”符号,配置成想要的配置发布nacos即可。这时候应用是可以收到配置参数的。

Dec14

【原创】elasticsearch集群配置不生效

Author: leeon  Click: 608   Comments: 0 Category: 架构  Tag: elasticsearch,es

为什么按照网上的步骤配置了集群就是不生效?每个节点单独作为master node。

这时候不妨试一下如下方法:

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-bootstrap-cluster.html

  • Shut down all the nodes.
  • Completely wipe each node by deleting the contents of their data folders.
  • Configure cluster.initial_master_nodes as described above.
  • Restart all the nodes and verify that they have formed a single cluster.
简单点说就是,你需要重建你的elasticsearch数据文件夹,删除每个节点的data文件夹,然后分别重启es服务即可,这时候es就会自动组建集群了。
Feb26

【原创】electron8安装404问题解决

Author: leeon  Click: 2118   Comments: 1 Category: javascript  Tag: electron

electron 安装遇到404,其实这种问题网上说的都不对,什么安装老版本,或者安装cross-env来解决,其实只要你认真看官方文档,就能解决。

官网安装文档:https://www.electronjs.org/docs/tutorial/installation

electron在淘宝上的镜像地址正确的是:

https://cdn.npm.taobao.org/dist/electron/

而不是网上说的:https://npm.taobao.org/mirrors/electron/

这个地址最后组装的版本号会带上一个v,但是这个镜像地址上的路径并不是“v+版本号“

例如我最新安装的electron版本时8.0.2

那么正确的镜像下载地址是:

https://cdn.npm.taobao.org/dist/electron/v8.0.2/electron-v8.0.2-win32-x64.zip

而不是:

 https://npm.taobao.org/mirrors/electron/v8.0.2/electron-v8.0.2-win32-x64.zip

在你的工程package.json文件中配置如下正确的elctron下载路径:

同时在你的npmrc文件中配置如下信息:

electron_mirror="https://cdn.npm.taobao.org/dist/electron/"
npm_config_electron_custom_dir="8.0.2"

npmrc文件你可以通过npm config list 命令查看到

分类

标签

归档

最新评论

Abyss在00:04:28评论了
Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
shallwe99在10:21:17评论了
【原创】如何在微信小程序开发中正确的使用vant ui组件
默一在09:04:53评论了
Berkeley DB 由浅入深【转自架构师杨建】
Memory在14:09:22评论了
【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
leo在17:57:04评论了
shell中使用while循环ssh的注意事项

我看过的书

链接

其他

访问本站种子 本站平均热度:8306 c° 本站链接数:29 个 本站标签数:464 个 本站被评论次数:94 次