Spring boot CrudRepo定义一个bean

问题描述 投票:3回答:3

我在春季启动时遇到有关存储库的问题。我有一个服务:

@Service("userService")
public class UserServiceImpl implements UserService {

  @Autowired
  private UserRepository userRepository;

  @Autowired
  private RoleRepository roleRepository;
}

和这里的回购:

@Repository("userRepository")
public interface UserRepository extends CrudRepository<User, Long> {
     User findByEmail(String email);
}

当我运行应用程序时,我收到此消息:

Description:

Field userRepository in com.projectWS.service.UserServiceImpl required a 
bean of type 'com.projectWS.repo.UserRepository' that could not be found.

Action:

Consider defining a bean of type 'com.projectWS.repo.UserRepository' in your 
configuration.

请帮帮我,我很绝望......这是我的主要课程:

@SpringBootApplication
@Configuration
@EnableWebMvc
public class Main {

   public static void main(String[] args) {
    SpringApplication.run(Main.class, args);
   }
}

另一个问题是,@EnableJpaRepositories没有得到认可!

java spring spring-mvc spring-boot spring-security
3个回答
4
投票

很可能你的Main类是在一个包中定义的,而你的其他包没有被扫描。

尝试注释你的Main课程:

@ComponentScan("com.projectWS")

根据您的错误消息判断并假设您的包级别的顶部从com.projectWS开始


0
投票

我不是Spring专家,但我怀疑这可能是因为这些类的名称的情况。只是为了安心测试,请:

@Service("userService")
public class UserServiceImpl implements UserService {

  @Qualifier("userRepository")
  @Autowired
  private UserRepository userRepository;

  @Qualifier("roleRepository")
  @Autowired
  private RoleRepository roleRepository;
}

0
投票

您似乎没有为JPA添加Spring数据,请将以下内容添加到您的pom.xml中

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.