Spring + Hibernate + Spring Security 配置

Posted

技术标签:

【中文标题】Spring + Hibernate + Spring Security 配置【英文标题】:Spring + Hibernate + Spring Security configs 【发布时间】:2012-01-23 22:18:12 【问题描述】:

我有一个应用程序,它使用 Spring、Hibernate 和 Spring Security。我的目标是为这些框架中的每一个提供一个配置 (.xml) 文件并且只加载一次。所以基本上我想要spring-config.xmlhibernate-config.xmlspring-security.xmlweb.xml 作为配置文件。它现在可以按我的意愿工作,但是当我查看部署日志时,显然有重复的条目 - 加载了不止一次的 bean。

web.xml - http://pastebin.com/7ELvV8fS

spring-config.xml - http://pastebin.com/FVTcNu7L

hibernate-config.xml - http://pastebin.com/xXWbgAex

spring-security.xml - http://pastebin.com/JUycGUNA

GlassFish 3.1 部署输出 - http://pastebin.com/53Bgyj2r

正如您在输出中看到的,spring-config.xml 很少被启动。我在spring-config.xml 中的自定义 bean 也被启动了两次。

【问题讨论】:

检查您的服务器配置,您是否将 2 个应用程序加载到容器中? 服务器配置一切正常。我已经做到了这一点:如果我从 spring-security 配置中删除 ,则不再有重复项,但是 spring-security 不知何故不起作用 - 说凭据不好。 【参考方案1】:

发生这种情况是因为您正在通过

在 Spring-security 中再次加载 spring-config
    <beans:import resource="/hibernate-config.xml"/>
    <beans:import resource="/spring-config.xml"/>

您可以尝试删除此 .通过以下配置,您无需为 spring-security 指定单独的上下文参数。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:spring/spring-security.xml,
        classpath:spring/spring-config.xml
    </param-value>       
</context-param>

【讨论】:

以上是关于Spring + Hibernate + Spring Security 配置的主要内容,如果未能解决你的问题,请参考以下文章

spring3-hibernate3整合

Spring+Hibernate+JPA的多数据库

SSH集成(Struts+Spring+Hibernate)

spring和hibernate整合时报sessionFactory无法获取默认Bean Validation factory

Spring JPA - Hibernate:批量插入执行太多选择 nextval('sequence')

spring整合hibernate,在获取sessionFactory的时候报错,求解决办法!!