Основные аннотации Spring Boot, которые должен знать каждый
Опубликовано: 2021-12-13Java Spring Framework — это платформа корпоративного уровня с открытым исходным кодом, используемая для создания автономных приложений производственного уровня, которые работают на виртуальной машине Java (JVM). С этой целью Java Spring Boot представляет собой инструмент, который упрощает и ускоряет разработку веб-приложений и микросервисов с помощью Spring Framework. Для этого Java Spring Boot использует три основные возможности: автоматическую настройку, взвешенный подход к настройке и возможность создания автономных приложений. Объединение этих основных функций предоставляет инструмент, который позволяет разработчикам настраивать приложения на основе Spring с минимальными конфигурациями.
До аннотаций поведение Spring Framework в основном контролировалось конфигурацией XML. Однако аннотации Spring Boot кардинально изменили способ настройки поведения Spring Framework.
В этой статье мы рассмотрим некоторые основные аннотации в Spring Framework.
Оглавление
Что такое аннотации Spring Boot?
Аннотации Spring Boot — это форма метаданных. Они не являются частью разрабатываемого приложения как такового, но предоставляют дополнительные данные о программе. Аннотации не оказывают прямого влияния на работу кода, который они аннотируют, и не изменяют действия скомпилированной программы.
Приложения Spring требуют значительной степени настройки. Spring Boot — это самоуверенная платформа, основанная на Spring Framework. Это сводит к минимуму усилия по настройке и стандартному шаблону, необходимому для начала работы. Аннотации Spring Boot — это ключ к получению контроля над Spring Framework, управлению фреймворком и переопределению его значений по умолчанию, когда это необходимо. Эти аннотации просты в использовании и быстрее, чем создание эквивалентных функций с нуля.
Аннотации Spring Boot, которые должен знать каждый
Хотя Spring Boot работает с Java, Groovy и Kotlin, мы сосредоточимся на Java при обсуждении важных аннотаций Spring Boot.
1. @Конфигурация
@Configuration используется в классах, определяющих bean-компоненты. Аналогом файла конфигурации XML является аннотация уровня класса, используемая в качестве источника определений bean-компонентов. Аннотированный @Configuration класс Java сам по себе является конфигурацией и имеет методы для настройки и создания экземпляров зависимостей.
Пример:
@Конфигурация
автобус общественного класса
{
Движок @BeanBus()
{
вернуть новую шину();
}
}
2. @Бин
В качестве альтернативы XML-тегу <bean> аннотация @Bean используется на уровне метода, чтобы указать, что метод создает bean-компонент для управления контейнером Spring. Эта аннотация работает вместе с @Configuration для создания компонентов Spring. @Configuration имеет методы для настройки и создания экземпляров зависимостей, и такие методы аннотируются @Bean.
Пример:
@Бин
Public BeanExample beanExample ()
{
вернуть новый BeanExample(),
}
3. @КомпонентСкан
Аннотация @ComponentScan используется для сканирования пакета bean-компонентов. Он используется вместе с аннотацией @Configuration, чтобы сообщить Spring, какие пакеты необходимо сканировать на наличие аннотированных компонентов.
Пример:
@ComponentScan(basePackages = «com.xyz»)
@Конфигурация
Открытый класс ScanComponent
{
//…
}
4. @Компонент
Аннотация @Component используется в классах для обозначения компонента Spring. Это аннотация уровня класса, которая преобразует класс в bean-компонент Spring во время автоматического сканирования.
Пример:
@Компонент
Учителя публичных классов
{
……
}
5. @EnableAutoConfiguration
Аннотация @EnableAutoConfiguration обычно размещается в основном классе приложения и неявно определяет базовый пакет поиска. На основе настроек пути к классам, различных настроек свойств и других компонентов @EnableAutoConfiguration указывает Spring Boot начать добавление компонентов.
6. @SpringBootApplication
Аннотация @SpringBootApplication добавляет три аннотации — @Configuration, @EnableAutoConfiguration и @ComponentScan. Он используется в классе приложения при настройке проекта Spring Boot, а класс с аннотацией @SpringBootApplication помещается в базовый пакет. @SpringBootApplication выполняет сканирование компонентов, но только вложенных пакетов.
7. @Репозиторий
Аннотация @Repository используется в классах Java, которые напрямую обращаются к базе данных. Он работает как маркер для классов, которые выполняют роль объекта доступа к данным или репозитория.
Пример:
@Репозиторий
открытый класс TestRepository
{
публичная пустота удалить ()
{
// код сохраняемости
}
}
8. @Сервис
Это аннотация на уровне класса, которая помечает класс Java, выполняющий такие услуги, как выполнение бизнес-логики, выполнение вычислений или вызов внешних API. Аннотация @Service — это специальная форма аннотации @Component для использования на уровне сервиса.
Пример:
@Оказание услуг
открытый класс TestService
{
общественная недействительная служба1 ()
{
// бизнес-код
}
}
9. @Autowired
Эта аннотация неявно вводит зависимость объекта и применяется к полям, конструкторам и методам установки. Когда @Autowired используется для полей и значения для полей передаются с использованием имени свойства, Spring автоматически присваивает полям переданные значения.
10. @Контроллер
Аннотация @Controller используется в классах Java, которые служат контроллером в приложении. Это позволяет автоматически определять классы компонентов в пути к классам, а также автоматически регистрировать для них определения bean-компонентов. Аннотация @Controller обычно используется с @RequestMapping, а классы Java, аннотированные с помощью @Controller, могут обрабатывать несколько сопоставлений запросов.
Пример:
@контроллер
@RequestMapping("автомобили")
открытый класс CarsController
{
@RequestMapping (значение = «/ {имя}», метод = RequestMethod.GET)
публичный сотрудник getCarsByName()
{
Возврат автомобилейШаблон;
}
}
11. @RequestMapping
Аннотация @RequestMapping используется как на уровне метода, так и на уровне класса. Он служит для сопоставления веб-запросов с указанными методами и классами обработчиков. Когда @RequestMapping используется для методов, он предоставляет URL-адрес, по которому будет выполняться метод обработчика. Напротив, когда аннотация используется на уровне классов, она создает базовый URL-адрес, для которого будет использоваться контроллер. Следовательно, каждый метод обработчика будет иметь свое соответствующее сопоставление запросов, в то время как сопоставление запросов на уровне класса останется прежним.
Пример:
@контроллер
открытый класс FlowersController
{
@RequestMapping («/красный цвет/цветы»)
общедоступная строка getAllFlowers (модель модели)
{
//код приложения
вернуть «цветочный список»;
}
12. @Квалификатор
@Qualifier используется вместе с @Autowired, когда требуется больший контроль над процессом внедрения зависимостей. Аннотация @Qualifier может быть указана либо в параметрах метода, либо в отдельных аргументах конструктора. Путаница обычно возникает, когда разработчик создает более одного bean-компонента одного типа, но только один из них должен быть связан со свойством. Аннотация @Qualifier помогает устранить эти недоразумения.
Пример:
@Компонент
открытый класс BeanB1 реализует BeanInterface {
//
}
@Компонент
открытый класс BeanB2 реализует BeanInterface {
//
}
В приведенном выше примере BeanInterface реализуется двумя bean-компонентами BeanB1 и BeanB2. Теперь, если BeanA автоматически подключит этот интерфейс, Spring не будет знать, какую из двух реализаций он должен внедрить. Вы можете решить эту проблему, используя аннотацию @Qualifier. Имея эту аннотацию, Spring будет знать, какой из bean-компонентов следует автоматически связывать.
@Компонент
открытый класс BeanA {
@Autowired
@Квалификатор("beanB2")
частная зависимость BeanInterface;
…
}
13. @Значение
Аннотация @Value используется на уровне поля, параметра метода и параметра конструктора. Он обозначает выражение значения по умолчанию для параметра или поля, которым инициализируется свойство.
14. @Ленивый
Аннотация @Lazy применяется к классам компонентов. При запуске все автосвязанные зависимости создаются и настраиваются по умолчанию. Но аннотацию @Lazy можно использовать, если разработчик хочет лениво инициализировать bean-компонент. Таким образом, bean-компонент создается и инициализируется только по запросу. Аннотацию @Lazy также можно использовать в классах @Configuration, что означает, что все методы @Bean в этой @Configuration будут инициироваться лениво.
Хотя этот список аннотаций Java Spring Boot не является исчерпывающим, он более или менее охватывает самые основные из них, которые должен знать каждый разработчик или энтузиаст Java. В конце концов, Spring Boot упростил разработку приложений на основе Spring, и о нем стоит знать.
Магистр наук в области науки о данных Ливерпульского университета Джона Мурса.
Если вы начинающий специалист по данным, у вас есть возможность учиться у лучших. upGrad предлагает онлайн-программу магистра наук в области науки о данных в партнерстве с Ливерпульским университетом Джона Мурса, специально разработанную для работающих профессионалов, желающих отточить свои навыки и знания в области науки о данных.
Вот некоторые основные моменты программы с первого взгляда:
- Степень магистра от LJMU и Executive PGP от IIT Bangalore
- Более 500 часов обучения с живыми занятиями, кейсами и проектами
- Полный охват более 14 инструментов и программного обеспечения
- Три уникальные специализации
- 360-градусная помощь в карьере
- Коллегиальное обучение и отраслевые сети
Иммерсивные и актуальные для отрасли программы обучения upGrad повлияли на более чем 500 000 работающих профессионалов по всему миру и продолжают устанавливать высокие стандарты в индустрии высших образовательных технологий. Итак, подайте заявку сегодня и присоединитесь к более чем 40 000 глобальной базе учащихся в 85 странах!
Изучайте онлайн- курсы по науке о данных в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Какова цель стартера Spring Boot?
Стартеры Spring Boot — это дескрипторы зависимостей, которые позволяют добавлять jar-файлы в путь к классам. Каждый пусковой механизм имеет следующий шаблон именования в среде Spring Boot: spring-boot-starter-*, где * представляет определенный тип приложения.
В чем разница между @SpringBootApplication и @EnableAutoConfiguration?
Основная задача @EnableAutoConfiguration — включить функции автоматической настройки приложения Spring Boot. Напротив, @SpringBootApplication объединяет три аннотации: @ComponentScan для сканирования компонентов, @Configuration для конфигурации на основе Java в среде Spring и @EnableAutoConfiguration для разрешения автоматической настройки в приложениях Spring Boot.
Может ли Spring загружаться без SpringBootApplication?
Не обязательно использовать @SpringBootApplication для создания приложения Spring Boot. Вы по-прежнему можете использовать @EnableAutoConfiguration и @Configuration по отдельности.