当前位置: 首页 > 知识库问答 >
问题:

Spring cloud sleuth注释:自动连接不起作用

易招
2023-03-14

我在应用程序中配置了Spring cloud sleuth(以及zipkin)。我有一个控制器,它调用服务,然后调用存储库,最后调用数据库。

设置工作正常,Sleuth正在生成spans id,它在zipkin中也可见。我想尝试跨多个内部bean和方法创建spans。我遇到了使用注释管理跨度。这似乎不起作用。

当我使用这里提到的任何注释时,如NewSpan或ContinueSpan,自动连接停止工作。我在控制器中自动连接的服务类为空。如果我删除这些注释,一切都会再次工作。

我正在使用。

Spring护套2.2.5。释放

Spring的云。霍克斯顿版本。SR3在我的pom中有这些依赖项

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-sleuth</artifactId> // This is pulling 2.2.2.RELEASE version
 </dependency>
 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
 </dependency>

下面是一个示例代码

@RestController
class SomeController {

@Autowired
SomeService someService;

    @GetMapping("/init")
    @NewSpan("init")
    private void init()  {
        someService.init();
    }
}

我的服务课是这样的

@Service
Class SomeService {
  .....

   @ContinueSpan(log = "init")
    public void init() {

    }
}

我的猜测是,SpringAop与此有关。知道吗?

共有1个答案

东方吕恭
2023-03-14

请不要使用字段注入,请使用构造函数注入。还有一个新的跨度没有意义,因为你已经有了一个由框架创建的新跨度。

 类似资料:
  • 问题内容: 什么样的配置是需要使用注解来自像,等等?这是我的代码: 当我尝试在另一个类中使用它时,验证不起作用(即,创建该对象时没有错误): 为什么这不适用和的约束?我还需要做什么? 问题答案: 为了使JSR-303 bean验证在Spring中起作用,您需要做一些事情: 注释的MVC名称空间配置: JSR-303规范JAR :(看起来您已经拥有了) 规范的实现,例如休眠验证,它似乎是最常用的示例

  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 问题内容: 当我尝试自动装配Spring RestTemplate时,出现以下错误: 在注释驱动的环境中使用Spring 4。 我的调度程序servlet的配置如下: 我尝试自动连接RestTemplate的类如下: 问题答案: 如果未定义错误,则会看到错误 考虑在配置中定义类型为“ org.springframework.web.client.RestTemplate”的bean。 要么 找不到

  • 问题内容: 我正在尝试使用Java批注,但似乎无法使我的代码认识到其中存在。我究竟做错了什么? 问题答案: 您需要使用注释界面上的@Retention注释将注释指定为运行时注释。 即

  • 当我尝试使用生成的post URL和以下json负载来使用save时: 请求处理失败;嵌套异常是javax.persistence.persistenceException:org.hibernate.id.IdentifierGenerationException:在调用save():eHealth.domain.timestamp之前必须手动分配该类的ID 我认为这是由于缺少@Generate

  • 和和注释之间有什么区别? 我们应该在什么时候使用它们每一个?