Spring下集成 3.X 的mongo

之前的項目中 打算用springmvc 搞個web來方便訪問

數據庫 當然是用mongo


遇到的問題是:  spring下自帶的 只支持2.X的 mongo driver 

這點 從 只能 get出 DB  DBCollection 就可以看出了

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.8.2.RELEASE</version>
</dependency>


<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.3.0</version>
</dependency>


但是 mongo 3.X 和 2.X 在 用戶校驗 這點上又有 那麼些差別 ( 主要是 在 mechanism  參數 MONGODB-CR  和 SCRAM-SHA-1 的區別)

順帶吐槽百度,確實找不到什麼合適的答案,在google的搜索結果裏面得到一些啓示

就採用 spring自帶的 bean注入配置 MongoClient


   <!-- Seeds ip port list-->
    <bean id="mongoSeedListID" class="java.util.ArrayList">
        <constructor-arg>
            <list>
                <ref bean="mongoSeedlID"/>
            </list>
        </constructor-arg>
    </bean>


    <bean id="mongoSeedlID" class="com.mongodb.ServerAddress">
        <constructor-arg type="java.lang.String" name="host" value="${mongo_ip}"/>
        <constructor-arg type="int" name="port" value="${mongo_port}"/>
    </bean>


    <!-- Credentials -->
    <bean id="mongoCredentialListID" class="java.util.ArrayList">
        <constructor-arg>
            <list>
                <ref bean="mongoCredentialID"/>
            </list>
        </constructor-arg>
    </bean>


    <bean id="mongoCredentialID" class="com.mongodb.MongoCredential">
        <constructor-arg name="mechanism" value="#{T(com.mongodb.AuthenticationMechanism).SCRAM_SHA_1}"/>
        <constructor-arg type="java.lang.String" name="userName" value="${auth_username}"/>
        <constructor-arg type="java.lang.String" name="source" value="${auth_dbname}"/>
        <constructor-arg type="char[]" name="password" value="${auth_password}"/>
    </bean>


    <!-- MongoClient -->
    <bean id="mongoClientID" class="com.mongodb.MongoClient">
        <constructor-arg ref="mongoSeedListID"/>
        <constructor-arg ref="mongoCredentialID"/>
    </bean>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章