我有应用程序,它使用Spring,Hibernate和Spring Security。我的目标是为每个框架创建一个配置(.xml)文件,并仅加载一次。所以我基本上希望spring-config.xml
,hibernate-config.xml
,spring-security.xml
和web.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启动了两次。
答案 0 :(得分:2)
这种情况正在发生,因为您正在通过
在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>