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

Spring在JPA上利用Mongo实现

Spring在JPA上利用Mongo实现

您可以根据上下文中的配置在Spring中连接到不同的数据库

以下代码用于连接到MysqL和Mongo DB。如果您拥有JDBC,则可以用MSsql代替MysqL。检查http://jdbforms.sourceforge.net/UsersGuide/html/ch20s02.html,了解JDBC连接的属性的含义。

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg ref="MysqLdataSource" /> <!-- Change the datasource to MSsql-->
    </bean>

    <bean id="MysqLdataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="removeAbandoned">
            <value>true</value>
        </property>
        <property name="removeAbandonedTimeout">
            <value>30</value>
        </property>
        <property name="driverClassName">
            <value>MSsql_DRIVER_CLASS_NAME</value>
        </property>
        <property name="url">
            <value>MSsql_DATABASE_URL</value>
        </property>
        <property name="username">
            <value>MSsql_DB_USER_NAME</value>
        </property>
        <property name="password">
            <value>MSsql_DB_PASSWORD</value>
        </property>
        <property name="maxIdle"> 
            <value>10</value>
        </property>
        <property name="maxActive"> 
            <value>10</value>
        </property>
        <property name="maxWait">
            <value>100000</value>
        </property>
        <property name="testOnBorrow">
            <value>false</value>
        </property>
        <property name="testWhileIdle">
            <value>false</value>
        </property>
        <property name="timeBetweenEvictionRunsMillis">
            <value>60000</value>
        </property>
        <property name="minevictableIdleTimeMillis">
            <value>60000</value>
        </property>
        <property name="numTestsPerEvictionRun">
            <value>1</value>
        </property>
        <property name="defaultTransactionIsolation" value="1" />
        <property name="poolPreparedStatements" value="true" />
        <property name="maxOpenPreparedStatements" value="1" />
    </bean>

    <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"></bean>

下面是用于连接mongodb

    <mongo:db-factory dbname="mongoDbName" host="mongoServer" port="mongoPort"/>


    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    </bean>
    <mongo:repositories base-package="com.test.repoPackage"/> <!-- Package containing the mongo repository interfaces -->

现在,您可以使用spring提供的存储库。

假设config名称是springConfig.properties。在上面的示例中,针对mongo:db- factory中的属性dbname,host和port,您需要在springConfig.properties中配置这些值。因此,让他们在下面命名:

mongoServer = xxx.xx.xxx.xxx
mongoPort = 27017
mongoDb = testDb

现在,需要修改上下文文件以导入springConfig.properties。这是在上下文文件中按以下方式完成的:

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
        <property name="locations" >
            <list>              
                <value>classpath:/log4j.properties</value>
                <value>classpath:/springConfig.properties</value>
            </list>
        </property>
    </bean>

豆mongo:db-factory现在看起来像:

<mongo:db-factory dbname="${mongoDb}" host="${mongoServer}" port="${mongoPort}"/>

请注意,配置中的“键”(dbname,主机和端口)用insde $ {}表示。这将替换为config中的键值。

mongodb 2022/1/1 18:33:56 有487人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶