Welcome to Spring Mastery Hub.

  • How to Use Spring’s @Profile Annotation for Flexible Configurations

    The profile annotation in spring allows you to segregate configurations that are available only in specific environments. If you mark a @Component (and its specializations) or any @Configuration or @Bean with the @Profile annotation, they will be available only if the profile specified is active. You can set the profile using application.properties by using the…

  • How to Use the @Import Annotation in Spring Framework

    The @Import annotation allows you to specify which configurations your Spring application should load. You can think of this annotation as your Java class’s import statements. In this case, it’s going to import only classes with the @Configuration annotation. It’s not the exact concept, but you get the idea. By using the @Import, you explicitly…

  • Method security with @Secured Annotation in Spring

    This annotation provides a way to add security configuration to business methods. It will use roles to check if a user has permission to call this method. The annotation is part of spring security. So to enable its usage you need the spring security dependency. Example Scenario You have an application that has a product…

  • Using the @Lookup Annotation in Spring

    The @Lookup annotation is an injection (like @Inject, @Resource, @Autowired) annotation used at the method level. This annotation tells Spring to overwrite the method, redirecting to the bean factory to return a bean matching the return type of the method. This can be useful for some bean scopes, such as the prototype scope, which will…

  • @PreDestroy and @PostConstruct in Spring: Managing Bean Lifecycle

    These annotations are called at specific moments in the bean lifecycle. They allow you to define methods executed after a bean is created and before the beans are destroyed. Both annotations come from Jakarta EE and can be used in Spring projects. They are useful for managing resources that are only used in the bean’s…

  • @Resource: The Versatile Bean Injection Annotation for Jakarta EE and Spring

    This annotation does bean injection, like the @Autowired and @Inject annotations. This annotation is packaged with Jakarta EE and will work on your Spring projects. You can use this annotation almost in the same way you use the other annotations used to inject dependencies. Using in-field injection and set methods is possible, but constructors are…

  • Understanding the @DependsOn Annotation in Spring

    Introduction to the @DependsOn Annotation This annotation tells Spring that the bean marked with this annotation should be created after the beans that it depends on are initialized. You can specify the beans you need to be created first in the @DependsOn annotation parameters. This annotation is used when a bean does not explicitly depend…

  • Understanding @Primary in Spring

    If you read my post about the @Qualifier annotation, you have noticed that defining two beans of the same type can be a challenge. By distinguishing it with a qualifier name, @Qualifier helps Spring determine which bean to inject. The @Primary annotation will help Spring decide which of those same types of beans it should…

  • Using @Qualifier to Resolve Bean Conflicts in Spring

    When working on a Spring project, you might encounter a situation where you have multiple bean implementations for the same type. This can cause an error because Spring doesn’t know which bean to inject. To solve this, we use the @Qualifier annotation. The Problem Let’s say you have an interface MessageService that your application uses…

  • How @AliasFor Simplifies Annotations usage in Spring

    This annotation is an annotation that allows you to create an alias for an attribute in an annotation. These attributes have the same function. The idea is to avoid confusion when multiple attributes can be used for the same purpose Maybe this is the first time you have seen it. Spring uses this annotation in…