5 java testing spring spring-mvc spring-security
我这样写代码:
\n\n@ContextConfiguration(locations = { "classpath:/test/BeanConfig.xml" })\n@RunWith(SpringJUnit4ClassRunner.class)\n//@WebAppConfiguration\npublic class CandidateControllerTest {\n\n @Autowired\n FilterChainProxy springSecurityFilterChain;\n ...\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我必须在哪里写一些该代码可以工作的东西?
\n\n堆栈跟踪:
\n\n ERROR: org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@48834af6] to prepare test instance [controllers.CandidateControllerTest@23ae81ab]\n org.springframework.beans.factory.BeanCreationException: Error creating bean with name \'controllers.CandidateControllerTest\': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: org.springframework.security.web.FilterChainProxy controllers.CandidateControllerTest.springSecurityFilterChain; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.web.FilterChainProxy] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}\n at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)\n at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116)\n at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanPr\n....\nRun Code Online (Sandbox Code Playgroud)\n\n我对 spring 配置不太了解。请帮忙。
\n\n更新
\n\n发布配置文件:
\n\nBeanConfig.xml:
\n\n <?xml version="1.0" encoding="UTF-8"?>\n <beans xmlns="http://www.springframework.org/schema/beans"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"\n xmlns:context="http://www.springframework.org/schema/context"\n xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"\n xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"\n xmlns:util="http://www.springframework.org/schema/util"\n xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\n http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd\n http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd\n http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd\n http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd\n http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd\n http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">\n\n <!-- \xd0\x92\xd0\xba\xd0\xbb\xd1\x8e\xd1\x87\xd0\xb0\xd0\xb5\xd0\xbc \xd0\xbe\xd0\xbf\xd1\x86\xd0\xb8\xd1\x8e \xd0\xb8\xd1\x81\xd0\xbf\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xba\xd0\xbe\xd0\xbd\xd1\x84\xd0\xb8\xd0\xb3\xd1\x83\xd1\x80\xd0\xb0\xd1\x86\xd0\xb8\xd0\xbe\xd0\xbd\xd0\xbd\xd1\x8b\xd1\x85 \xd0\xb0\xd0\xbd\xd0\xbd\xd0\xbe\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb9 (@Annotation-based configuration)-->\n <context:annotation-config />\n\n\n <context:component-scan base-package="com.epam.hhsystem.jpa" />\n <context:component-scan base-package="com.epam.hhsystem.services" />\n\n <!-- \xd0\xa4\xd0\xb0\xd0\xb9\xd0\xbb \xd1\x81 \xd0\xbd\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb0\xd0\xbc\xd0\xb8 \xd1\x80\xd0\xb5\xd1\x81\xd1\x83\xd1\x80\xd1\x81\xd0\xbe\xd0\xb2 \xd0\xb4\xd0\xbb\xd1\x8f \xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x82\xd1\x8b \xd1\x81 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xbc\xd0\xb8 (Data Access Resources) -->\n <import resource="data.xml" />\n\n </beans>\nRun Code Online (Sandbox Code Playgroud)\n\n数据.xml
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<beans xmlns="http://www.springframework.org/schema/beans"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"\n xmlns:context="http://www.springframework.org/schema/context"\n xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"\n xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"\n xmlns:util="http://www.springframework.org/schema/util"\n xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\n http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd\n http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd\n http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd\n http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd\n http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">\n\n<!-- \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xb0\xd0\xb8\xd0\xb2\xd0\xb0\xd0\xb5\xd1\x82 \xd1\x83\xd0\xbf\xd1\x80\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 \xd1\x82\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb7\xd0\xb0\xd0\xba\xd1\x86\xd0\xb8\xd1\x8f\xd0\xbc\xd0\xb8 \xd1\x81 \xd0\xbf\xd0\xbe\xd0\xbc\xd0\xbe\xd1\x89\xd1\x8c\xd1\x8e \xd0\xb0\xd0\xbd\xd0\xbd\xd0\xbe\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb8 @Transactional -->\n <tx:annotation-driven transaction-manager="transactionManager" />\n\n <!-- \xd0\x9c\xd0\xb5\xd0\xbd\xd0\xb5\xd0\xb4\xd0\xb6\xd0\xb5\xd1\x80 \xd1\x82\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb7\xd0\xb0\xd0\xba\xd1\x86\xd0\xb8\xd0\xb9 -->\n <bean id="transactionManager"\n class="org.springframework.orm.hibernate4.HibernateTransactionManager">\n <property name="sessionFactory" ref="sessionFactory" />\n </bean>\n\n <!-- \xd0\x9d\xd0\xb5\xd0\xbf\xd0\xbe\xd1\x81\xd1\x80\xd0\xb5\xd0\xb4\xd1\x81\xd1\x82\xd0\xb2\xd0\xb5\xd0\xbd\xd0\xbd\xd0\xbe \xd0\xb1\xd0\xb8\xd0\xbd dataSource -->\n <bean id="dataSource"\n class="org.springframework.jdbc.datasource.DriverManagerDataSource"\n p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"\n p:url="jdbc:sqlserver://10.16.9.52:1433;databaseName=hhsystemTest;"\n p:username="userNew" \n p:password="Pass12345" />\n\n <!-- \xd0\x9d\xd0\xb0\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb8 \xd1\x84\xd0\xb0\xd0\xb1\xd1\x80\xd0\xb8\xd0\xba\xd0\xb8 \xd1\x81\xd0\xb5\xd1\x81\xd1\x81\xd0\xb8\xd0\xb9 \xd0\xa5\xd0\xb8\xd0\xb1\xd0\xb5\xd1\x80\xd0\xbd\xd0\xb5\xd0\xb9\xd1\x82\xd0\xb0 -->\n <bean id="sessionFactory"\n class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">\n <property name="dataSource" ref="dataSource" />\n <property name="configLocation">\n <value>classpath:test/hibernate.cfg.xml</value>\n </property>\n\n <property name="hibernateProperties">\n <props>\n <prop key="hibernate.show_sql">true</prop>\n <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>\n <prop key="hibernate.connection.charSet">UTF-8</prop>\n<!-- <prop key="hibernate.hbm2ddl.auto">create-drop</prop> -->\n </props>\n </property>\n </bean>\n\n</beans>\nRun Code Online (Sandbox Code Playgroud)\n\n运行我的应用程序需要什么配置?
\n看来您还没有在配置中定义该 bean。
你可以尝试添加这个
<bean id="springSecurityFilterChain"
class="org.springframework.security.web.FilterChainProxy">
<!-- properties -->
</bean>
Run Code Online (Sandbox Code Playgroud)
并检查你的项目中是否包含了spring security。
| 归档时间: |
|
| 查看次数: |
4444 次 |
| 最近记录: |