首页 > 解决方案 > Spring bean重复:“在null中定义的bean,无法注册”。找不到

问题描述

我正在编写一个简单的 Spring JPA 测试应用程序并收到错误:“在 null 中定义的 bean 'userRepository' 无法注册。具有该名称的 bean 已经在 null 中定义并且覆盖被禁用。” . 我知道它指向 bean 重复,但我真的很困惑地狱重复在哪里。我猜只是打开 bean 覆盖并不是一个好的选择。请帮忙。

该应用程序的结构是:

用户类

package com.mot.platform.bean;

import org.springframework.data.annotation.Id;

import javax.persistence.*;

@Entity
@Table(name="plan_user")
public class User {

   @Id
   @Column(name = "id", nullable = false)
   private Long id;

   @Column(name = "name", length = 255, nullable = false)
   private String name;

   @Column(name = "password", length = 255, nullable = false)
   private String password;

   public Long getId() {
      return id;
   }

   public void setId(Long id) {
      this.id = id;
   }  

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getPassword() {
      return password;
   }

   public void setPassword(String password) {
      this.password = password;
   }
}
'''

**UserRepository class**<br />
'''
package com.mot.platform.model;

import org.springframework.stereotype.Repository;
import com.mot.platform.bean.User;
import org.springframework.data.repository.CrudRepository;

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
    //User findById(long id);
}

用户服务类

package com.mot.platform.model;

import com.mot.platform.bean.User;

public interface UserService {

    public void addUser (String name, String password);
    public User getUserById (Long id);

}

UserServiceImpl 类

UserServiceImpl

package com.mot.platform.model;

import org.springframework.stereotype.Service;

import com.mot.platform.bean.User;
import java.util.Optional;

@Service
public class UsrServiceImpl implements UserService {

  //  @Autowired
    private UserRepository rep;

    public void addUser(String name, String password) {
        User user = new User();
        user.setName("TestHiber");
        user.setPassword("ttt");
        rep.save(user);
    }

    public User getUserById(Long id) {
        Optional<User> optusr = rep.findById(id);
        User usr = optusr.isPresent() ? optusr.get() : null;
        return usr;
     }
}

用户存储库

package com.motivation.platform.model;

import org.springframework.stereotype.Repository;
import com.mot.platform.bean.User;
import org.springframework.data.repository.CrudRepository;

@Repository
public interface UserRepository extends CrudRepository<User, Long> {
  }

应用程序属性

# ===============================
# DATABASE
# ===============================
spring.datasource.driver-class-name= oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:BDSM
spring.datasource.username=XXX
spring.datasource.password=YYY
# ===============================
# JPA / HIBERNATE
# ===============================
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.Oracle9Dialect
spring.jpa.hibernate.ddl-auto=update

除了附在此处之外,我没有其他文件/类。

标签: javaspring-bootjpa

解决方案


推荐阅读