Поэтому я принял ошибку как: требовался один bean-компонент, но были найдены два, когда я использовал аннотацию @Autowird для его внедрения, но это не дало мне никаких ошибок и создало два bean-компонента. Итак, я заметил, что если я использую приведенный ниже код для его внедрения:
@Autowired
Book book;
Это не выдает никаких ошибок, поскольку здесь имя экземпляра — book.
Но если я внедрю его как:
@Autowired
Book obj;
Это выдает ошибку: требовался один компонент, но были найдены 2
Может ли кто-нибудь сказать мне, почему это примерно так.
- Код класса книги:
public class Book {
void readBook() {
System.out.println("reading book");
}
}
- Код класса AppConfig:
public class AppConfig {
@Bean
Book getBook() {
return new Book();
}
}
- Код основного класса, куда я его внедряю и получаю ошибку:
public class IntroductionToSpringBootApplication implements CommandLineRunner {
@Autowired
Book obj;
public static void main(String[] args) {
SpringApplication.run(IntroductionToSpringBootApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
}
}
- Код основного класса, в который я его внедряю и не получаю ошибок:
public class IntroductionToSpringBootApplication implements CommandLineRunner {
@Autowired
Book book;
public static void main(String[] args) {
SpringApplication.run(IntroductionToSpringBootApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
}
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... n-annotati