SpringMVC MongoDB整合中遇到的问题

  1. Spring3 升级至 Spring4
  2. 引入FreeMarker
  3. MongoDB数据库中加入认证
    1. 方法一
    2. 方法二
  4. 配置druid监控spring jdbc

集成环境:Spring4+SpringMVC+MongoDB+MySQL+MyBatis+Druid+FreeMarker
MongoDB包含用户认证部分,源码地址

Spring3 升级至 Spring4

出现错误如下:

严重: Servlet [SpringMVC] in web application [/storm] threw load() exception
java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
    at java.lang.Class.getDeclaredMethods(Class.java:1855)
...
  1. 使用Spring4时需要使用jackson2.X的,在maven中的依赖为
    <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-core</artifactId>
     <version>2.5.1</version>
     <type>bundle</type>
    </dependency>
    <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-annotations</artifactId>
     <version>2.5.0</version>
     <type>bundle</type>
    </dependency>
    <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-databind</artifactId>
     <version>2.4.0</version>
     <type>bundle</type>
    </dependency>
  2. spring mvc的配置如下
    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
     <property name="supportedMediaTypes">
         <list>
             <value>text/html;charset=UTF-8</value>
         </list>
     </property>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
     <property name="messageConverters">
         <list>
             <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
             <!-- json转换器 -->
             <ref bean="mappingJacksonHttpMessageConverter" />
         </list>
     </property>
    </bean>
    要使用 Jackson2HttpMessageConverter
    感谢java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException

引入FreeMarker

需要引入spring-context-support-3.2.0.RC2.jar

MongoDB数据库中加入认证

方法一

SpringMVC Mongodb 配置中加入用户认证信息,该方法适用于认证库和连接库相同的情况,并不适用于不同的情况。
首先声明一个用户信息bean

<bean id="userCredentials" class="org.springframework.data.authentication.UserCredentials">
    <constructor-arg name="username" value="${mongo.uname}" />
    <constructor-arg name="password" value="${mongo.upass}" />
</bean>

修改mongoTemplate的配置,多加入一个构造函数参数

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongo" />
    <constructor-arg name="databaseName" value="${mongo.dbName}" />
    <constructor-arg ref="userCredentials" />
</bean>

方法二

MongoDB数据库中加入认证,并且认证的库和需要连接的库不是同一个。
使用较高版本的spring-data-mongodb,否则容易出现找不到authentication-dbname属性的错误,这个属性就是进行认证的库,区别于需连接使用的库dbname,这里使用的版本是1.10.6.RELEASE

<mongo:db-factory id="mongoDbFactory" dbname="${mongo.dbname}" mongo-ref="mongo" username="${mongo.uname}"
    password="${mongo.upass}" authentication-dbname="${mongo.authdbname}"/>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>

配置druid监控spring jdbc

下方配置包名时,切记不能配置为com.*,具体原因未知。

<bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
    <property name="patterns">
        <list>
            <value>com.mongospringmysql.*</value>
        </list>
    </property>
</bean>
<aop:config>
    <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" />
</aop:config>


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:SpringMVC MongoDB整合中遇到的问题

文章字数:821

本文作者:Bin

发布时间:2017-08-05, 07:54:05

最后更新:2019-08-06, 00:57:11

原始链接:http://coolview.github.io/2017/08/05/Spring/SpringMVC-MongoDB%E6%95%B4%E5%90%88%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录