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中的其他参数具有值