12 catoop

江苏谷科软件有限公司 - 高级软件架构师

我要认证

热爱软件,热爱技术!

等级
TA的排名 273

Shell 脚本中执行命令参数带空格

事情的背景很简单、最终解决方案也很简单,但是,但是解决的过程可是苦了!此时百度、谷歌都没好使,不过问题最终还是得以解决。下面先还原一下需求场景:1、有一个 springboot 的 jar 程序 demo.jar2、通过接收外部参数来覆盖内部 properties 配置中 key 为 message 的值3、shell 中直接执行命令 java -jar -Dmessage="shanhy hello world" demo.jar 正常,但是实际的需求是其中的参数可以填写多个,且不固定! 总之

2020-10-27 15:18:36

领域驱动设计系列文章(3)——有选择性的使用领域驱动设计

本系列的第一篇博文抛砖引玉,大谈领域驱动设计的优势,这里笔者还是希望以客观的态度,谈谈领域驱动设计的缺点及其不适合使用的场景,以让读者可以有选择性的使用领域驱动设计。我们知道,没有最好,只有最合适,设计也是一样。因此,**所谓设计,就是以你和你的团队的知识、经验和智慧,全面充分的考虑各种内外因素后,在你们的设计方案中作出合理的选择的过程。**而这些影响你们选择的因素主要有:技术框架的特征和约束(如果你的项目决定使用C语言进行开发,那么首先在设计方法上,就需要使用面向过程而非面向对象的设计方法)。

2020-10-27 10:38:49

领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力

曾经参与过系统维护或是在现有系统中进行迭代开发的软件工程师们,你们是否有过这样的痛苦经历:当需要修改一个Bug的时候,面对一个类中成百上千行的代码,没有注释,千奇百怪的方法和变量名字,层层嵌套的方法调用,混乱不堪的结构,不要说准确找到Bug所在的位置,就是要清晰知道一段代码究竟是做了什么也非常困难,最终,改对了一个Bug,却多冒出N个新Bug;同样的情况,当你拿到一份新的需求,需要在现有系统中添加功能的时候,面对一行行完全过程式的代码,需要使用一个功能时,不知道是应该自己编写,还是应该寻找是否已经存在的方法

2020-10-27 10:32:08

Jenkins 角色权限控制 - 使用插件 Role-Based Strategy 控制不同用户显示不同 job

Jenkins 自带的矩阵权限,不够灵活,如果你需要按角色分配权限,或者你需要不同的 用户/角色 显示不同的 job,那么你可以使用插件 Role-Based Strategy 来实现你的需求。具体配置步骤,已经截图,你可以按照下面的图片逐步配置:1.安装插件2.进入新出现的配置入口3.管理角色4.配置角色权限5.进入分配角色6.添加用户分配角色7.账号登录验证结果(END)...

2020-10-22 20:40:21

Oracle 常用命令和导入dmp文件

常用命令无密码登录数据库(Dos命令)sqlplus / as sysdba;查询实例名select instance_name from v$instance;获取版本号 返回具体的版本号 例:11.2.0.1.0select version from product_component_version;获取端口号show parameter local_listener;判断用户是否存在select username from dba_users where u

2020-10-10 13:50:02

Java BigDecimal 精度计算 “舍入” 你用对了吗?

开篇,国际惯例模式 “先吹牛逼”,先给小白科普一下 BigDecimal。​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果

2020-09-23 09:07:57

maven 子模块排除 spring-boot-maven-plugin

场景有maven项目A项目A下面有模块B、C、D、E、Fmaven A 配置了插件 spring-boot-maven-plugin 希望其下的所有模块都自动执行现在新增了一个模块 G,模块 G 不希望继承执行这个插件在不锈钢 maven A 的情况下,按照如下配置可以对 G 禁用不执行插件 spring-boot-maven-pluginMaven A的配置如下 <build> <plugins> <plugin> <group

2020-09-21 15:42:18

在idea中直接构建并运行docker到服务器

步骤服务器配置docker远程连接创建springboot demo工程创建Dcokerfile文件配置idea的docker运行配置编译springboot构建并运行docker截图下面是截图,按照上面的步骤顺序对应服务器配置dockervim /usr/lib/systemd/system/docker.service添加 -H tcp://0.0.0.0:2375 如下ExecStart=/usr/bin/dockerd -H fd:// --containerd=/ru

2020-09-21 15:04:48

Hystrix Feign 父子线程数据传递、Feign Header的添加

问题场景微服务A通过feign调用微服务B使用了Hystrix并开启了线程池隔离模式,所以A调用B的请求会单独起一个子线程的方式去调用现在需要将微服务A中ThreadLocal里的数据,放入feign请求B时的http header中(这里的http请求会在子线程中)要解决如上问题,需要做两件事情找到可以给feign调用添加header的切入点,在这里获取主线程ThreadLocal中的数据并添加到header中找到Hystrix开启新的子线程的切入点,在线程执行run方法的先后分别做数据

2020-09-18 17:20:10

Spring Cloud Gateway 处理重复Header的方法(CORS policy: The ‘Access-Control-Allow-Origin‘ header has a……

问题现状首先发现问题的原始点是浏览器进行 ajax 请求的时候出现跨域问题,经查看请求报文和错误确定是 Access-Control-Allow-Origin 出现了多个值(浏览器目前是不允许的),其原因是是在 gateway 中配置过了 Access-Control-Allow-Origin,后端服务的开发人员也配置了 Access-Control-Allow-Origin,导致 response 在响应的时候 Access-Control-Allow-Origin 出现了多个值(不管两个值相同还是不同

2020-08-30 18:33:12

maven settings.xml 详解

<?xml version="1.0" encoding="UTF-8"?><!-- | 官方文档: https://maven.apache.org/settings.html | | Maven 提供以下两种 level 的配置: | | 1. User Level. 当前用户独享的配置,通常在 ${user.home}/.m2/settings.xml 目录下。 | 可在 CLI 命令行中通过以下参数设置: -

2020-08-26 14:52:11

ArangoDB 多模型数据库概念

写在前面本文大部分是基于ArangoDB的论文的翻译,在翻译过程中加入了自己的一些理解和说明。无论是为一个新的项目或者正在开发的功能模块又或者某一次系统升级去选择技术方案的时候,我们很难做出一个从始至终都非常match的技术方案或者工具,尤其是在为项目选择合适的数据库时,我们更是难以选择,是文档型数据库?K-V数据库?RDMS?还是图数据库? 在软件领域一直存在一种理论:“one size does not always fit all”,但是该理论是否正确,业界的众多专家一直争论不休。该理论建议大型

2020-08-23 13:33:01

jackson 将 json 转换为 List 泛型

下面是一个常用写法示例,但是不通用:// 返回 List<User>return mapper.readValue(jsonString, new TypeReference<Lits<User>>() {});如果需要将上述方法抽象为一个公共的方法,常规来说需要传入 TypeReference 实例对象,比较麻烦。下面给出的代码方法,可以实现通用。将其抽象为通用方法代码为: /** * json字符串转成list * * @param jso

2020-08-11 16:05:08

关于Spring Bean的生命周期中几个常用方法(@PostConstruct、@PreDestroy 等)的执行顺序

按如下顺序执行:1、初始化顺序构造方法()BeanPostProcessor.postProcessBeforeInitialization()@PostConstructInitialingBean.afterPropertiesSet()BeanPostProcessor.postProcessAfterInitialization()2、关闭服务容器后@PreDestroyDisposableBean.destroy()(END)...

2020-08-10 16:50:13

springboot docker 输出日志乱码问题

问题就是这么个问题,日志中文乱码,一串问号。解决方案:通过添加启动参数设定编码,如下java $JAVA_OPTS -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -jar app.jar其他参数是我自己使用的,注意其中设置编码的2个参数 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UT

2020-08-03 19:02:32

SpringBoot 关于Feign的超时时间配置

无独有偶,我今天也遇到了一个关于 feign 超时时间配置的问题。今天项目现场提过来一个问题 “公司发过来的封装好的 springboot 项目中的 feign 调用超时时间需要修改”,细问之后,具体的需求场景是这样的:1、首先要对 feign 的超时时间做设置2、然后具体的要求是,只要对某一个微服务的其中一个接口进行特殊配置,对其余的所有接口做一个统一配置公司 feign 版本 spring-cloud-starter-openfeign 2.2.3.RELEASE基于 @FeignClien

2020-07-30 20:09:56

nginx 的离线编译安装

下载官网站点下载nginx安装包,下载最新稳定版(Stable version)。或者访问站点下载rpm版本。本文以 CentOS7 使用 rpm 版本安装为例。安装安装nginx软件的方式一般分三种方法,对于 yum 和 rpm 这两种方式安装均需要 root 用户,因为默认写入的文件目录普通用户没有权限。这两种方式也是最为简单的方式,其中 yum 需要你的机器可以联网,rpm 方式不需要机器联网,但是你需要下载和系统对应的rpm文件。这两种方式资料很多也很简单,本文不做赘述,如有需要请自行查阅

2020-07-29 11:53:45

Spring Boot 配置文件加载的优先级和指定多个外部配置文件

项目配置很多,所以对配置归类到了不同的配置文件中,如下:springboot 默认加载的配置文件为 application.properties ,为了正常加载其他配置文件,在启动类上做了如下引用处理:@SpringBootApplication@PropertySources({ @PropertySource(value = "mybatis.properties", ignoreResourceNotFound = true), @PropertySource(value = "co

2020-07-28 17:40:23

Rancher 升级(v2.4.4 -> v2.4.5)

rancher 升级(v2.4.4 -> v2.4.5)停止容器v2.4.4,以旧容器名称 rancher 为例docker stop rancher从停止的rancher创建一个数据容器docker create --volumes-from rancher --name rancher-data rancher/rancher:latest创建备份压缩包docker run --volumes-from rancher-data -v $PWD:/backup busybox ta

2020-07-25 11:06:13

rancher2.x连接私有仓库harbor

我搭建了一个Rancher2.4.4版本环境,因为之前已经有一个独立搭建的Harbor,现在需要在Rancher中部署Harbor中的镜像,问题是当我按如下图部署服务后,rancher不能正常拉取我原有的harbor中的镜像:按如图配置拉取我harbor中的镜像出现了错误错误提示如下:ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: unauthorized: unauthorized to acc

2020-07-19 21:57:37

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享王者
    分享王者
    成功上传51个资源即可获取