- 博客(46)
- 资源 (17)
- 收藏
- 关注

原创 spring-cloud-consul配置中心获取指定路径下的配置
一、consul配置中心存在的问题:我们使用consul作为配置中心时,在springboot项目的配置文件中一般会添加如下配置spring: profiles: active: dev application: name: customer-service config: import: optional:consul:localhost:8500 cloud: consul: health-indicator: use
2021-09-18 19:41:05
1684

原创 idea 远程调试springboot项目
项目部署在linux服务器上,启动命令为:java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=12345 project.jar --server.port=8088idea上创建remotedebug运行
2021-08-27 17:42:16
245

原创 多个docker-compose文件共享一个网络
第一个docker-compose文件:docker-compose1.yml其中指定了一个名称为service-net的网络,所用的ip段为172.19.0.0/16同时给服务service2分配了固定的ip为172.19.0.21version: "2"networks: service-net: name: service-net ipam: config: - subnet: 172.19.0.0/16 #用于指定网络ip段serv
2021-08-25 20:38:13
3361

原创 centos 安装docker及docker-compose
安装docker$ curl -fsSL get.docker.com -o get-docker.sh$ sudo sh get-docker.sh --mirror Aliyun$ sudo systemctl enable docker$ sudo systemctl start docker安装docker-compose下载地址:https://github.com/docker/compose/releases将下载好的文件复制到/usr/local/.
2021-08-16 12:04:03
177

原创 nginx 丢失端口问题
问题描述:我使用docker部署的nginx服务,nginx内部是80端口,映射到宿主机上的5001端口上,nginx的内部配置如下:upstream upstream{ server xx.xx.xx.xx:8080;}server { listen 80; server_name xx.xx.xx.xx; #charset koi8-r; #for server access logs. if ( $time
2021-07-27 18:52:08
2552

原创 docker-compose部署consul集群
services: consul1: image: consul:1.9.7 ports: - "8500:8500" volumes: - /cloud/data/consul/data:/consul/data container_name: consul1 restart: always command: agent -server -ui -node=1 -client='0.0.0.0' -bootstrap.
2021-07-27 17:34:20
244

原创 easyExcel读数据后在写入另一个excel
需求说明:如下图所示,excel中有4个sheet,每个sheet的数据格式都一样,有5列,第一列为订单id,现在要根据订单id到数据库中查询出其他几列的信息并补充到excel中。代码如下:首先为service中的主方法 public void userMessage() {// String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
2021-06-18 17:30:10
3209

原创 feign如何启用httpClient、OKhttp
启用httpClient:网上很多文章都说通过配置feign.httpclient.enabled=true
2021-06-09 17:56:01
3331

原创 Jackson2ObjectMapperBuilderCustomizer不生效解决
@Configuration@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)public class ConvertConfiguration implements WebMvcConfigurer { @Autowired(required = false) private MappingJackson2HttpMessageConverter mappingJackso.
2021-06-07 20:03:32
11043

原创 前端传入数字,后端用枚举接收统一处理
举例:有性别枚举:public enum GenderEnum implements BaseCodeEnum { male(1,"男"), female(2,"女"); Integer code ; String value; GenderEnum(Integer code , String value){ this.code = code; this.value = value; } @Overri
2021-06-07 19:57:15
2950

原创 springCloud-gateway按照服务名动态路由的改造(三)
springCloud-gateway按照服务名动态路由的改造(二)从上一篇文章中,我们分析知道,按照服务名动态路由无非是构造RouteDefenition的过程不同,是根据从注册中心获取到的服务来动态构造RouteDefenition的各个属性,包括id,uri,Predicate,Filter这几个属性。每个RouteDefenition对应后端的一个服务。...
2021-05-28 19:14:20
798

原创 springCloud-gateway按照服务名动态路由的改造(二)
按照服务名动态路由如果按照我们上面的理解,所有的路由在程序中都对应一个RouteDefenition对象,下面我们来看看gateway是如何根据服务名来生成对应的路由对象RouteDefenition的?打开GatewayDiscoveryClientAutoConfiguration,根据我们的配置会生成一个DiscoveryClientRouteDefinitionLocator对象bean。下面我们分析一下DiscoveryClientRouteDefinitionLocator的构造
2021-05-28 15:43:32
1752
2

原创 springCloud-gateway按照服务名动态路由的改造(一)
我们知道在gateway中加入下面的配置,则网关会根据路径中的服务名会自动路由到对应的服务,如 http://gateway.com/my-service-name/login这个请求,将会根据my-service-name这个服务名路由到该服务。spring: cloud: gateway: discovery: locator: enabled: true #开启根据微服务名称自动转发 lower-case-se
2021-05-26 20:50:16
3880

原创 警告: ParameterizedTypeImpl是内部专用 API, 解决方式
需求: 我需要构造一个A<B>格式的Type,以求jackson反序列化的时候传入,刚开始是用了如下方法:ParameterizedTypeImpl.make(A.class,new Type[]{B.class},null)程序启动时一直包警告。警告原因:ParameterizedTypeImpl 后续版本可能会删除。后面解决方式:使用gson的TypeTokenType wrapperType = TypeToken.getParameterized(A.
2021-05-21 17:05:35
3357

原创 springCloud2020.0.2+springboot2.4.5接入consul注册中心和服务中心
spring: config: import: optional:consul:localhost:8500 profiles: active: dev application: name: my-service cloud: consul: # 配置中心相关配置 config: enabled: true #是否启用配置中心功能 format: yaml #设置配置值的格式 prefi.
2021-05-14 16:56:24
490

原创 gradle 将自定义springboot-starter上传到nexus私服
plugins { id 'org.springframework.boot' version '2.1.5.RELEASE' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'maven' id 'maven-publish' id 'java-library'}group = 'com.xxx.xxx'version = '1.0.1'sourceCom.
2021-04-21 19:02:22
513

原创 Gradle 构建jar包,依赖和配置分离
项目环境:springboot 2.1.5-releasegradle 6.7.xidea2020.3// 将依赖包复制到lib目录task copyJar(type: Copy) { // 清除现有的lib目录 delete "$buildDir\\libs\\lib" from configurations.runtimeClasspath into "$buildDir\\libs\\lib" from configurations.com.
2021-04-19 18:02:30
1271
1

原创 skywalking和JPA冲突问题解决
冲突原因:不加skywalking的时候,JPA接口的代理方式为JDK动态代理,加入skywalking后,JPA的接口代理方式变成了CGLIB。如下图所示为判断JPA接口代理方式的逻辑:之所以加入skywalking后,代理方式变成CGLIB的原因是,skywalking对hasNoUserSuppliedProxyInterfaces方法进来了重新定义。代理的逻辑代码如下图,第二张图是具体的重定义实现。解决方式:我的解决方式就是在afterMethod中增加判断,如果是JPA
2020-07-10 20:10:12
1376
1
原创 chrome浏览器如何设置自动播放音视频
这个的意思是 :通常发生在尝试在没有用户交互的情况下播放音频或视频时。现代浏览器(如 Chrome 和 Firefox)为了防止自动播放广告和其他不受欢迎的内容,要求在播放媒体之前必须有用户交互(如点击或按键)。1、打开chrome://settings/content/sound 页面。2、按照下图添加域名即可。
2024-09-09 17:01:46
3828
原创 linux ls ll命令中文乱码
ls命令显示的结果带有中文的文件名称,全部都是?解决方式:可以使用 ls --show-control-chars解决。
2021-06-29 19:16:13
2282
3
原创 mybatis-plus QueryWrapper 添加limit
其实是在sql的最后加上 limit 相关的语句。QueryWrapper wrapper = new QueryWrapper<>();wrapper.last("limit 1");
2021-06-23 18:07:44
72242
4
原创 flatmap使用
使用场景适用于嵌套list数据结构,想把内部的list数据合并成一个list.。举例如下:public class Test { public static void main(String[] args) { List<List<String>> list = new ArrayList<>(); List<String> list1 = new ArrayList<>();
2021-06-16 10:38:38
3307
原创 class.getTypeParameters()方法
该方法会返回class上定义的泛型变量数组:举例如下public interface First<T,U> { public void test();}public class MainTest { public static void main(String[] args) { Class<First> firstClass = First.class; TypeVariable<Class<First&
2021-06-09 15:57:11
643
原创 java lambda groupingby 结果的value为对象的一个属性
需求如下:将List<Person> 按照id分组,并取name为分组的结果。即结果应该为Map<id,List<Sting>>,而 不是Map<id,List<Person>>实体如下@Datapublic class Person{ private Long id; private String name; }实现如下: Map<Long,List<Stirng>>
2021-05-17 11:49:55
4810
原创 gradle 作为编译工具 lombok 死活不生效解决
在gradle.build文件里的dependencies模块里添加compileOnly 'org.projectlombok:lombok'annotationProcessor 'org.projectlombok:lombok'
2021-04-26 11:13:35
848
1
原创 dolphinscheduler1.3版本源码分析---MASTER模块
在API模块的分析中,我们知道了当任务到达定时器定义的时间时,会在t_ds_command表中生成一条记录。那么谁去消费这张表里的这条记录呢?下面我们分析MASTER模块。1、master的启动过程分析上面的启动过程,我们可以知道masterSchedulerService.start();启动了一个线程,这个线程主要负责处理command表中的记录,下面我们进入到MasterSchedulerService中进行分析二、MasterSchedulerService分析...
2021-01-19 17:43:47
702
原创 dolphinscheduler1.3版本源码分析---API模块
API模块主要功能api模块主要提供对外接口,界面上的对流程、定时的管理等相关操作都是通过调用API模块的接口实现的,API模块直接跟数据库打交道,不会与master和worker模块交互。相关接口概览同时由于api模块集成了swagger,我们可以通过访问 http://xxxx/dolphinscheduler/doc.html来查看详细的API说明流程定时调度逻辑当我们创建好流程,并对流程增加定时管理后,dolphin是如何定时去调度流程的呢?该部分逻辑其实也是在API模.
2020-12-30 15:20:30
1808
原创 spring 替换字符串中的配置信息
public class PlaceholdersResolver { private final static String PLACEHOLDERS_PREFIX = "$"; /** * 对占位符进行解析 * 如果字符串中包含占位符则返回解析后的值,否则返回原值 * @param key * @param environment * @return */ public static String resolve(.
2020-10-13 09:59:52
712
原创 spring-cloud-sleuth链路信息中增加自定义属性
需求说明:我要实现的需求是前端会将页面的pageId放到request heander中,后端会将pageId保存到链路信息中,这样以后就可以查看某个页面上有多少个请求了(链路展示端没用到zipkin,是自定义前端页面)。实现方式:通过研究sleuth的源码,发现sleuth已经提供了这样的方法了,我们只需要配置一下就好了,配置方法如下:1,配置文件:红色部分spring: zipkin: sender: type: kafka ...
2020-05-18 18:31:27
2346
原创 win10 mysql 主从复制(异步复制)配置
一:环境os:win10mysql:5.7.17engine:innoDB。主机ip:192.168.1.132主机数据库端口:3308从机ip:192.168.1.190从机数据库端口:3306二:主机配置2.1:打开my.ini文件,路径在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini。增加如下的配置项即可。...
2019-12-13 15:29:35
387
原创 java lambda 对list实现分组(groubby);并将对象的部分属性作为List对象,然后返回list中的第一个值
List<Persion> pList = new ArrayList<>{...初始化数据}Class Persion{String name;String age;//setter//getter}实现目标:对list按照age分组 并返回分组中第一个persion的name实现:Map<String,...
2019-12-04 16:09:56
4058
原创 java web 解决cors 跨域问题
解决跨域问题要在服务器端解决,在服务器端的响应头中增加如下设置即可://表示允许所有域访问response.headers().set("Access-Control-Allow-Origin", "*");//表示请求头中可以包含任意的属性response.headers().set("Access-Control-Allow-Headers", "*");//表示允许所有的请...
2019-11-22 14:00:10
483
原创 java中lambda表达式双冒号::的使用
1:当 ::前面为一个类名,后面跟一个静态方法时,如下所示,此时等号左边的函数式接口中的方法和静态方法签名一致即可,即方法参数个数和类型一致,如果左边的函数式接口中的方法返回值不是void则要求右边lambda静态方法的返回值和其一致,如果左边的函数式接口中的方法返回值是void,则右边的lambda静态方法的返回值可以为任意类型。2:当::前面为一个类名,后面为一个实例方法时,如下图所示...
2019-11-20 15:06:38
6576
原创 关于String常量池的理解
1:String s1="abc";当我们写这样的表达式的时候,在编译时 “abc”就会在常量池中创建,s1指向的是常量池中“abc”的引用。2:String s2 = new String("abcd")当我们写这样的表达式的时候,在编译时 “abcd”就会在常量池中创建,但是运行时仍然会在堆中创建一个字符串对象。s2引用为堆中的地址。以下的输出为false,因为s2为堆中的...
2019-11-14 11:14:29
284
原创 nexus 私服 提示磁盘空间不足
nexus使用过程中随着资源的增加,磁盘剩余空间将越来越小,小到一定程度后会报以下错误Return code is: 500 , ReasonPhrase:javax.servlet.ServletException: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred whil...
2019-09-19 11:00:50
14059
1
原创 java ThreadLocal 原理说明
准备工作创建一个共享变量ThreadLocal再创建一个向共享变量ThreadLocal 中赋值的线程再创建一个从共享变量ThreadLocal 中取值的线程如下图所示:tl为共享变量ThreadLocalTestThreadForSet 为赋值线程;TestThreadForGet 为取值线程,为保证赋值线程先于取值线程执行,中间加入了等待2秒运行结果:...
2019-08-31 18:25:50
454
原创 macaca-android 安装时生不出apk的解决方法
在没有翻墙软件的时候,我们安装macaca相关模块的时候要用cnpm,不建议用npm命令。使用cnpm i macaca-android g 命令执行安装,我们会发现安装的日志里会出现包含build Fail关键字的日志,这表明该模块下的俩个apk没有生成成功。apk的具体目录为D:\nodejs\node_global\node_modules\macaca-android\node...
2019-07-29 19:15:12
778
1
原创 android 8以后静态注册的广播接收器接收不到广播的解决
android 8.0以后版本对静态注册的广播做了限制,自定义的接收器会接收不到发送方发送的广播。解决方式: 发送方需要在intent中设定接收方的package,这样,接收方才会接收到,即发送方加入一行这样的代码即可:intent.setPackage("接收方所在的包名");...
2019-07-12 09:35:22
1451
原创 windows7下编译openjdk9
一:工具准备1.1:mercurial,该工具主要用于下载openjdk的源码,我用的是4.8.1,下载链接https://download.youkuaiyun.com/download/sj1231984/109441311.2:cygwin64,该工具模拟linux的操作环境,内置make,zip等工具,用于编译openjdk源码。下载链接;https://download.csdn.ne...
2019-01-30 11:14:13
687
zipkin-server-2.20.3-SNAPSHOT-exec.jar
2020-05-16
alibaba-nacos-demo.rar
2020-04-30
nacos源码及build出来的jar包
2020-04-14
myeclipse下java调用webservice项目例子
2013-07-14
jsp嵌入ckeditor编辑器的例子
2012-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人