为什么我不能在春天为mongodb读取名字?

时间:2017-03-13 11:45:34

标签: multithreading mongodb spring-boot

我有一个ThreadLocale,我在设置一些我想要在创建mongo文档时读取的值。

        @Service
        public class DocumentContext {

        private ThreadLocal<String> currentValue = new ThreadLocal<>();

        public void setName(String documentName) {
            currentValue.set(documentName);
        }

        public String getName() {
            return currentValue.get();
        }

    }

我用它来设置我的过滤器中的值:

@Autowired
    private DocumentContext docContext;

@Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        final HttpServletRequest httpRequest = (HttpServletRequest) request;
        final String col= "value1";         
        docContext.setCurrentValue(col);            
        chain.doFilter(request, response);
        docContext.setCurrentValue(null);
    }

现在我有我的POJO课程,我正在使用这样的课程:

@Data
@Document(collection="doc.#{docContext.getName()}.tableName")
class Entity{

}

但是,在mongo我得到的集合名称为:

  

doc..tablename

我在期待:

  

doc.value1.tablename

请建议我错过了什么。

0 个答案:

没有答案