From ab917703c71cdad89115f34b4b98dd7b201d457c Mon Sep 17 00:00:00 2001 From: Andreas Hufler Date: Fri, 9 Jan 2026 08:29:30 +0100 Subject: [PATCH] add stereotypes --- .../springboot/toolbox/stereotype/Action.java | 27 +++++++++++++++++++ .../springboot/toolbox/stereotype/Client.java | 27 +++++++++++++++++++ .../springboot/toolbox/stereotype/Guard.java | 27 +++++++++++++++++++ .../springboot/toolbox/stereotype/Job.java | 27 +++++++++++++++++++ .../springboot/toolbox/stereotype/Loader.java | 27 +++++++++++++++++++ .../springboot/toolbox/stereotype/Store.java | 27 +++++++++++++++++++ .../toolbox/stereotype/Validator.java | 27 +++++++++++++++++++ 7 files changed, 189 insertions(+) create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Action.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Client.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Guard.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Job.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Loader.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Store.java create mode 100644 src/main/java/it/aboutbits/springboot/toolbox/stereotype/Validator.java diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Action.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Action.java new file mode 100644 index 0000000..644dce7 --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Action.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Action { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Client.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Client.java new file mode 100644 index 0000000..223f61c --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Client.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Client { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Guard.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Guard.java new file mode 100644 index 0000000..ce670b1 --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Guard.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Guard { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Job.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Job.java new file mode 100644 index 0000000..9b27f64 --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Job.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Job { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Loader.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Loader.java new file mode 100644 index 0000000..ad42d5d --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Loader.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Loader { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Store.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Store.java new file mode 100644 index 0000000..f0f9b38 --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Store.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Store { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} + diff --git a/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Validator.java b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Validator.java new file mode 100644 index 0000000..7c2da31 --- /dev/null +++ b/src/main/java/it/aboutbits/springboot/toolbox/stereotype/Validator.java @@ -0,0 +1,27 @@ +package it.aboutbits.springboot.toolbox.stereotype; + +import org.springframework.core.annotation.AliasFor; +import org.springframework.stereotype.Component; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface Validator { + + /** + * The value may indicate a suggestion for a logical component name, + * to be turned into a Spring bean in case of an autodetected component. + * + * @return the suggested component name, if any (or empty String otherwise) + */ + @AliasFor(annotation = Component.class) + String value() default ""; +} +