自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Git 仓库迁移到 SVN 仓库

将本地.gitignore文件里的内容添加到./git/info/exclude中 —— 具体配置内容可以网络上,或者如我一样直接使用visual studio自动生成的配置内容。git show-ref —— 记录下remote/git-svn的commit值,其实是远程项目分支的最后一次commit值[parentcommit]git svn show-ignore > ./git/info/exclude —— 这个好像是针对有svn忽略处理的情况,我们可以忽略这一步。查看当前的分支的提交记录。

2023-07-20 17:04:21 988

原创 Ubuntu永久修改系统时间

Ubuntu修改系统时间

2022-07-08 11:38:34 2619

原创 SpringBoot多数据源

多套数据源:​ 定义:在项目中针对一个数据库都为其建立一套独立的数据处理逻辑,包括数据源(DataSource),会话工厂(SqlSessionFactory),连接,DAO操作。一、搭建springboot工程​ 项目工程结构如下所示,主要从实体类和Mapper层开始进行划分,实际工作可从Service层进行划分。├─config ---------------------------------- // 数据源配置├─controller ------------------------

2022-02-07 15:27:34 25870 1

原创 Seata分布式事务

Seata分布式事务​ 在单体项目中,一般涉及到的数据源是唯一的,我们可以使用数据库提供的本地事务保证数据的一致性。但是在微服务或者多数据源的项目中,涉及到跨库操作,单个数据库的本地事务无法保证不同数据库的数据一致性。​ Seata 提供了 AT、TCC、SAGA 和 XA 事务模式,打造一站式的分布式解决方案,设计思路是将一个分布式事务理解成全局事务,里面包含若干分支事务,每个分支事务是一个满足ACID的本地事务,因此我们可以操作分布式事务像操作本地事务一样。Seata定义了3个模块来处理全局事

2022-02-07 15:25:03 879

原创 熔断与降级

熔断与降级Sentinel:支持的规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 、热点参数规则一、流量控制:设计理念:资源的调用关系,例如资源的调用链路,资源和资源之间的关系;运行指标,例如 QPS、线程池、系统负载等;控制的效果,例如直接限流、冷启动、排队等。二、熔断降级:设计理念:通过并发线程数进行限制:​ 当线程数在特定资源上堆积到一定的数量之后,对该资源的新请求就会被拒绝。堆积的线程完成任务后才开始继续接收请求。通过响应时间对资源进行降级:

2022-02-07 15:23:37 684

原创 RestTemplate连接https,证书匹配失败

RestTemplate连接https,证书匹配失败使用RestTemplate进行接口转发,转发地址是 https://内网IP 的格式,由于证书是自签的,所以在调试的时候接口报错,在jvm中无法找到匹配的SSL证书:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested tar

2022-02-07 15:22:57 2717 1

原创 nacos开启权限认证

nacos开启权限认证​ 不开启会出现身份认证绕过漏洞,可通过post请求随意添加nacos账户版本信息:nacos:2.0.3 spring-cloud-alibaba-dependencies:2.2.5.RELEASE启动nacos时,添加运行参数配置,开启权限认证,具体参数可以看这里https://github.com/nacos-group/nacos-docker:NACOS_AUTH_ENABLE=truespringboot配置文件添加nacos账户和密码:

2022-02-07 15:22:03 3309

原创 Orthanc 编译安装

Orthanc 编译安装一、系统版本服务器版本:Ubuntu 18.04.6 LTSOrthanc版本:1.9.7​ 看官方手册,官方在Ubuntu/Debian系统源提供了预编译好的安装包,本来根据手册文档,使用 apt-get install 命令进行Orthanc安装,在后面安装 orthanc-mysql 插件的时候,发现在Ubuntu18中没有提供与编译好的 orthanc-mysql 插件,只有在20版之后的Ubuntu才有提供,所有就索性自己下载源码包编译安装。二、搭建1. 编

2022-01-16 23:03:40 2450 3

原创 DICOM3.0标准梳理

DICOM3.0标准梳理:自1993年DICOM3.0首次发布后,DICOM标准不断的发展,每年都会进行多次扩充和修改。目前,DICOM标准共有22个章节,但是随着网络技术的发展,第9章和第13章节关于点对点连接传输的部分已被淘汰删除。一、DICOM标准范畴:Part 1: 引言与概述(Introduction and Overview):​ 定义了文档中使用的属于并且对标准其他章节的概述。Part 2: 兼容性(Conformance):​ 定义了要求制造商精确描述其产品兼容性声明。Part

2022-01-16 22:51:23 4829

原创 HttpClient 发送post请求,返回的JSON转成字符串,中文为unicode编码

HttpClient 发送post请求,返回的JSON转成字符串,中文为unicode编码“\u8eab\u4efd\u8bc1\u53f7\u7801\u4e0d\u5408\u6cd5”String content = EntityUtils.toString(httpResponse.getEntity())方法一:自己写方法转码 public static String decodeUnicode(String theString) { char aChar;

2021-01-20 15:40:18 2423

原创 springboot项目,在docker部署时,遇到时区的问题

问题描述:项目中在redis和mysql中均保存了时间数据,但是在dockers容器中默认时区为格林时间,比北京时间(东8区)晚8个小时,造成时间不一致。springboot项目中,代码new的时间日期时区根据系统时区而定,所以是东八区的时间,但是将时间日期以json的格式传给前端时,jackson会转为问题一解决方法:设置docker容器中的时区为东八区进入容器:docker exec -it 容器id /bin/bash进入容器/usr/share/zoneinfo/Asia目

2020-11-28 22:01:06 1128

原创 JWT生成与解析遇到的奇怪问题(待解决)

JWT生成与解析遇到的奇怪问题(待解决)创建JWT令牌时使用的密钥为abcd/** * 创建Jwt令牌 */@Test public void testCreateJwt() { JwtBuilder builder = Jwts.builder() .setId("123456") .setSubject("明明") .setIssuedAt(new Date())

2020-11-20 20:37:22 1520 3

原创 HashMap的数据结构(JDK1.8及之后)

HashMap的底层数据结构是 数组 + 链表 + 红黑树当我们new一个HashMap集合对象时,JVM不会立刻初始化一个哈希表,而是等到我们给集合对象添加第一个元素时,才会初始化哈希表(懒加载)。存储一个元素时,是如何确定元素的存放位置呢?public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}static final int hash(Object key) {

2020-07-31 21:36:33 344

原创 整数型包装类对象进行==比较时出现的问题

== :对于基本类型,比较的是值;对于引用类型,比较的是地址值。public class Demo02Test { public static void main(String[] args) { Integer i1 = new Integer(10); Integer i2 = new Integer(10); System.out.println(i1 == i2); //false System.out.println(

2020-07-27 18:24:25 222

原创 Java基础练习:6—10

基础题六:/* 题目: 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析: 利用辗除法。先利用辗除法求出两个数的最大公约数, 最小公倍数 = (数1 × 数2)/ 最大公约数*/import java.util.Scanner;public class Program06{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print(

2020-07-15 10:24:12 151

原创 Java基础练习:1—5

基础题一:/** 古典问题: 有一只兔子,从出生后第3个月起每个月都生一只兔子, 小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死, 问每个月的兔子只数为多少? 程序分析: 仔细分析可知,这是一个求斐波那契数列:1,1,2,3,5,8,13,21.... 数列的第一项和第二项都是1,从第三项开始,每一项的值为前两项的值的和 解决方法:使用递归,返回前两项的值*/import java.util.Scanner;public class Program01{

2020-07-08 15:55:52 140

原创 排序——常见的排序算法代码集合(Java)

import java.util.Scanner;public class Sort{ /* 排序方法菜单 */ public static void sortMenu(){ System.out.println("======= 排 序 方 法 ======="); System.out.println("|| ||"); System.out.println("|| 1.直接插入排序 ||"); System.out.

2020-07-08 11:21:09 104

原创 JVM原理—垃圾回收机制算法

JVM原理—垃圾回收机制算法在面向对象语言程序中,我们的程序在运行中会创建很多对象,程序会为对象在内存中开辟一段空间并分配好内存地址,当对象使用结束后,需要释放占用的内存空间,释放对象内存的机制就叫垃圾回收机制(Garbage Collection,GC)。在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数,而C++中,我们则使用运算符 new 和 delete 来管理内存,这样虽然能灵活有效的申请和释放内存,但是对程序员来说,有时候使一种负担,而Java的垃圾回收机制则很

2020-06-13 22:06:06 134

原创 JVM原理—Java内存结构

JVM原理—Java内存结构Java文件经过编译后会生成class字节码文件,运行程序时,字节码文件经过类加载器加载进内存。Java的内存空间主要划分为4个部分:方法区、堆、栈和本地方法栈。栈(Stack):用于存放方法中的局部变量,局部变量包括编译期基本数据类型(8个基本数据类型)、对象引用(地址指针)。每个方法的运行一定在栈中,因为方法在执行的同时会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息,因此,可以理解为每个栈是独立的,线程私有的,即线程安全

2020-06-13 17:44:52 78

空空如也

空空如也

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

TA关注的人

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