Spring IoC контейнер: сканирование classpath, использование метааннотаций и составных аннотаций
Многие из аннотаций, предоставляемых Spring, могут использоваться как метааннотации в вашем собственном коде. Метааннотация - это аннотация, которая может быть применена к другой аннотации. Например, упомянутая ранее аннотация @Service мета-аннотирована с помощью @Component, как показано в следующем примере: Java @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component // Component заставляет @Service обрабатываться так же, как @Component. public @interface Service { // ... } Kotlin @Target(AnnotationTarget.TYPE) @Retention(AnnotationRetention.RUNTIME) @MustBeDocumented @Component // Component заставляет @Service обрабатываться так же, как @Component. annotation class Service { // ... } Вы также можете комбинировать метааннотации для создания "составных аннотаций". Например, аннотация @RestController из Spring MVC состоит из @Controller и @ResponseBody. Кроме того, составные аннотации могут по желанию повторно объявлять ...