Это 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
: включить поддержку кэша аннотаций.