Tag: software-development
-
Understanding @Repository in Spring
What is @Repository? This is a class-level annotation that indicates that the Class’s purpose is to store, search, retrieve, update, and delete objects. It has a special role when dealing with databases. Why is it important? How to use @Repository Define an interface, annotate with @Repository, and extend one of those interfaces: JpaRepository, CrudRepository, or PagingAndSortingRepository. This…
-
What is @Service In Spring?
This is a class-level annotation that is a specialization of @Component designed to handle business logic. It will turn your class into a Spring-managed bean. Why is it important? By using this annotation, you are implementing a separation of concerns by placing the business logic in a specific layer, thereby improving code readability. How to…
-
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…