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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Если мы используем аннотацию @ConfigurationPropertiesScan, необходимо ли использовать аннотацию @EnableConfigurationProp
    Anonymous » » в форуме JAVA
    0 Ответы
    82 Просмотры
    Последнее сообщение Anonymous
  • Почему мы используем f и L для чисел с плавающей запятой и длинных чисел в Java и не используем b и s для байтовых и кор
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Ошибка urllib3.Exceptions.NewConnectionError обрабатывается на одном компьютере, но не обрабатывается на другом
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Blazor WASM Component Component заставляет сервер сбой
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Spring: @Component против @Bean
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

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