2011-12-19 182 views
0

我有一個使用Spring,Hibernate和Spring Security的應用程序。我的目標是爲每個框架配置一個配置文件(.xml)並僅加載它們一次。所以基本上我想要spring-config.xml,hibernate-config.xml,spring-security.xmlweb.xml作爲配置文件。它現在正如我所願,但是在我看着部署日誌時,顯然存在重複條目 - 加載多次的bean。Spring + Hibernate + Spring Security配置

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。我的自定義bean spring-config.xml也啓動了兩次。

+0

檢查您的服務器配置,您是否將2個應用程序加載到容器中? – aishwarya 2011-12-19 21:13:34

+0

一切,與服務器配置確定。我得到了這麼多:如果我從spring-security配置中刪除,則不會有更多重複,但隨後彈簧安全性無法正常工作 - 認爲證書不正確。 – Minutis 2011-12-19 21:46:14

回答

2

發生這種情況,因爲你又在春季安全通過

<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>