自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦境迷离

梦境亦是美,醒来亦是空。

  • 博客(181)
  • 资源 (19)
  • 收藏
  • 关注

原创 Intellij IDEA sbt 依赖分析插件

下载地址 https://plugins.jetbrains.com/plugin/22427-sbt-dependency-analyzer。支持Intellij IDEA 2023.1及以上。中添加代码启动官方分析插件。可分析模块和 传递依赖。

2023-08-14 09:07:39 967

原创 本博客说明【必看】

看心情会拷贝到这里。

2019-06-23 08:34:11 463

原创 zio1升级到zio2踩坑和总结

这里不用直接更新到最新版,这样可以保证迁移是最小改动,迁移后再升级即可。不过仍有一些方法是被删除的没有修正,或者遗漏的一些方法没有被重写,需要自己手动改了,基本不需要什么大的改动,删除的方法可以在。首先,从1.0迁移到2.0,可以使用官方的scalefix规则完成一部分方法自动替换(迁移主要解决方法重命名,去掉。,并且使用方式有些变化,不是改个名字就能编译的,甚至调用方还需要略微改动。后,官方发现迁移工作可能非常庞大,后来出了个过渡方案,允许暂时不迁移。并不够通用,在流式解码中性能并不好,所以被弃用了。

2023-03-04 20:24:47 745

原创 【Scala问题大全】每日一题,劝退系列

【2022-10-08】akka:给出一个actor 系统的actor的(树形)层次结构?【2022-10-11】akka:比较classic actor和typed actor?【2022-10-09】akka:简述actor的死信消息和unhandle消息的区别?【2022-10-06】akka:简述actor模型是什么?【2022-10-12】简述zio-stream和akka stream区别?【2022-10-13】akka:简述akka-remote的通信原理?

2022-08-25 11:51:36 305

原创 Kamon 采样原理

采样方式通过kamon.trace.sampler可以配置一个采样器,这可以决定哪些 span 应该被发送到 span 报告器。采样器类型有几个可能的值,分别是:always:报告所有 trace,会忽略配置的其他规则。ConstantSampler类never:不报告任何 trace,会忽略配置的其他规则。ConstantSampler类random:随机采样器,由于概率设置中定义的概率决定。RandomSampler类,默认概率为 1%adaptive:自适应采样器,为每个操作保留动态采样器

2022-05-17 17:43:46 333

原创 Scala CSV转case class对象,支持自定义解析

背景转为对象:方便地读取CSV文件到Scala类型,便于使用已知数据。构造数据:随机Scala对象,写入CSV文件,便于创建或Mock新数据。要求&目标不引入任何第三方库,能够定制CSV某列的格式,可以解析复杂的CSV结构,而不仅限于普通的简单格式,最终能配置解析的一些规则。能使用类型安全的方式编程。下面这个使用shapeless实现,比较简洁,能处理一般的转换,主要问题是我们需要处理CSV中的JSON,而并不需要shapeless的其他功能,所以,嗯。。为了一个方法引入了一个库,不可取。

2022-05-03 01:03:41 568

原创 Scala zio-actors与akka-actor集成

zio-actors与akka-actor集成zio-actors 与 akka-actor 是两种不同实现,分两种情况:zio actor 发消息给 akka actorakka actor 发消息给 zio actor依赖不包括 akka actor 和 zio-actors 依赖,只是集成所需的"dev.zio" %% "zio-actors-akka-interop" % <VERSION>"所需的导入如下:import zio.actors.Actor.Sta

2022-04-12 21:36:55 438

原创 Scala zio-streams 与 akka-stream 的集成 & ZStream错误处理

zio-streams 与 akka-stream 的集成总的来说,我在 zim 中集成 akka-stream,其实只是为了集成 akka-http,众所周知,akka-http 是构建在 akka-stream 上的,而 akka-stream 依赖 akka-actor。对于任意 zio 应用,无外乎就是返回ZIO或ZStream类型的数据。zim 中为了省事,所有接口都使用了ZStream,这点其实很不好,因为ZStream比ZIO操作更多,更复杂。所以 zim 代码中到处都是runHead,

2022-03-31 15:21:53 342

原创 Scala ZIO 的流处理介绍和应用

zio 流处理介绍摘自官网流式库的主要目标是引入一个高级 API,该 API 抽象了使用数据源和目标进行读写操作的机制。在 zio 中 需要添zio-streams为依赖才能使用流。流式库帮助我们专注于业务逻辑,并将我们与低级实现细节分开。有很多人们可能不认识的流式库的示例,这是一个常见问题,尤其是对于初学者而言。初学者可能会说“我不需要流式库。我为什么要使用它?”。这是因为他们看不到流。一旦我们使用流式库,我们就会开始到处看到流,但在那之前我们不知道它们在哪里。在深入了解 ZIO Stream

2022-03-29 14:41:35 756

原创 Scala ZIO 的 Module Pattern 二 应用

即 Module Pattern 2.0基本介绍使用 Module Pattern 2.0 编写服务比上一章介绍的 1.0 模式容易得多。2.0 中删除了某种程度的间接性,与编写服务时的面向对象方法更为相似。Module Pattern 2.0 与面向对象的服务定义方式有更多的相似之处。我们使用类来实现服务,我们使用构造函数来定义服务依赖;归根结底,我们将类构造函数提升到ZLayer。Service Definition 服务定义 —— 在这个版本中定义服务与之前的版本相比略有变化。我们将获取.

2022-03-29 14:35:12 161

原创 Scala 传名参数和传值参数

Scala 传名参数和传值参数传名参数 call-by-name传值参数 call-by-value在Scala中,当参数通过传值调用函数时,它会在调用函数之前计算一次传入的表达式或参数值。但是使用传名调用函数时,在函数内部访问参数时会重新计算传入表达式的值。这里的示例显示了它们的差异和语法。也就说传名参数被函数使用时会被重新计算且可能会被计算多次。传值参数对形式参数所做的更改不会传回给调用者。任何对被调用函数或方法内部形参变量的修改只影响单独的存储位置,不会反映在调用环境中的实参中。此方法也

2022-01-13 15:41:07 1129

原创 Scala ZIO 的 Module Pattern 应用

ZIO 的 Module PatternModule Pattern 1.0让我们通过编写一个Logging服务开始学习这种模式:Bundling 捆绑 —— 定义一个为模块提供名称的对象,这可以(不一定)是一个包对象。我们创建一个logging对象,所有的定义和实现都将包含在这个对象中。Service Definition 服务定义 —— 然后我们创建Logging伴生对象。在伴生对象中,我们使用名为Service的trait来定义服务定义。特质是我们定义服务的方式。服务可以是与具有单一责任的一

2022-01-12 18:33:47 375

原创 Scala中如何基于ZIO构建可组合的程序(命令行)

设计一个命令行程序大多数命令行程序都是无状态的,这是理所当然的,因为它们可以很容易地集成到脚本中并通过shell管道链接。然而,对于本文,我们需要一个稍微复杂一点的程序。让我们写一个SQL命令行程序。用户将通过文本命令与之交互,根据不同的SQL命令创建不同的程序命令以输出不同的字符,同时我们还希望可以循环输入。对于这些问题中的每一个,我们将创建一个独立的模块,该模块依赖于其他模块,如下所示:基本程序ZIO 应用程序的基本构建块是ZIO[R, E, A]类型,它描述了有效的计算,其中:R 是运

2021-12-21 17:11:03 865

原创 Scala中使用SOFA jraft 实现rpc的优化 二

背景继第一版实现Processable宏之后,各方面已经满足需求,也正常使用,并引入进bitlap,使得我们能以方法的形式管理所有Processor对象,而不需要创建太多的类文件。但是细心的人会发现,为了实现这个小小的功能,我们在scala-macro-tools中引入了重量级包"com.alipay.sofa" % "jraft-core" % "1.3.9"。同时为了测试,我们还引入了protobuf-java。特别是sofa这个包,场景有限,当我们不需要使用Processable宏,却被迫引入了

2021-12-07 16:17:53 261

原创 Scala中使用SOFA jraft 实现rpc的优化

背景项目基于sofa jraft构建,顺便使用了其自带的rpc服务,协议使用protobuf,使用jraft创建一个rpc服务RaftRpcServerFactory.createRaftRpcServer(serverId.getEndpoint),并新增的rpc接口,这通常需要定义自己的Processor并继承com.alipay.sofa.jraft.rpc.RpcRequestProcessor,然后创建一个实例,使用rpcServer.registerProcessor将实例暴露的rpc注册到

2021-12-05 21:04:30 2826

原创 Scala 集成Mybatis和SpringBoot改进

Scala 集成Mybatis和SpringBoot改进Mybatis构造对象缺少默认的无参构造?通常Scala是这么定义实体类或领域对象的case class A(a: Int, b: String)但是这个类在Mybatis中是无效的,因为Mybatis通过反射无参构造来生成对象。1.一种方法是为样例类定义副构造函数case class A(a: Int, b: String) { def this()= { this(0, null) }}以上如果

2021-11-26 11:44:38 1157

原创 代码生成之Scala宏编程 类Lombok工具的实现

Scala 中的宏Scala 中的宏要复杂的多,但它对生成代码的方式,提供了更大的灵活性。Scala 宏仍然是用 Scala 写的,一定程序上保证了开发体验的一致。Scala 宏总是要返回一个AST,这需要你对 Scala AST 有一定的了解。但 Quasiquotes 可以帮你轻松生成 AST。import scala.reflect.macros.blackboximport scala.language.experimental.macrosobject Hello { d

2021-08-16 11:52:35 786

原创 Scala宏编程实战之宏的注解拓展 - 实现toString,builder,constructor,equalsAndHashCode等

项目地址Intellij IDEA 插件@toString@toString注解用于为Scala类生成toString方法。说明verbose 指定是否开启详细编译日志。可选,默认false。includeFieldNames 指定是否在toString中包含字段的名称。可选,默认true。includeInternalFields 指定是否包含类内部定义的字段。它们不是在主构造函数中。可选,默认true。callSuper 指定是否包含super的toStri

2021-07-20 16:48:31 297

原创 Scala 宏注解和IDEA插件

用宏解决一切。配套idea插件也已经开始准备了。优点 少写代码 编译期检查 几乎不会造成运行时错误。注 目前仅有有限的单元测试案例保证,不要上生产。且宏是实验性的,scala3宏设计改变,不可用。只支持2.11 2.12 2.13,基于白盒宏 注解拓展 语法树插值实现,代码简陋。作者1.陌陌 Java研发 ,scala编译器贡献者 scala组织成员作者2.快手 大数据研发 carbondata贡献者项目地址 https://github.com/jxnu-liguobin/scala-mac

2021-07-08 10:01:29 218

原创 JDBC原理&浅析HIVE-JDBC

目录{:toc}什么是JDBC?JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。Java8 JDBC API使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。例如,我们在Java代码中如果要访问MySQL,那么必须编写代码操作JDBC接口。注意到JDBC接口是Java标准库自带的,所以可以直接编译。而具体的JDBC驱动是.

2021-07-02 16:14:15 2958

翻译 Aux模式介绍

Aux 模式介绍Aux模式不是一种模式而是一种在每个库中使用的技术,它正在进行某种类型级别的编程,我们需要使用它来克服一个Scala限制。每次我们在Scala中进行类型级计算时,我们都会在另一个类/特质中定义一个类型别名,让我们看一个例子:trait Foo[A] { type B def value: B}例如,在这种情况下,类型级计算的结果将存储在B中。所以让我们定义一些实例:implicit def fi = new Foo[Int] { type B = String

2021-07-02 16:12:48 3988

原创 动态代理与Scala反射/Java反射在Java、Scala、Kotlin中的使用

一、Java反射被代理对象这个也是我使用graphql-java-codegen生成的一个resolver,这里我们需要了解这些,只知道我们有个接口,其中有个方法,需要被动态代理使用即可。public interface QueryResolver { UserTO user(String login) throws Exception;}InvocationHandler实现通常我们在Java中使用,实现InvocationHandler接口。如下:final public cla

2021-03-12 12:19:12 381

原创 graphql-java-codegen - 基于模式驱动构建GraphQL应用程序 Kotlin

基于模式驱动构建GraphQL应用程序 release 4.0.0 发布支持生成Kotlin代码(预览阶段,目前仅支持JVM平台上的Kotlin),默认生成Java代码。一个经典示例如下:schema { query: Query}type Query { hero(episode: Episode) : Character human(id : String) : Human humans: [Human] droid(id: ID!) : Droid

2020-12-14 18:46:40 437

原创 graphql-java-codegen - 基于模式驱动构建GraphQL应用程序 Scala

基于模式驱动构建GraphQL应用程序 release 4.0.0 发布支持生成Scala代码(预览阶段),新增配置项generatedLanguage := com.kobylynskyi.graphql.codegen.model.GeneratedLanguage.SCALA默认生成Java代码。只需要导入插件。sbtlibraryDependencies += "io.github.jxnu-liguobin" % "graphql-codegen-sbt-plugin" % "4.0.0

2020-11-27 18:20:08 517

原创 Mac如何快速动态切换JDK版本

如果已经使用pkg方式安装过了jdk(这种方式安装后直接可用,可执行java -version),默认会将jdk安装到系统目录,这样java_home就能直接识别出所有已经安装过的jdk,但是如果使用brew等工具,下载的是二进制/压缩包,则需要配置一些环境变量。比如,brew安装open jdk11时,安装完后就会提醒是否添加软链到系统目录:sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtu

2020-11-14 18:25:19 1633 1

原创 基于模式优先构建GraphQL的客户端

前言继上次使用动态代理构建GraphQL的客户端之后,本次将使用纯粹的代码生成实现(也就是本次会为resolver接口在编译期间生成自己的实现,而不是通过代理来运行时构造实现)。众所周知,动态代理有大量反射的使用,这可能存在潜在的性能影响(主要是指resolver 接口的动态代理调用),并且Builder模式虽然一定程度上简化了复杂对象的构造,但是对使用客户端的用户来说,过多的参数需要使用setXX方法,这同样增加了使用的难度。所以这次将摒弃动态代理的方式,将全部代码使用类库生成。当然,这样也有一些缺

2020-11-02 16:03:45 367

原创 Consul和Raft介绍

在本文中,我们展示了具有多个实例的高性能应用程序中的领导选举基础。我们演示了Consul的会话管理和KV存储功能如何帮助获得锁并选择领导者。Consul和Raft介绍Consul解决的问题多种多样,但是每个单独的功能已由许多不同的系统解决。尽管没有一个单一的系统可以提供Consul的所有功能,但是还有其他选项可以解决其中的一些问题。我们将Consul与其他一些选项进行比较。在大多数情况下,Consul不会与任何其他系统互斥。quorum在本文被翻译成了法定人数,即达到共识所需要的最少要求Con

2020-11-02 13:48:39 1142 1

翻译 Java对象的内存布局

在本文中,下面的mark即表示Mark World结构,klass即表示Klass Word结构。它们是oopDesc中的数据结构。在本文中,hashcode 就是 identity hash code(是指不经重写过由jvm计算的hashcode)。总览在本教程中,我们将了解JVM如何在堆中布置对象和数组。首先,我们将从一些理论开始。然后,我们将探讨在不同情况下的不同对象和数组的内存布局。通常,运行时数据区域的内存布局不是JVM规范的一部分,并由实现者自行决定。因此,每个JVM实现可能具有不同.

2020-11-02 13:44:19 417 1

翻译 Java内存模型-编译器开发人员视角

title: Java内存模型2categories:复习整理tags: [Java底层]description: 主要介绍为编译器开发人员提供关于JSR-133的一些描述以及一些自己的总结和补充。目录{:toc}本文是为编译器开发人员提供的 JSR-133 Cookbook,为程序开发人员提供的JMM入门请参考 Java内存模型。前言:自从最初编写以来已有10多年了,许多处理器和语言内存模型规范和问题已经变得更加清晰和易于理解。许多还没有。虽然本指南保持准确,但其中一些不断演变.

2020-11-02 13:40:23 244

原创 javap反编译和ASM的基础分析和应用介绍

本文是ASM与CGLIB的简单使用的后续,更多的是提供思路和总结自己觉得比较有用的内容javap 是 Java class 文件分解器,可以反编译(即对 javac 编译的文件进行反编译),也可以查看 java 编译器生成的字节码。用于分解 class 文件。先看看 javap 都有哪些参数(java 8):参数说明-help --help -?输出此用法消息-version版本信息-v -verbose输出附加信息-l输出行号和本地变量表-p

2020-09-03 15:09:32 664

原创 动态代理与反射在Graphql客户端的应用

反射与动态代理实践简介代码只是例子,具体看GitHub。有收获的请为GitHub的项目点个赞。禁止转载!本文已经发布在微信公众号ScalaCoder,以及个人博客https://dreamylost.cnhttps://github.com/growingio/growingio-graphql-javasdkhttps://github.com/kobylynskyi/graphql-java-codegen目前需要使用 graphql 对外提供 open api,准备开发一个 sdk

2020-08-21 23:56:50 419

原创 应届入职一年总结

本来这篇文章已经写了很久,原意是mentor让我写的,给以后入职的新人一些经验,对以后公司培养校招生做一个参考,后来发生了一些不愉快的事,也没有人提这件事了。现在已经过去了一年,发出来仅供参考,并修改补充了一些。虽然总结是针对自己所在公司的,但是我想对想入行Scala的还是有参考的地方的,发出来仅供参考。入职前的主要经历Java开发实习两个月,主要技术栈 Java/SpringBoot/SpringCloud/Redis/RabbitMQ/DDB/Dubbo测试开发实习四个月,主要技术栈 Ja

2020-06-05 11:27:27 681

原创 layim实现 springboot+akka http websocket

俗尘四不像应用。http://im.dreamylost.cn/

2020-05-30 02:34:16 443

原创 Scala的Seq集合中的排序实现

原文 https://dreamylost.cn/%E7%AE%97%E6%B3%95/%E7%AE%97%E6%B3%95-Scala%E4%B8%ADSeq%E7%9A%84%E6%8E%92%E5%BA%8F%E5%AE%9E%E7%8E%B0.html对Scala Seq进行排序,常见的是使用sortBy、sorted、sortWith三个函数。其中sortBy实现很简洁,如下 d...

2020-04-29 17:13:55 1171

翻译 graphql-java(5)如何执行请求的?

https://dreamylost.cn/Queries要对schema执行查询,需要使用适当的参数构建一个新的GraphQL对象,然后调用execute()方法。查询的结果是ExecutionResult,它可能包含查询数据或错误信息列表。GraphQLSchema schema = GraphQLSchema.newSchema() .query(queryType)...

2020-04-04 08:02:25 1428

翻译 graphql-java(4)中如何做日志处理和追踪

Instrumentation这个词没找到好的中文对应。以下直接使用本单词。graphql.execution.instrumentation.Instrumentation接口允许您注入代码,这可以观察一个查询的执行并且还可以更改运行时行为。这样做的主要用例是支持性能监控和自定义日志记录,但是它也可以用于许多不同的目的。构建Graphql对象时,可以指定要使用的Instrumentati...

2020-04-04 00:58:45 638

翻译 graphql-java(0)如何定义Schema

Creating a schema定义数据模型GraphQL API具有一个schema,该schema定义了可以查询或突变的每个字段以及这些字段的类型。graphql-java提供了两种不同的方式来定义schema:以编程方式使用Java代码或通过特殊的graphql dsl(称为SDL)。如果不确定要使用哪种方式,我们建议使用SDL。SDL 示例type Foo { bar...

2020-04-04 00:57:18 1231

翻译 graphql-java(3)如何将数据映射到Java对象类型(DTO)

How graphql maps object data to typesgraphql的核心是声明类型schema并将其映射到支持的运行时数据。作为类型schema的设计者,要使这些元素在中间相遇是您的挑战。例如,假设我们想要一个graphql类型的架构,如下所示type Query { products(match : String) : [Product]}type P...

2020-04-04 00:55:19 1389

翻译 graphql-java(1)如何获取数据

How graphql fetches data数据获取或提取器graphql中的每个字段都有一个与之关联的graphql.schema.DataFetcher。某些字段将使用专门的数据获取程序代码,该代码会知道如何访问数据库,以获取字段信息,而最简单的方法是使用字段名称和Plain Old Java Object(POJO)模式从返回的内存对象中获取数据。注意:在其他graphql实现...

2020-04-04 00:53:53 942

翻译 graphql-java(2)如何实现自定义标量类型

How graphql fetches data数据获取或提取器graphql中的每个字段都有一个与之关联的graphql.schema.DataFetcher。某些字段将使用专门的数据获取程序代码,该代码会知道如何访问数据库,以获取字段信息,而最简单的方法是使用字段名称和Plain Old Java Object(POJO)模式从返回的内存对象中获取数据。注意:在其他graphql实现...

2020-04-04 00:47:56 1298

authority-manage-system-reactor.zip

SpringBoot Shiro Webflux 权限管理系统。

2020-11-25

quote-webflux-demo-master.zip

springboot webflux 实时股价demo.

2020-11-25

jdk-11.0.9_osx-x64_bin.dmg

Mac jdk-11.0.9_osx-x64_bin.dmg....... ..... .....

2020-11-24

使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。

使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。

2018-02-04

SSM个人博客含数据库与说明 说明在github

原地址:https://github.com/jxnu-liguobin/blog 有说明 仅供新手参考springboot 主要是是ssm的知识,没有使用jpa security等

2018-01-27

commons-csv-20110211.jar

意这里的不是CSVParser1.0~1.5包 而是commons-csv-20110211.jar 老版本 api不同,所以不能混用

2018-01-24

自写的SpringBoot 博客数据库

不需要者勿下载。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-12-19

Apache_Shiro参考手册中文版

Apache_Shiro参考手册中文版

2017-08-30

跟我学shiro

跟我学shiro

2017-08-30

mybatis逆向工程项目

导入这个项目,修改数据库映射的表名和数据库用户名和密码驱动,映射地址,运行main方法即可。注意:重新运行前先删掉旧的。需要数据库等等jar包

2017-08-30

infoQ迷你书 深入理解java内存模型

infoQ迷你书 深入理解java内存模型,不建议小白看。

2017-08-30

python3.4 64bit

python3.4 64bit

2017-08-08

java笔记以及案例

这个笔记对应我的博客的java基础复习-基础总结系列

2017-08-04

jdk1.8 google翻译

顺便说明一下,上次传的jquery打不开是windows系统问题,需要点击右键属性,最下面点击取消选定,才能正常查看chm文件。

2017-08-04

尚硅谷ssm_crud数据库文件

上次传的资源忘记加数据库了。本身数据库也简单,自己写个也是分分钟的事情,哎

2017-08-04

maven+SSM框架整和,实现CRUD

maven+SSM框架整和,实现CRUD.

2017-07-27

jquery api参考文档3.1

jquery api参考文档3.1

2017-07-27

java微信开发,自定义菜单,点击事件,授权等模板

java微信开发,自定义菜单,点击事件,授权等模板,使用mvc模式,

2017-07-27

空空如也

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

TA关注的人

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