Spring Boot: как обрабатывается Spring загрузка, если мы используем аннотацию @Component и @Bean для одного и того же клJAVA

Программисты JAVA общаются здесь
Anonymous
Spring Boot: как обрабатывается Spring загрузка, если мы используем аннотацию @Component и @Bean для одного и того же кл

Сообщение Anonymous »

В моем приложении весенней загрузки. Я создал класс с именем Book и аннотировал этот класс аннотацией @Component. Затем я создал класс AppConfig с аннотацией @Configration и в этом классе создал имя метода getBook() с аннотацией @Bean, которое возвращает объект Book.
Поэтому я принял ошибку как: требовался один bean-компонент, но были найдены два, когда я использовал аннотацию @Autowird для его внедрения, но это не дало мне никаких ошибок и создало два bean-компонента. Итак, я заметил, что если я использую приведенный ниже код для его внедрения:
@Autowired
Book book;

Это не выдает никаких ошибок, поскольку здесь имя экземпляра — book.
Но если я внедрю его как:
@Autowired
Book obj;

Это выдает ошибку: требовался один компонент, но были найдены 2
Может ли кто-нибудь сказать мне, почему это примерно так.
  • Код класса книги:
@Component
public class Book {

void readBook() {
System.out.println("reading book");
}

}
  • Код класса AppConfig:
@Configuration
public class AppConfig {

@Bean
Book getBook() {
return new Book();
}
}
  • Код основного класса, куда я его внедряю и получаю ошибку:
@SpringBootApplication
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 {
}
}
  • Код основного класса, в который я его внедряю и не получаю ошибок:
@SpringBootApplication
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

Вернуться в «JAVA»