Annotation in Spring Boot
To achieve dependency injection and different design goals we use annotations.
Following is the list of most commonly used annotations in Spring
👉1. @Component
use to make dependent class belong to Spring container. By default, it will create the object of the class in the Spring container using a singleton design pattern (only one object will be created).
Ex.
@Component
class Alpha extends Alien{......}
👉2. @Autowire
use to link objects available in Spring Container.
Ex.
@Autowire
Alien jaadoo;
👉3. @Scope(value="prototype")
When we don't want to use the default singleton design pattern and want to create multiple objects when we ask for it only then.
Ex.
@Component
@Scope(value="prototype")
class Alpha extends Alien{......}
👉4. @Qualifier("name")
Use to give a specific name to the object in the spring container instead of the default name.
Ex.
@Component("jadoo")
class Alpha extends Alien{......}
class T{
@Autowire
@Qualifier("jadoo")
Alien jaadoo;
}
In the above example, the default name is alpha but we changed it to jadoo by using annotation.
👉5. @ConditionalOnProperty( propertyName = "do something")
Use to set(enable/disable) some conditions based on property.
For example, we want to enable the scheduling of some tasks based on the time we can use this annotation.
@ConditionalOnProperty(name = ""spring.enable.scheduling" )
👉6. @Scheduled(cron = "${schedularName}")
Use to schedule tasks based on time and time will be defined in the application.properties based on schedularName.
👉7. @Entity("EntityName")
By default entity name is class name Entity represents POJO which is persistence to the database. One entity iteration is equal to 1 row in the table.
👉8. @Table(name = "TABLE_NAME")
Represents table name in database.
👉9. @Id
Represents the primary key of the database.
👉10.@Column
Represent column Name in Table.
👉11.@Repository
It represents the class is a repository we extend Repo also to use default methods like save, saveAll etc.
No comments:
For Query and doubts!