Я скажу это один. Знать и писать. Даже если вы знаете разницу между этими двумя, вы можете видеть, что вы знаете половину того, как работает пружина.
Как вы знаете, пружины заменяют метод runaway EJB. А база аннотаций значительно повысила производительность разработки.
А теперь давайте выясним. Разница между двумя аннотациями!
@Компонент
Аннотация, которая создает ячейку одноэлементного класса. 물론/ Область применения("Прототип") |/Аннотации также могут создавать не одноэлементные ячейки. Также @Сервис , @ Репозиторий также включены аннотации.
Эта аннотация является декларативной аннотацией. Другими словами, внутри сканирования пакета в этой аннотации говорится: “Вы определили этот класс, поэтому зарегистрируйте его как пустой. Это означает”.
Эта аннотация написана так, что это скучно, поэтому я закончу описание выше.
@Боб
В основном это объявлено в методе, который входит в класс, устанавливающий Spring с аннотацией @Configuration . Если это @Компонент//, Spring ищет пакет для сканирования @Компонент//Если вы нашли аннотацию, вы можете зарегистрировать ее следующим образом.
@Component
public class MyBean {
// ...
}
// 스프링 내부 처리를 이해하기 쉽게 표현하면?
@Bean
public MyBean myBean() {
return new MyBean();
}
Конечно, если в конструкторе есть аргумент, убедитесь, что он пуст, а затем поместите его. Конечно, если нет, пружина выдает ошибку и завершает работу приложения.
Итак, почему же она существует?
Старая Spring поддерживала только настройки XML, а полноценная поддержка аннотаций началась в версии 3.0. Конечно, последняя версия, 5.2, также поддерживает настройки XML. Что, если это преимущество при настройке на XML?//Преимущество заключается в том, что можно настроить гибкие настройки, такие как немедленная вставка и удаление, изменение класса. Просто отредактируйте XML-файл и перезапустите приложение, и все закончится. Это действительно просто. Вы можете пометить пробел, который вам не нужен. Если вы измените слово XML или класс Единственное, что мне нужно сделать, это перезапустить приложение. Кроме того, пустые регистрации быстро выполняются без необходимости сканирования. Это обращение к старшим разработчикам, которые придерживаются настроек XML, делает настройки XML Ты не хочешь выходить. Приведенные выше параметры корзины основаны на классе, а аннотация @Bean//также позволяет выполнять эту гибкую операцию. Например,
// prop 정의 안하면 빈 문자열로. null 받으면 switch 문에서 NullPointerException 발생함
@Value("${my.prop.animal:}")
private String animal;
@Bean
public Animal animal() {
switch(animal) {
case "dog": return new Dog();
case "cat": return new Cat();
case "cow": return new Cow();
default: throw new InvalidStateException("동물 정의하고 다시 실행할 것!");
}
}
Таким образом, возможна гибкая обработка путем считывания значения свойства и регистрации соответствующего класса реализации в корзине на основе интерфейса. 또한,/ Компонент/| Когда вы регистрируете класс библиотеки сторонних производителей в корзине, который трудно аннотировать @Bean Может быть зарегистрирован с помощью метода через аннотацию.
Уборка
Общие сведения ваша пустая регистрация проста |/@Компонент аннотация, если вам нужна гибкая пустая регистрация @Конфигурация В классе с аннотацией @Компонент//Объявление метода аннотации!//О, для весенней загрузки @SpringBootApplication Даже в весеннем исполнении с аннотацией |/Давайте не будем забывать, что вы можете регистрировать методы с помощью аннотаций @Bean .
Оригинал: “https://dev.to/composite/spring-component-bean-3hj”