您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

@Document批注中的MongoDB和SpEL表达式

@Document批注中的MongoDB和SpEL表达式

如我所言,我将回答我的问题。要使其正常工作,您需要在应用程序上下文XML文件中对 bean进行以下设置:

<mongo:db-factory dbname="${myDatabaseName.from.properties.file}" mongo-ref="mongo"/>
<bean id="mongoMappingContext" class="org.springframework.data.mongodb.core.mapping.MongoMappingContext"/>   
<bean id="mappingMongoConverter" class="org.springframework.data.mongodb.core.convert.MappingMongoConverter" c:mongoDbFactory-ref="mongoDbFactory"
            c:mappingContext-ref="mongoMappingContext"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"
            c:mongoDbFactory-ref="mongoDbFactory" c:mongoConverter-ref="mappingMongoConverter"/>

并使用上面的设置和我在问题中建议的解决方案。您可以使用相同的域对象,并根据您选择的设置将其存储到多个集合中。

由于有人在相关问题中提出了要求,因此我还将在这里更新ThreadLocal上下文的逻辑:

创建一个 类,该类包装以下实现:

private static final ThreadLocal<Map> CONTEXT = new ThreadLocal<Map>() {
        protected Map initialValue() {
            Map localMap = new HashMap();
            localMap.put(LocalContextKeys.CONVERSATION_CONTEXT, new HashMap());
            return localMap;
        };
    };

public static void putInLocalContext(Object key, Object value) {
    Map localMap = CONTEXT.get();
    localMap.put(key, value);
}

 public static Object getFromLocalContext(Object key) {
    Map localMap = CONTEXT.get();
    return localMap.get(key);
}

其中 是一个枚举,其中包含 上下文 允许的键。请注意,这些键是用户定义的,因此可以随意将其放置在其中。

mongodb 2022/1/1 18:25:46 有389人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶