1.spring容器扩展点 自定义的实例化、初始化、依赖装配、依赖检查等流程,既可以覆盖默认的实例化,也可以增强初始化、依赖注入、依赖检查等流程 大体意思是可以检查相应的标识...
1.spring容器扩展点 自定义的实例化、初始化、依赖装配、依赖检查等流程,既可以覆盖默认的实例化,也可以增强初始化、依赖注入、依赖检查等流程 大体意思是可以检查相应的标识...
@nealon 你也换成官方的一些镜像啦
[nginx] tengine加入nginx-module-vts监控开启nginx-module-vts功能 默认的tengie不包括nginx-module-vts功能,需要我们自己自定义加入此模块即可,目前我们使用tengine都是基于d...
@nealon 你好,这个 tengine 可以在官方的 dockerhub 中找到的。
[nginx] tengine加入nginx-module-vts监控开启nginx-module-vts功能 默认的tengie不包括nginx-module-vts功能,需要我们自己自定义加入此模块即可,目前我们使用tengine都是基于d...
官方文档详见: https://docs.scala-lang.org/scala3/reference/contextual/index.html[https://docs...
一个更加简单的实现方式是:
package dummy
import scala.quoted.*
object Describer:
enum ShowType:
case TYPE_TREE
case TYPE_REPR
case OTHER
inline def describe[T](showType: ShowType): String = showType match
case ShowType.TYPE_TREE =>
describeTree[T]
case ShowType.TYPE_REPR =>
describeRepr[T]
case ShowType.OTHER =>
"Not Supported"
inline def describeRepr[T]: String = ${ describeReprImpl[T] }
inline def describeTree[T]: String = ${ describeTreeImpl[T] }
def describeTreeImpl[T: Type](using Quotes): Expr[String] =
import quotes.reflect.*
val tpt = TypeTree.of[T]
Expr( tpt.show(using Printer.TreeStructure) )
def describeReprImpl[T:Type] (using Quotes): Expr[String] =
import quotes.reflect.*
val tpe = TypeRepr.of[T]
Expr( tpe.dealias.widen.show(using Printer.TypeReprStructure) )
1.概述 Scala3的Macro基于其引入的新的抽象类型结构 tasty,即:Typed Abstract Syntax Trees,其可以在编译之后,保留方法和类上的类型...
本文将通过 macro 的方式来实现类型类的派生方法的实现。代码样例详见:derive_macros[https://github.com/leihuazhe/scala_s...
详见代码库:https://github.com/leihuazhe/scala_scala3_samples[https://github.com/leihuazhe/sc...
获取某个进程下线程的数量。
pstree -p pid | wc -l
[TroubleShooting] 线上多TCP连接定位1.获取线程号 2.出现大量的 TCP 链接 2. strace -f -p 952865 -e trace=network 3.strace -p 952970 观测这个线...
本文参考了:https://blog.rockthejvm.com/givens-vs-implicits/[https://blog.rockthejvm.com/give...
你在文中哪句话看到我说了 Lifecycle不是spring的一个接口了?你有多了解spring呢!
我写文章是记录自己的实践,你不喜欢可以不看。
[Spring] Spring生命周期之LifecycleLifecycle callbacks Initialization callbacks、Destruction callbacks要与容器的bean生命周期管理交互,即容器...
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我...
随着分布式和微服务部署的不断兴起。公司的工程模块和依赖变得越来越多,从而错综复杂。因此,通过通用 脚手架与通用模块等将各个项目通用的模块单独提炼出来,并形成依赖 jar,这类...
两种方式可能都存在一定的问题:例如 getClass( Map[String, String]() ) 是没获得更多的信息的,并不一定能够提供对应用用好的API。 scala 中更多使用 Context Bound 来应对。
我写这个文章的是时候参考的是SpringBoot1.x版本,确实没有application.setRegisterShutdownHook(false); 这一句,所以 1.x 肯定是并行的。
2.x 是串行的,看这篇文章文章末尾的更新图对比。
Tomcat&Spring&Dubbo优雅关闭流程分析云集技术平台以分布式架构分层部署,整体上分为接入层(对外提供HTTP接口服务,tomcat作为容器) 和 服务层(领域划分的各独立的为服务,以Dubbo作为容器)。系统迭代的...
JSX高级 本质上来讲,JSX 只是为 React.createElement(component, props, ...children) 方法提供的语法糖。比如下面的代码...
如今企业应用分布式、微服务盛行,针对分布于多节点的日志,会使用分布式日志系统架构,来满足业务开发查询多节点的日志并进行问题排查和定位。迄今为止,最为通用和成熟的就是elast...
协变 Covariance https://docs.scala-lang.org/zh-cn/tour/variances.html[https://docs.scala-...