自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 Feign挡板

最近在开发过程中,需要访问一个第三方系统的部分接口。但是第三方系统只提供生产环境供我们调用。由于项目在迭代过程中涉及到大量地方的测试并且第三方系统不允许将测试数据推送到对方的生产环境,我们采用了挡板的方式来保障测试的进行。 在我方项目调用第三方的系统,我方采用的是feignClient 调用的方式。当前spring微服务在各个系统中应用的范围越来越广,当前挡板适用于feign调用。使用方式是 1.在使用的feign调用方法上加上@HttpBaffle注释。 2.将jso...

2021-04-25 15:42:41 647

原创 java基于svnkit Api的开发

在java基于svnkit Api的开发过程当中,一个错误困扰了我很长时间,在调试过程中频繁的报一个错误,svn的更行操作总是不成功。        这个错误是SVNKIT-182 Received fatal alert: bad_record_mac;              相关原因我查询了很多的文档,初步估计是个jar包版本不兼容的问题,因为本机上Svn客户端是TortoiseS

2013-06-13 10:23:12 2144 1

原创 文件上传时各配置目录优先级详解

文件上传配置优先级

2023-10-23 20:02:36 496

原创 如何获取方法上声明的注解

对于CGLIB增强的类,需要先获取获取到增强类的目标类,获取到目标类后就可以通过getMethods方法获取到方法,通过获取方法上的注解方法最终获取到方法上的注解。开发过程当中部分场景需要获取到方法或类上的注解,但是经常会有无法渠道注解的情况,这种情况很可能是该注解所在的类是一个代理类,比如被AOP动态代理【注意:通过】。本文以CGLIB为例,说明为什么无法取到方法或类上的注解,还有如何取到注解。也就是说增强类方法列表中没有获取到注解信息,增强类的目标类的方法列表中得到了注解信息。

2023-10-16 20:01:27 233

原创 logback服务器日志删除原理分析

logback日志删除规则

2023-10-16 19:22:04 2496

原创 记一次SpringBoot中Service层未注入排查

查看Application.java启动类,发现Application类上没有配置ComponentScan,那么SpringBoot默认扫描Application文件所在同级目录下的所有类。发现ChildrenOneService和ChildrenTwoService在Application文件所在的同级目录下。所以在将ChildrenOneService和ChildrenTwoService类由抽象改为普通类后,注入成功了。检查这两个类发现这两个类的类定义里使用了abstract关键字来修饰类名。

2023-10-12 10:52:37 352

原创 SpringBoot RestControllerAdvice异常处理适配原理

RestControllerAdvice适配优先级

2023-09-28 17:06:31 231

原创 SpringSecurity源码分析(二) SpringBoot集成SpringSecurity即Spring安全框架的执行过程

SpringSecurity的执行过程

2023-02-23 20:26:05 396

原创 SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

SpringSecurity源码学习,本文主要讲述Spring安全框架的加载过程

2023-02-19 11:37:36 1280

原创 如何在SpringBoot项目中访问静态资源

SpringBoot项目中访问静态资源

2023-01-20 16:15:55 2584

原创 SpringMvc源码分析(五) 处理视图

视图处理过程

2023-01-20 15:44:35 1328

原创 SpringMvc源码分析(四) 请求执行过程之执行MethodHandler

Spring拦截器即方法的执行过程

2023-01-19 14:52:11 1183

原创 SpringMvc源码分析(三) 请求执行过程之获取MethodHandler

本文主要讲述当请求发起后DispatcherServlet是如何获取到MethodHandler的

2023-01-18 11:27:33 1209

原创 SpringMvc源码分析(二) 请求执行前的准备过程:@Controller/@RequestMapping注解解析为RequestMappingInfo的过程

本文主要讲述@Controller 和 @RequestMapping注解是怎么解析成后面调用需要的RequestMappingInfo对象的

2023-01-16 10:40:03 549

原创 SpringMvc源码分析(一):启动tomcat服务器,加载DispatcherServlet并将DispatcherServlet纳入tomcat管理

SpringMvc源码学习

2023-01-11 15:50:41 870

原创 Cannot download sources Sources not found for 问题解决方案

Cannot download sources Sources not found for:问题处理

2023-01-03 16:38:30 619

原创 读取excel中的url链接下载图片并生成新excel保存图片

通过hutool读取excel中的链接并获取下载链接中的图片保存到生成的excel上,该代码只是一个玩具。

2022-08-29 11:08:43 1020

原创 使用netstat获取socket连接是哪一个应用

获取socket对应的应用

2022-08-18 15:16:17 273

转载 Linux 常用命令

一、Linux下常用命令:文件与目录操作basename:从文件名中去掉路径和扩展名cd:切换当前工作目录到指定目录chgrp:改变文件所属组chmod:改变文件的权限chown:改变文件的所有者和组cp:复制文件或目录dd:复制文件并转换文件内容file:确定文件类型find:在指定目录下查找文件并执行指定的操作ln:创建文件链接locate/sloc...

2022-07-11 14:55:31 157

原创 SpringBoot启动时实现RocketMQ动态注解

RocketMQ动态注解

2022-07-06 17:15:36 1255

转载 线程安全性分类

线程安全分类

2022-06-29 16:52:29 120

原创 基于数据库唯一索引的分布式锁

分布式锁

2022-06-28 14:57:46 321

原创 mybatis sql xml文件读取源码分析

在执行一个自定义sql语句时,dao对应的代理对象时如何找到sql,也就是dao的代理对象和sql之间的关联关系是如何建立的。 在mybatis中的MybatisPlusAutoConfiguration类被@Configuration注解,在该类中通过被@Bean注解的sqlSessionFactory方法向spring上下文注入bean并生成SqlSessionFactory类型的bean实例。关注该方法的最后一行代码。 @Bean @ConditionalOnMi...

2022-03-21 09:18:29 757

原创 基于MapperScan注解的Mybatis动态代理加载机制

1.在springboot项目通过MapperScan注解方式,扫描dao,并通过动态代理的方式。/** * 程序注解配置 * * @author ruoyi */@Configuration// 表示通过aop框架暴露该代理对象,AopContext能够访问@EnableAspectJAutoProxy(exposeProxy = true)// 指定要扫描的Mapper类的包的路径@MapperScan("com.ruoyi.**.mapper")public class Ap

2022-03-20 15:30:24 1104

原创 swagger报Whitelabel Error Page status=405问题解决

访问swagger链接时报如下错误Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Thu Mar 17 20:14:30 CST 2022There was an unexpected error (type=Method Not Allowed, status=405).Request method 'GE.

2022-03-17 20:16:24 4455 4

原创 一、SpringBoot整合Mybatis源码学习

MyBatis是一款优秀的持久层构架,它支持定制化SQL语句、存储过程以及高级映射,可以通过简单的XML或注解配置和映射原生信息,将POJOs映射成数据库中的记录,从而方便进行增删改查的操作一直想学习下常用的ORM框架Mybatis,在学习这个框架时脑海中存在以下几个问题:1.springboot在服务启动时是怎么加载接口dao,是如何读取并解析xml配置文件的?2.spring中dao层对应的方法的是怎样执行的?3.执行过程中事务是怎么实现的?4.经常说的mybatis一级缓存和二级缓

2022-03-16 16:51:26 85

原创 FeignClient配置Apollo动态url不生效问题

最近公司同事遇到一个问题,在FeignClient注解里配置动态url不生效。配置为@FeignClient(name = "xxxService",url="${timi.url}")。该动态url读取的apollo的application命名空间里的配置。 问题出现的原因时yml里配置...

2021-12-24 17:12:21 3027

原创 Spring未配置Apollo application命名空间为何还能加载配置

spring在启动时会读取yml中对应的配置app.apollo.bootstrap.namespace,通过该命名空间去apollo读取对应的配置。详见:SpringBoot启动加载Apollo配置过程_xl649138628的专栏-CSDN博客 但是在实践中我们发现yml中未配置application命名空间的情况下我们还是能够读取application的配置。现在我们通过追踪源码来拨开迷雾寻找真相。 在Apollo中存在PropertySourcesP...

2021-12-24 16:32:03 1576

原创 Feign调用fallback机制不生效问题

最近发现公司代码里的feign调用fallback机制没有生效原因是feign.hystrix.enabled = false

2021-12-21 17:27:53 1688

原创 SpringBoot启动加载Apollo配置过程

1.在SpringBoot项目启动时通过SpringApplication.run方法来启动项目public class ApolloApplication { public static void main(String[] args) { SpringApplication.run(ApolloApplication.class, args); }}2.点击run方法并找到run方法的实际执行方法,在run方法种有一个prepareContext方法里实

2021-12-21 15:57:00 4233

原创 Spring自定义注解的动态参数

最近写了一个自定义注解@OutHttp应用于方法其中包含参数url,但是测试和生产环境的url不一致。如果不通过动态参数的方法是无法适配测试和生产环境不一致的情况。 在项目中使用的配置中心是携程的apollo,如果了解过apollo的人都知道,spring在启动过程中将Apollo中的配置通过请求将数据获取到应用并放置在context 环境变量envrioment的propertySource中。而propertySource是一个Map接口,只要获取到key就可以获取到valu...

2021-12-20 09:16:47 1968

原创 喜马拉雅jssdk接入demo JAVA版

package com.changshin.himalaya;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;import java.security.InvalidKeyException;import java.security.KeyManagementException;import java.security.KeyStoreExc..

2021-06-04 10:45:42 354

原创 基于线程池的多线程查询功能

package com.changshin.threadpool;import javax.annotation.PostConstruct;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;public class ThreadPool { /** * 连接池 */ private ExecutorService pool; @PostC.

2021-04-25 13:49:16 337

原创 FileOutPutStream读取服务器上的Excel文件下载时文件名称只有.xls[1]

修改前代码、修改后代码原因是穿过来的fileName 是中文,而http header头要求其内容必须为iso8859-1编码。如String s_iso88591 = new String("海".getBytes("UTF-8"),"ISO8859-1"),这样得到的s_iso8859-1字符串实际是三个在 ISO8859-1中的字符,在将这些字符传递到目的地后,...

2019-04-18 15:38:51 1361

转载 PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll

由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google + 动手实践,终于搞定了这个问题。现在把笔者解决的过程记录下来,分享给遇到同样问题的网友们。首先到Oracle官网上下载一个32位的客户端(instantclient),一定要下载 basic 版本的,不要下载 basi

2016-11-20 16:44:26 528

原创 LODOP横向打印预览正向显示

以下是横向打印预览代码,如果要预览内容正向显示需加上红色标记代码function CreaeteListPageTransverseYZ(){LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_打印表格");""LODOP.SET_PRINT_PAGESIZE(2,"297mm","210","");var strBodyStyle=""+$("#previe

2016-01-28 15:40:21 15826 1

转载 AIX系统修改系统时间

linux下用date -s "20131215 09:02:25"把时间设为2013年12月15日9点2分25秒。而aix呢?它不认-s这个参数:date -n mmddHHMMYY,mm表示月分,dd表示日期,HH表示小时,MM表示分钟,YY表示年份。如:date -n 1215090213表示把当前时间设为2013年12月15日9点2分,秒数无法修改。MAN中的解释如

2015-08-05 11:24:23 1389

转载 [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)

在csdn看到此文章很经典,保存以防忘掉! jQuery片段:[javascript] view plaincopy(function(){  //这里忽略jQuery所有实现  })();    半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的。然而,在看到源码的第一

2014-12-24 15:05:56 510

转载 java中静态代码块的用法 static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执

2014-12-19 17:12:28 378

转载 动态代理

Java动态代理一——动态类Proxy的使用1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理? 答:因为动态代理可以

2014-12-18 09:42:54 416

spring 源码分析

spring 源码分析设计spring IOC spring MVC 以及 Spring AOP等

2014-11-26

空空如也

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

TA关注的人

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