Spring boot spring引导线程本地无法与长值一起工作

Spring boot spring引导线程本地无法与长值一起工作,spring-boot,aspect,Spring Boot,Aspect,我创建了一个本地线程,如下所示: @Bean(destroyMethod = "destroy") public ThreadLocalTargetSource threadLocalTargetSource() { ThreadLocalTargetSource result = new ThreadLocalTargetSource(); result.setTargetBeanName("userActionLogForThread&q

我创建了一个本地线程,如下所示:

  @Bean(destroyMethod = "destroy")
  public ThreadLocalTargetSource threadLocalTargetSource() {
    ThreadLocalTargetSource result = new ThreadLocalTargetSource();
    result.setTargetBeanName("userActionLogForThread");
    return result;
  }

  @Primary
  @Bean(name = "proxiedThreadLocalTargetSource")
  public ProxyFactoryBean proxiedThreadLocalTargetSource(
      ThreadLocalTargetSource threadLocalTargetSource) {
    ProxyFactoryBean result = new ProxyFactoryBean();
    result.setTargetSource(threadLocalTargetSource);
    return result;
  }

  @Bean(name = "userActionLogForThread")
  @Scope(scopeName = "prototype")
  public UserActionLogForThread UserActionLog() {
    return new UserActionLogForThread();
  }
并计算@Aspect所用的时间

我将开始时间设置为@Before:

userActionLogForThread.setTimeTaken(System.currentTimeMillis());
然后计算@afterhrowing和@afterreturn时的时间:

userActionLogForThread.setTimeTaken(System.currentTimeMillis()-userActionLogForThread.getTimeTaken());
我的问题是
userActionLogForThread.getTimeTaken()
有时在进入@AfterThrowing时为0。 但是,userActionLogForThread中的其他参数具有值