Important Annotations
@SpringBootTest & @Test
@SpringBootTest
public class CourseRepositoryTest {
@Autowired
private CourseRepository courseRepository;
@Test
public void saveCourse() {
List<Course> courses = courseRepository.findAll();
System.out.println("courses = " + courses);
}
@Component
- It is an annotation that allows Spring to automatically detect our custom beans
- Can only be annotate on a class
@Service
and@Repository
are special cases of@Component
.
@Service
Service Components are the class file which contains @Service annotation. These class files are used to write business logic in a different layer, between @RestController
class and @Repository
@Repository
@Repository annotates classes at the persistence layer, which will act as a database repository.
@Autowired
- Enables automatic dependency injection. In other words, by declaring all the bean dependencies in a Spring configuration file, Spring container can auto wire relationships between collaborating beans. This is called Spring bean auto-wiring.
@Primary
- There's another annotation called @Primary that we can use to decide which bean to inject when ambiguity is present regarding dependency injection.
- This annotation defines a preference when multiple beans of the same type are present.
@EnableConfigurationProperties
To load config from Class, refer below annotation
@ConfigurationProperties("secret")
@ConfigurationProperties("secret")
public record SecretConfigProp(String username, String password, String authToken) {
}
```spring-boot-properties
secret.authToken:my_auth_token
secret.username:myusername
spring.config.import:optional:secrets.properties
```
```java-properties
secret.password=password
```