- 博客(83)
- 收藏
- 关注
原创 Docker 部署医学影像 DICOM 服务器 Orthanc
Orthanc 是一个轻量级的,基于 REST 的 DICOM 服务器,主要用于卫生保健和医疗研究。Orthanc 可将任意运行了 Windows 和 Linux 的计算机变成 DICOM 存储(或者说是一个小的 PACS 系统),其架构是轻量级的,没有复杂的数据库管理,不依赖于第三方软件。
2025-03-21 16:19:03
330
原创 Docker 安装 Redis 挂载配置
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
2023-12-05 18:36:05
1037
原创 Jenkins 整合 Docker 自动化部署
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
2023-11-24 15:24:33
2211
原创 Liunx Ubuntu Server 安装配置 Docker
在Ubuntu上安装Docker后,默认情况下只有root用户和拥有sudo权限的用户可以直接运行Docker命令。如果你想将其他用户添加到Docker用户组中,使其能够无需sudo权限来运行Docker命令。在Docker中开放端口2375意味着允许远程连接到Docker守护程序,这样可以通过网络连接来管理Docker守护程序,这可能会带来安全风险,通过服务器防火墙安全组来控制ip访问。
2023-11-24 11:13:08
1107
原创 Docker安装Nginx(配置SSL证书)
因为/home/nginx/config/nginx.conf中:include引入了/etc/nginx/conf.d/*.conf。故直接对 /home/nginx/conf.d/default.conf 进行配置。这里的Nginx与转发目标在一个服务器上,故直接采用host模式。2,SSL证书放置到/home/nginx/ssl目录下。3,服务器防火墙指定ip的443, 80 端口正常开启。替换为http和https端口映射。启动容器将配置文件复制到宿主机目录中。如果不在一个服务器上,可自行将。
2023-09-19 13:39:45
1173
原创 分布式事务解决方案Seata 整合 Spring Cloud + Nacos
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
2023-05-23 13:48:49
1274
2
原创 设计模式之观察者模式
定义与介绍指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。优点:降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。目标与观察者之间建立了一套触发机制。缺点:目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率。策略模式的实现抽象主题(Subject)角
2022-03-13 16:33:59
144
原创 设计模式之装饰者模式
定义与介绍指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。优点:装饰者是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果缺点:装饰者模式造成很多的策略类,增加维护难度。策略模式的实现抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。具体构件(ConcreteComponent)角色:实现
2022-03-12 10:15:00
472
原创 设计模式之策略模式
定义与介绍该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。优点:多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句,如 if…else 语句、switch…case 语句。策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。策略模式提供了对开闭原则
2022-03-11 10:00:00
130
原创 设计模式之单例模式
设计模式之单理模式定义与介绍指一个类只有一个实例,且该类能自行创建这个实例的一种模式。使用场景: 某类需要频繁实例化,而创建的对象又频繁被销毁的时候,如多线程的线程池、网络连接池等。优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。避免对资源的多重占用(比如写文件操作)。缺点:单例模式的功能代码通常写在一个类中,如果功能设计不合理,扩展困难。单理模式的实现1. 懒汉式,线程不安全使用了懒加载的设计,即只在需要调用
2022-03-10 11:33:41
290
1
原创 设计模式之代理模式
定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。1. 静态代理创建一个接口,然后创建被代理的类实现该接口并且实现该接口中的抽象方法。之后再创建一个代理类,同时使其也实现这个接口。在代理类中持有一个被代理对象的引用,而后在代理类方法中调用该对象的方法。功能结构:抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(Real Subject)类:实现了.
2021-07-15 11:54:18
135
原创 设计模式之工厂模式(简单工厂,工厂方法,抽象工厂)
简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)简单工厂其实不是一个标准的的设计模式。 23种设计模式中只有「工厂方法模式」与「抽象工厂模式」1. 简单工厂模式//接口类public interface Food { void food();}// 实现类1public class RiceBook implements Food{ @Override public vo.
2021-07-14 09:54:54
220
原创 ElasticSearch 基本使用
elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。1. 核心概念ES是面向文档编程,与关系型数据库的对比DBES数据库(database)索引(indices)表(tables)类型(types.
2021-04-14 16:34:51
439
原创 ElasticSearch 下载与安装
ElasticSearch :存储和检索 - 安装ik分词器,进行中文分词ElasticSearch-head:可视化数据的页面Kibana:针对ES的可视化平台,用来搜索交互存储,可动态生成数据图表 注意:版本需要一致1, ElasticSearch安装下载地址:https://www.elastic.co/cn/downloads/elasticsearch# 启动ElasticSearchcd bin/elasticsearch.bat访问:http://local.
2021-04-13 16:56:13
596
原创 Spring Boot 整合 RabbitMQ 消息确认机制
1. 消息确认机制在使用RabbitMQ的时候,可能会出现消息丢失的情况,这个时候就需要使用消息确认机制来保证消息的可靠生产和可靠消费生产端消息确认: ConfirmCallback:消息从生产端到交换机触发该回调函数 (无论成功或失败) ReturnsCallback:消息从交换机到到队列触发该回调函数(消息发送失败)消费端消息确认: 手动ACK进行确认2. 生产端消息确认2.1 配置文件spring: rabbitmq: # 开启confirm消息发送回调函
2021-04-01 12:26:53
455
原创 Spring Boot 整合RabbitMQ 配置文件方式
1. 初始化配置1.1 引入依赖<!--spring整合RabbitMQ--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency><!--spring-web--><dependency>
2021-03-30 19:10:27
1008
3
原创 MyBatis SQL语句占位符
${}字符串替换,直接将传入的值作为参数拼接到sql上常见使用:对表名的和分组,排序字段的映射可能会导致SQL注入问题:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。#{}MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,将传入的参数变为一个字符串来进行拼接常见使用:对dao层的where条件映射或参数
2021-02-07 18:05:40
1002
1
原创 Valitade参数校验
引入依赖<!-- hibernate validator--><dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.2.0.Final</version></dependency><!--定义了许多常用的注解,如果是
2021-01-25 21:14:26
304
原创 Spring线程池配置
配置文件@Configuration@EnableAsyncpublic class AsyncExecutorConfig { @Value("${thread.number}") private Integer threadNumber; @Bean("asyncThreadExecutor") public Executor asyncThreadExecutor() { ThreadPoolTaskExecutor executor = ne
2021-01-25 11:52:01
1610
原创 feign请求头传递
前言:在我们token进行鉴权操作时,使用feign进行请求转发会导致请求头的丢失,这个时候就需要进行请求头的传递操作步骤一:创建feign拦截器@Componentpublic class FeignRequestInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { ServletRequestAttr
2020-10-16 16:43:44
2427
2
转载 Java之BigDecimal详解
1、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDeci
2020-09-17 16:37:12
214
1
原创 Java8 新特性
Lambda表达式本质上是一个对象,依附于函数式接口使用 ()-> {} 减少内名内部类的使用,通过上下文进行类型推断如果主体包含了一个语句,就不需要使用大括号如果主体只有一个表达式返回值则编译器会自动返回值函数式接口定义有且只有一个抽象方法被@FunctionalInterface注解修饰即使没有使用次注解次注解进行修饰,只要接口满足函数式接口的要求,也会被认为是一个函数式接口其他的类都直接或间接的继承Object类,所以在方法中定义的Object的
2020-09-09 14:43:32
208
原创 EasyExecl 简单导出使用整合
步骤一:导入EasyExecl<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version></dependency>步骤二:对需要导出的类进行注解注解说明: 修饰类的注解:(建议直接复制实例的高度,格式已经调..
2020-09-06 17:30:18
816
1
原创 Spring Boot 常见监听类
前言有时候我们可能需要在Spring Boot 容器启动时做一些操作,执行一些代码Spring 提供的监听器可以很方便的实现这些需求容器启动时import org.springframework.context.ApplicationListener;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.event.ContextRefreshedEvent
2020-09-03 20:57:15
285
原创 Canal 数据库监控
前言:基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费,可以有效监控数据库的字段值的修改Canal的下载与安装访问下载网址,直接进行下载,或者使用命令进行下载wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz现在完成后进行解压,修改 conf/example/instance.properties 配置文件## mysql
2020-09-03 20:32:31
649
原创 RibbitMQ 实战教程
RabbitMQ 实战教程1.MQ引言1.1 什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、
2020-08-30 16:32:09
232
原创 Jackson 指定序列化格式
前言:在java中,会默认使用 jackson 来进行对象的序列化和反序列化,例如:全大写的 NAME 会被自动转换成 nAME (驼峰式),我们的字段首字母就会被转成小写,此时就不是我们想要的结果代码示例@JsonProperty:作用于属性上,作用是把该属性的序列化指定的名称name:指定序列化的名称@JsonIgnore:在实体类向前台返回数据时用来忽略不想传递给的属性package com.yuchai.as.master.data.itf.sourcelist.dto;
2020-08-25 20:17:25
1487
原创 Docker技术总结
01. 镜像相关命令查看镜像: 查看本地所有的镜像docker imagesdocker images -q #查看所有镜像的id搜索镜像: 从网络中查找需要的镜像docker search 镜像名称拉取镜像docker pull 镜像名称:版本号删除镜像: 删除本地镜像docker rmi 镜像id #删除指定本地镜像docker rmi `docker image -q` #删除所有本地镜像02. 容器相关命令查看容器docker ps
2020-08-22 14:53:00
181
原创 Spring Boot 整合 Druid 连接池
Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。并支持数据库的SQL执行监控,在一定程度上可以提高数据库的访问速度,是市面上主流程数据库连接池。导入Maven依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</
2020-08-21 09:48:15
218
原创 Spring Boot 注入静态成员变量
前言: 在属性被 static 修饰后,Spring 便不能直接对变量进行直接注入,这是因为被 static 修饰后,会被放到常量池中,而Spring 需要使用set方法进行注入,这是就需要我们手动进行配置注入成员变量第一步:在类上添加@Component注解,让Spring扫描到这个类第二步:为成员变量添加set方法,注意去掉static关键字,否则会导致注入失败第三步:在set方法上添加@Resource注解,告诉Spring自动注入这个方法/** * @author: mi
2020-08-17 10:56:06
688
原创 Git 密码输入错误解决方案
有时候我们不小心输入了密码,想要重新输入一次,但是始终找不到重新输入的提示框,这是因为 Windows缓存了我们的Git账号密码作为凭证,帮助我们下次自动登录修改Git凭证总结:控制面板 -> 用户账户 -> 凭证管理器/管理windows凭证 -> 修改用户名和密码注意:不同版本的Windows可能有些许的不同,但是总体上都是大同小异,找到拼凭证管理器即可第一步:打开控制面板第二步:打开用户账户第三步:打开凭证管理器下的管理Windows凭证
2020-08-17 10:19:41
2852
原创 开启 Spring Cloud Feign 的日志打印
步骤一:添加一个全局配置类import feign.Logger;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class FeignConfiguration { @Bean Logger.Level feignLoggerLevel() { ..
2020-08-12 18:44:35
543
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人