25 общих аннотаций, которые нужно освоить весной

Java Spring
25 общих аннотаций, которые нужно освоить весной

Это 29-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

предисловие

Сама аннотация не имеет никакой функции, как и xml. И аннотации, и xml являются своего рода метаданными, метаданные — это данные, интерпретирующие данные, это так называемая конфигурация.

Общие примечания

@Component

Указывает, что аннотированный класс является «компонентом» и становится bean-компонентом, управляемым Spring. Эти классы считаются кандидатами на автоматическое обнаружение при использовании конфигурации на основе аннотаций и сканирования путей к классам. В то же время @Component также является мета-аннотацией.

@Service

Комбинированные аннотации (в сочетании с аннотациями @Component) применяются на уровне службы (уровень бизнес-логики).

@Repository

Комбинированные аннотации (в сочетании с аннотациями @Component) применяются на уровне dao (уровень доступа к данным).

@Controller

Комбинированная аннотация (в сочетании с аннотацией @Component), примененная на уровне MVC (уровень управления), DispatcherServlet автоматически просканирует класс, аннотированный этой аннотацией, а затем сопоставит веб-запрос с методом, аннотированным с помощью @RequestMapping.

@RequestMapping

Используется для сопоставления веб-запросов, включая пути доступа и параметры. (в классе или методе)

@ResponseBody

Поддержка помещения возвращаемого значения в ответ вместо страницы, обычно пользователь возвращает данные json. (рядом с возвращаемым значением или в методе)

@RequestBody

Разрешить параметры запроса быть в теле запроса, а не непосредственно после адреса. (перед параметром)

@PathVariable

Он используется для получения параметров пути, таких как путь, объявленный @RequestMapping("/hello/{name}"), и значение можно получить, поместив аннотацию перед параметром, обычно как метод реализации интерфейса Restful.

@RestController

Эта аннотация представляет собой комбинированную аннотацию, которая эквивалентна комбинации @Controller и @ResponseBody.Аннотация находится в классе, что означает, что все методы контроллера добавляются с @ResponseBody по умолчанию.

@ExceptionHandler

Используется для глобальной обработки исключений в контроллерах.

@ModelAttribute

Исходная функция заключается в привязке пары ключ-значение к модели.В @ControllerAdvice глобальный @RequestMapping может получить заданную здесь пару ключ-значение.

@Autowired

Инструменты, предоставляемые Spring (автоматически внедряемые инструментами внедрения зависимостей Spring (BeanPostProcessor, BeanFactoryPostProcessor)).

@Configuration

Объявите, что текущий класс является классом конфигурации (эквивалентным XML-файлу конфигурации Spring) (в классе).

@Bean

Аннотация находится на методе, объявляя, что возвращаемое значение текущего метода является Bean. Метод init() и метод destroy() могут быть определены в классе, соответствующем возвращаемому Bean-компоненту, а затем определены в @Bean(initMethod="init", destroyMethod="destroy"), init выполняется после создания и destroy выполняется до уничтожения. (методично)

@ComponentScan

Автоматически сканировать все использования в указанном пакете@Service、@Component、@Controller、@Repositoryкласс и зарегистрироваться (на класс).

@Aspect

Объявите аспект (на классе) Используйте @After, @Before, @Around для определения совета (advice), который может напрямую принимать правило перехвата (pointcut) в качестве параметра.

@After: Выполняется после выполнения метода (на методе).

@Before: Выполняется перед выполнением метода (в методе).

@Around: Выполняется до и после выполнения метода (в методе).

@PointCut: Объявить pointcuts. Используйте аннотацию @EnableAspectJAutoProxy в классе конфигурации Java, чтобы включить поддержку Spring для прокси-серверов AspectJ (в классе).

@Scope

Определите, какой режим мы используем для создания Bean (в методе должен быть @Bean). Его типы настроек включают:

Singleton(Singleton, только один экземпляр компонента в контейнере Spring, режим по умолчанию),Prototype(новый компонент создается для каждого вызова),Request (В веб-проекте создайте новый компонент для каждого http-запроса),Session(В веб-проекте создайте новый компонент для каждого сеанса http),GlobalSession(Создайте новый экземпляр Bean для каждого глобального http-сеанса).

@PostConstruct

Аннотируется к методу, который выполняется после завершения выполнения конструктора.

@PreDestory

Аннотируется к методу, который выполняется до того, как объект будет уничтожен.

@Value

Часто используется с языком выражений Sping EL для ввода общих символов, системных свойств, результатов операций выражения, свойств других компонентов, содержимого файла, содержимого запроса URL, значений атрибутов файла конфигурации и т. д.

@EnableAsync

В классе конфигурации поддержка асинхронных задач включается с помощью этой аннотации, описательного интерфейса AsyncConfigurer. (на уроке)

@Async

Используйте эту аннотацию в фактическом методе компонента, чтобы объявить, что это асинхронная задача (все методы в методе или классе будут асинхронными, и @EnableAsync требуется для включения асинхронных задач)

@EnableScheduling

Используется в классе конфигурации для включения поддержки запланированных задач. (на уроке)

@Scheduled

заявить, что это задача, в том числеcron,fixDelay,fixRateи другие типы. (Что касается метода, вам необходимо сначала включить поддержку запланированных задач)

Описание аннотации @Enable*

Эти аннотации в основном используются для включения поддержки xxx. @EnableAspectJAutoProxy Включает поддержку автоматического прокси-сервера AspectJ.

@EnableAsync: Включить поддержку асинхронных методов.

@EnableScheduling: Включает поддержку запланированных задач.

@EnableWebMvc: включить поддержку конфигурации для Web MVC.

@EnableConfigurationProperties: Включает поддержку аннотированных компонентов конфигурации @ConfigurationProperties.

@EnableJpaRepositories: включить поддержку репозитория SpringData JPA.

@EnableTransactionManagement: Включает поддержку аннотированных транзакций.

@EnableTransactionManagement: Включает поддержку аннотированных транзакций.

@EnableCaching: включить поддержку кэша аннотаций.