当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA没有找到...类型的符合相关性的bean

赵同
2023-03-14

我有一个测试Spring Data JPA的示例测试程序,但似乎没有生成存储库。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/jee
            http://www.springframework.org/schema/jee/spring-jee.xsd">

    <import resource="securityConfig.xml" />

    <context:annotation-config />
    <context:component-scan base-package="com.test">
        <context:exclude-filter type="annotation"
                expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <jee:jndi-lookup id="myDataSource" jndi-name="java:comp/env/jdbc/test"/>

    <bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="packagesToScan" value="com.test.security" />
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="myEmf" />
    </bean>
</beans>
package com.test.security;

import org.springframework.security.core.CredentialsContainer;
import org.springframework.security.core.userdetails.UserDetails;

@Entity
@Table
public class UserPrincipal implements UserDetails, CredentialsContainer, Cloneable {
    private static final long serialVersionUID = 1L;

    private long id;
....
}
package com.test.security;

import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<UserPrincipal, Long>
{
    UserPrincipal getByUsername(String username);
}
package com.test.security;

@Service
public class UserService implements UserDetailsService {
    @Inject
    UserRepository userRepository;

    @Override
    @Transactional
    public UserPrincipal loadUserByUsername(String username) {
        UserPrincipal principal = userRepository.getByUsername(username);
        // make sure the authorities and password are loaded
        principal.getAuthorities().size();
        principal.getPassword();
        return principal;
    }
}

org.springframework.beans.factory.beanCreationException:创建名为“org.springframework.security.filterchains”的bean时出错:在使用键[0]设置bean属性“source list”时,无法解析对bean“org.springframework.security.web.defaultsecurityfilterchain#0”的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.web.DefaultSecurityFilterChain#0'的bean时出错:在使用键[3]设置构造函数参数时,无法解析对bean'org.springframework.security.web.authentication.usernamePasswordAuthenticationFilter#0'的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'的bean时出错:在设置bean属性'Authentication Manager'时无法解析对bean'org.springframework.security.authentication.ProviderManager#0'的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.authentication.ProviderManager#0'的bean时出错:在设置构造函数参数时无法解析对bean'org.springframework.security.authentication.authenticationManagerFactoryBean#0'的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.config.authentication.authenticationManagerFactoryBean#0'的bean时出错:FactoryBean在创建对象时引发异常;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.authenticationManager'的bean时出错:在使用键[0]设置构造函数参数时,无法解析对bean'org.springframework.security.authentication.dao.authenticationProvider#0‘的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为'org.springframework.security.authentication.dao.daoAuthenticationProvider#0'的bean时出错:在设置bean属性'user detailsservice'时无法解析对bean'user service'的引用;嵌套异常是org.springframework.beans.factory.beanCreationException:创建名为“user service”的bean时出错:注入autowired依赖项失败;嵌套的异常是org.springframework.beans.factory.beanCreationException:不能autowire字段:com.test.security.userrepository com.test.security.userservice.userrepository;嵌套异常是org.springframework.beans.factory.nosuchBeanDefinitionException:没有找到[com.test.security.userrepository]类型的符合依赖关系的bean:需要至少有1个bean符合此依赖关系的autowire候选项。依赖注释:{@javax.inject.inject()}

共有1个答案

楮景明
2023-03-14

没有为依赖项找到[com.test.security.userrepository]类型的合格bean:预期至少有1个bean符合此依赖项的autowire候选项。依赖注释:{@javax.inject.inject()}

获取spring data jpa名称空间(从spring-data-jpa jar)

xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation=
            http://www.springframework.org/schema/data/jpa 
            http://www.springframework.org/schema/data/jpa/spring-jpa.xsd

并使用jpa命名空间的 元素扫描存储库

xml prettyprint-override"><jpa:repositories base-package="com.test.security"
                  entity-manager-factory-ref="myEmf"
                  transaction-manager-ref="transactionManager"/> 

以下是名称空间信息的链接

对于Java配置,可以通过@enableJParepositories注释实现同样的功能。你可以在上面的链接中阅读更多关于这一点的信息

 类似资料:
  • 您好,我正在建立一个动物园微服务,包括动物、员工、客户和价格表。我的动物微服务可以工作,但在我的员工微服务中,我遇到了一个错误,即没有为类型“EmployeeModel”找到属性“name”。在问这个问题之前,我已经在网上搜索了几个小时,还有一些类似的问题。我在模型中没有“名字”employee_name,我只是感到困惑,不知道如何修复它。任何指导/建议/信息将不胜感激:)第一次发布,所以我希望我

  • 我在使用SpringREST模板时遇到以下错误,但我已经为json响应定义了jackson。 当我使用rest客户端查询url时,我也得到了良好的响应。 rest模板配置:

  • 我通过使用Spring和Hibernate创建实体、服务和服务的JUnit测试开始了我的项目。所有这些都很管用。然后,我添加了spring-mvc来使用许多不同的分步教程来制作这个web应用程序,但是当我试图使用注释制作Controller时,我在部署期间从Glassfish得到错误。我想由于某种原因Spring没有看到我的服务,但经过多次尝试,我仍然无法处理它。 /webapp/web-inf/

  • 我使用Maven Spring 4.1。0 Java 6,我想使用RestTemplate()。postForEntity(url、请求、响应类型) 当我执行这段代码时: 但是我有这个错误: 组织。springframework。http。转换器。HttpMessageGenetWritableException:无法写入请求:在org上找不到适用于请求类型[java.util.HashMap]的

  • 使用Spring,使用以下代码: 我得到 pojo的一个片段:

  • 我得到以下异常,不知道为什么。。。 线程“main”组织中出现异常。springframework。网状物客户RestClientException:无法提取响应:在org上找不到响应类型[class com.avada.rest.UsersController$Users]和内容类型[application/json;charset=UTF-8]的合适HttpMessageConverter。s