Ta *_*Sas 0 java spring spring-mvc autowired
当尝试从Spring Security自动装配JdbcUserDetailsManager时,我在appcontext.xml中使用以下语句(与webapp分开):
<bean class="org.springframework.security.provisioning.JdbcUserDetailsManager">
<property name="dataSource" ref="dataSource"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
运行单元测试时一切都很好.当我启动我的网络应用程序时,它有自己的appcontext.xml,包括原始的appcontext.xml,我得到一个重复的错误:
No unique bean of type
[org.springframework.security.provisioning.JdbcUserDetailsManager] is defined:
expected single matching bean but found 2:
[org.springframework.security.provisioning.JdbcUserDetailsManager#0,
org.springframework.security.provisioning.JdbcUserDetailsManager#1]
Run Code Online (Sandbox Code Playgroud)
我如何优化我的两个appcontext.xml以分别运行服务层测试和webapp?
为什么需要在Web/servlet应用程序上下文中包含JdbcUserDetailsManager?WebApplicationContext将主ApplicationContext作为父"自动"获取(如果您正确配置它.)有关设置contextConfigLocation的示例,请参阅此IBM文章,以便Web应用程序知道在哪里可以找到主ApplicationContext.
或者此示例:contextConfigLocation /WEB-INF/main-application-config.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>mine</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/web-application-config.xml</param-value>
</init-param>
</servlet>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1129 次 |
| 最近记录: |