AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-2674303

gstackoverflow's questions

Martin Hope
gstackoverflow
Asked: 2025-02-28 19:44:49 +0800 CST

Spring Boot 跟踪中的“Baggage”是什么?

  • 4

我阅读了有关可观察性的spring boot 文档,并查看了有关Baggage

你可以使用 Tracer API 创建行李:

@Component
class CreatingBaggage {

  private final Tracer tracer;

  CreatingBaggage(Tracer tracer) {
      this.tracer = tracer;
  }

  void doSomething() {
      try (BaggageInScope scope = this.tracer.createBaggageInScope("baggage1", "value1")) {
          // Business logic
      }
  }

}

此示例创建名为 baggage1 且值为 value1 的 baggage。如果您使用 W3C 传播,则 baggage 会自动通过网络传播。如果您使用 B3 传播,则 baggage 不会自动传播。要手动通过网络传播 baggage,请使用 management.tracing.baggage.remote-fields 配置属性(这也适用于 W3C)。对于上述示例,将此属性设置为 baggage1 会导致 HTTP 标头 baggage1: value1。

如果要将 baggage 传播到 MDC,请使用 management.tracing.baggage.correlation.fields 配置属性。对于上述示例,将此属性设置为 baggage1 会产生名为 baggage1 的 MDC 条目。

我还没有在追踪的背景下遇到过行李,也找不到任何明确的定义。

您能解释一下什么是行李以及它与追踪有何关系吗?

spring-boot
  • 1 个回答
  • 25 Views
Martin Hope
gstackoverflow
Asked: 2024-12-23 19:39:34 +0800 CST

LDAPException(resultCode = 8(需要强身份验证),diagnosticMessage ='BindSimple:需要传输加密

  • 5

现在我有以下代码来创建新的连接:

        return LDAPConnection(opts, host, port).apply {
            connectionName = "foo-$userDn-$host-$port"
            processExtendedOperation(StartTLSExtendedRequest(SSLUtil(TrustAllTrustManager()).createSSLContext()))
            bind(userDn, password)
        }      

现在我想切换使用LDAPConnectionPool。

我尝试这样做:

        val simpleBindRequest = SimpleBindRequest(userDn, password)
        val exampleConnection = LDAPConnection(opts, host, port).apply {
            connectionName = "foo-$userDn-$host-$port"
            processExtendedOperation(StartTLSExtendedRequest(SSLUtil(TrustAllTrustManager()).createSSLContext()))
            bind(simpleBindRequest )
        }      
        val ldapConnectionPool = LDAPConnectionPool(exampleConnection , 1, 10)
        ldapConnectionPool.setBindRequest(simpleBindRequest)           

稍后在某段代码中我第一次调用了 fir

connectionPool.getConnection()

并且它有效,因为它返回最初传递的连接(exampleConnection)

但是当我打电话的时候

connectionPool.getConnection()

第二次我得到 LDAPException:

LDAPException(resultCode = 8(需要强身份验证),diagnosticMessage ='BindSimple:需要传输加密。',ldapSDKVersion = 6.0.11,修订版 = 8b21d0a4c6eb8b5c3e60a96fc3e9e13b9c2f650f)在com.unboundid.ldap.sdk.LDAPConnectionPool.createConnection(LDAPConnectionPool.java:1388)在com.unboundid.ldap.sdk.LDAPConnectionPool.createConnection(LDAPConnectionPool.java:1269)在com.unboundid.ldap.sdk.LDAPConnectionPool.getConnection(LDAPConnectionPool.java:1866)

我想是因为

 processExtendedOperation(StartTLSExtendedRequest(SSLUtil(TrustAllTrustManager()).createSSLContext()))

未被调用

有办法解决吗?

java
  • 1 个回答
  • 28 Views
Martin Hope
gstackoverflow
Asked: 2024-12-10 16:35:52 +0800 CST

有没有针对 Kotlin foreach 副作用的建议?

  • 5

在 Java Streams 中建议避免在 foreach 中使用共享状态。
证明: java streams doc

副作用 一般情况下,不鼓励在流操作的行为参数中使用副作用,因为它们通常会导致无意中违反无状态要求,以及其他线程安全隐患。如果行为参数确实有副作用,除非明确说明,否则无法保证这些副作用对其他线程的可见性,也无法保证在同一流管道中对“相同”元素的不同操作在同一线程中执行。此外,这些影响的顺序可能令人惊讶。即使管道被限制为产生与流源的遇到顺序一致的结果(例如,IntStream.range(0,5).parallel().map(x -> x*2).toArray() 必须产生 [0, 2, 4, 6, 8]),也无法保证将映射器函数应用于各个元素的顺序,也无法保证在哪个线程中为给定元素执行任何行为参数。

许多可能想要使用副作用的计算可以在没有副作用的情况下更安全、更有效地表达,例如使用减少而不是可变累加器。但是,使用 println() 进行调试之类的副作用通常是无害的。少数流操作(例如 forEach() 和 peek())只能通过副作用进行操作;应谨慎使用这些操作。

作为如何将不适当使用副作用的流管道转换为不使用副作用的流管道的示例,以下代码在字符串流中搜索与给定正则表达式匹配的字符串,并将匹配项放入列表中。

 ArrayList<String> results = new ArrayList<>();
 stream.filter(s -> pattern.matcher(s).matches())
       .forEach(s -> results.add(s));  // Unnecessary use of side-effects!

此代码不必要地使用了副作用。如果并行执行,ArrayList 的非线程安全性将导致不正确的结果,而添加所需的同步将导致争用,从而破坏并行性的好处。此外,此处使用副作用完全没有必要;forEach() 可以简单地替换为更安全、更高效且更适合并行化的归约操作:

 List<String>results =
     stream.filter(s -> pattern.matcher(s).matches())
           .collect(Collectors.toList());  // No side-effects!

我找不到针对 Kotlin 的相同建议。

我是否应该在 Kotlin 中避免使用此类代码?

var bar = foo(myPath)
myPath.forEach { e ->
    ...         
    bar = foo(bar,....)
}
java
  • 1 个回答
  • 58 Views
Martin Hope
gstackoverflow
Asked: 2024-11-14 22:31:08 +0800 CST

带有自定义比较器的 containsInAnyOrder hamcrest 匹配器

  • 5

我有一个 DTO 课程

class MyDto {
   private String f1;
   private String f2; 
   private String f3;
   // constructor
   // get set equals/hashCode
}

它具有equal/hascode对,考虑到了所有 3 个字段。

请查看测试

...
var actualList = service.getActualList(...)
assertThat(actualList, containsInAnyOrder(new MyDto("a1","","c1"), new MyDto("a2","","c2")) )
...

它失败了,因为f2它是在数据库端生成的(所以我无法预测该字段的值)。

我想传递自定义比较器来进行特定测试的比较。 可以在 Hamcrest 中实现吗?

PS 我不想重写 equals/hashcode,因为从我的业务逻辑的角度来看它是不正确的

java
  • 2 个回答
  • 30 Views
Martin Hope
gstackoverflow
Asked: 2024-11-02 16:13:09 +0800 CST

有没有办法在不破坏现有调用的情况下向函数(具有 var args)添加一个具有默认值的参数?

  • 6

我有一个功能

fun foo(
    id: String,
    vararg values: Int,
){
  ...    
}

还有这样的呼吁

fun bar1(){
    foo("id_1")
    foo("id_2", 1)
    foo("id_3", 1, 2, 3)
}

现在我明白了我需要向 foo 添加一个参数。但我不想破坏现有的调用,所以我尝试使用默认值添加它:

fun foo(
    id: String,
    attributes: Array<String> = arrayOf("a", "b"),
    vararg values: Int,
){
  ...
}

但

foo("id_2", 1)
foo("id_3", 1, 2, 3)

变得破碎。

有没有办法在不破坏现有调用的情况下添加一个具有默认值的参数?

function
  • 2 个回答
  • 22 Views
Martin Hope
gstackoverflow
Asked: 2024-10-30 20:54:28 +0800 CST

如何从 API 生成中排除特定端点

  • 5

我已阅读主题 从 API 仅生成一个特定端点

但我有一个稍微不同的任务,我想从生成中排除一些特定的端点。为什么我需要它?我们有一个实验,分析人员编写开放的 API 模式,如果他们将新端点添加到现有控制器,则会导致编译错误(需要在接口中实现新方法)。我们希望在不实现存根的情况下避免此错误。

有没有什么办法可以实现它?

我很欣赏 gradle 的示例(build.gradle.kts)

spring-boot
  • 1 个回答
  • 31 Views
Martin Hope
gstackoverflow
Asked: 2024-01-30 00:46:39 +0800 CST

如何将 2 个参数 lambda 作为函数参数传递?String 类型的解构声明初始值设定项必须具有“component1()”函数

  • 4

我有一个功能:

fun foo(arg1: Int, arg2: String, lambda: (String, Int) -> Int): Int {
    return arg1 + arg2.length + lambda("123", 1)
}

Nw 我想调用它并执行以下操作:

fun bar() {
    foo(1, "2") { (a, b) -> 42 }
}

但它往往会编译错误:

Expected 2 parameters of types String, Int
Destructuring declarations initializer of type String must have a 'component1()' function

我也尝试明确使用类型

fun bar() {
    foo(1, "2") { (a:String, b:Int) -> 42 }
}

但仍然编译错误:

required (String,Int) -> Int
but found: (String) -> Int
kotlin
  • 1 个回答
  • 35 Views
Martin Hope
gstackoverflow
Asked: 2023-12-26 21:00:51 +0800 CST

如何在 Kotlin 中将原始 Map 安全转换为 Map<String, List<Int>>?

  • 5

我需要一个将投射Map到的函数Map<String, List<Int>>

目前我使用不安全的“as”,但我收到了关于它的合理警告。我想修复它。

对于列表部分我能够实现功能

inline fun <reified T : Any> List<*>.checkItemsAre(): List<T> {
    return this.filterIsInstance<T>().takeIf { it.size == this.size }
        ?: throw IllegalArgumentException("Can't convert raw List to type safe List")
}

但我无法资助地图的模拟。

我该如何解决它?

kotlin
  • 1 个回答
  • 16 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve