Дублирование bean-компонента Spring: «bean-компонент, определенный в null, не может быть зарегистрирован». Не могу найти это - PullRequest
0 голосов
/ 04 февраля 2020

Я пишу простое тестовое приложение Spring JPA и получаю сообщение об ошибке: "Не удалось зарегистрировать бин 'userRepository', определенный в null. Бин с таким именем уже определен в null, а переопределение - инвалидов. ". Я понимаю, что это указывает на дублирование бобов, но я действительно запутался, где, черт возьми, дублирование. Полагаю, что включение бина не является хорошим выбором. Пожалуйста, помогите.

Структура приложения:

Класс пользователя

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 class

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;
     }
}

UserRepository

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> {
  }

application.properties

# ===============================
# 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

У меня нет других файлов / классы, кроме прикрепленных здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...