Аннотации когнитивного контроля в Spring boot позволяют создавать аннотации с соответствующим внедрением зависимостей.
В статье основное внимание уделяется когнитивному контролю аннотации (аннотаций). Особенно @Annotation (@-при широком использовании в аннотациях весной) и практическая реализация в реальном проекте. Действительно, вы можете использовать бесплатный открытый исходный код здесь, на github. Просто нажмите на нее
Действительно, мы рассмотрим список аннотаций весной ниже.
@SpringBootApplication (см. Рисунок-1. Аннотация в Spring Boot)
- Аннотация указывает на класс конфигурации, который объявляет один или несколько методов @Bean, а также запускает автоматическую настройку и сканирование компонентов.
- Это удобная аннотация, которая эквивалентна объявлению @Configuration, @EnableAutoConfiguration и @ComponentScan.
Рисунок-1. Аннотация в весеннем ботинке.
Более подробная информация приведена в аннотации ниже на этой стороне.
- @EnableAutoConfiguration – включить механизм автоматической настройки Spring Boot
- @@Componentscan – включить сканирование @Component в пакете, в котором находится приложение.
- @Configuration – позволяет регистрировать дополнительные компоненты в контексте или импортировать дополнительные классы конфигурации.
Кроме того, мы будем аннотировать метод компонента с помощью @Async, чтобы он выполнялся в отдельном потоке, т.е. вызывающий не будет ждать завершения вызываемого метода. (см. Рисунок-2). Если вы уже работали над приложением Spring или Spring Boot и вам необходимо использовать асинхронный механизм, то следующие три быстрых шага помогут в настройке.
Рисунок-2. Асинхронная аннотация к методу.
Обратите внимание, что Spring использует библиотеку Jackson JSON для преобразования JSON-ответа GitHub в пользовательский объект. Аннотация @JsonIgnoreProperties сигнализирует Spring игнорировать любые атрибуты, не перечисленные в классе. Это упрощает выполнение вызовов REST и создание объектов домена. В этой статье мы используем название и URL-адрес блога только в демонстрационных целях.
Рисунок-3 Архитектурная структура класса. (смотрите больше кода в github )
Что мы будем здесь строить?
Действительно, мы создадим службу поиска, которая запрашивает информацию о пользователе GitHub и извлекает данные через API GitHub. Один из подходов к масштабированию сервисов заключается в выполнении дорогостоящих заданий в фоновом режиме и ожидании результатов с использованием интерфейса Java CompletableFuture. Завершаемое будущее Java – это эволюция обычного будущего. Это упрощает конвейерное выполнение нескольких асинхронных операций, объединяя их в одно асинхронное вычисление.
Класс службы поиска GitHub использует RestTemplate Spring для вызова удаленной точки СБРОСА (api.github.com/users/), а затем преобразуйте ответ в пользовательский объект. Spring Boot автоматически предоставляет Rest TemplateBuilder, который настраивает значения по умолчанию с помощью любых битов автоматической настройки (например, MessageConverter). Метод findUser помечен аннотацией Spring @Async, указывающей, что он будет выполняться в отдельном потоке. Возвращаемый тип метода – CompletableFuture вместо User, что является обязательным требованием для любой асинхронной службы. Этот код использует метод Completedfuture для возврата экземпляра CompletableFuture, который уже завершен с результатом запроса GitHub.
Запущенное приложение
- Мы можем запустить автономное приложение Spring boot двумя способами. Мы используем maven, поэтому просто запустите приложение с помощью ./mvn spring-boot:run. Или вы можете создать файл JAR с помощью ./mvn clean package. Затем вы можете запустить файл JAR:
- На приведенной ниже диаграмме показано, как запустить приложение spring boot из IDE – щелкните правой кнопкой мыши – запустите as – Spring boot Async Application.main() метод как отдельный класс Java.
Кроме того, список всех аннотаций и краткое объяснение:
@Autowired
@Qualifier("laptop") this may use component regarding laptop name... (ex>=
Component("lap1")
@autoconfiguration
-------------------------
@Bean
@Configuration
@Control
@Component
@ComponentScan
-------------------------
@Data ---> at the class level is provided by Lombok and tells Lombok to
generate all of those missing methods.
@DeleteMapping
-------------------------
@EnableAutoConfiguration
@Entity
@EnableWebSecurity
------------------------
@ManyToMany (targetEntity=Ingredient.class_)
@ManyToOne
------------------------
@NotNull
@NotBlank
@NoArgsConstructor ( access=AccessLevel.PRIVATE, force=true)
------------------------
@GetMapping
-------------------------
@Service
@SpringBootApplication
@SpringBootTest
@Size
@Slf4j - Simple Logging Facade for Java. Lombok's @Slf4j annotation to create
a free SLF4J Logger object at runtime.
@SessionAttributes
@SuppressWarnings("")
-------------------------
@PostMapping
@PutMapping
@PatchMapping
@PrePersist
@Profile
-------------------------
@RunWith(SpringRunner.class)---> prividing a test runner that guides JUnit in
running a test. Plugin to JUnit to provide custom.
@Repository
@RequestMapping
@RequiredArgsConstructor
-- ----------------------
@Table
------------------------
@Query("")
------------------------
@Valid
------------------------
@WebMvcTest - set up Spring support for testing Spring MVC. Although it
could be made to start a server, mocking the mechanics of Spring MVC.
Аналогично, вы можете использовать API github, просто бесплатно используйте его. API Github
Оригинал: “https://dev.to/urunov/cognitive-control-annotations-in-spring-boot-23io”