Middle
How are beans initialized in Spring?
sobes.tech AI
Answer from AI
Spring beans are initialized by the Spring IoC container (Inversion of Control) at application startup. The main initialization methods are:
- Using annotations: For example, a class is marked with
@Component,@Service,@Repository, or@Controller. The container scans packages and creates instances of these classes. - Using configuration classes:
@Configurationis used with methods annotated with@Bean, which return objects to be registered in the context. - XML configuration: In older projects, beans are described in XML files.
Initialization occurs in several stages:
- The container scans and creates bean instances (by default, singletons).
- Dependency injection is performed (via constructors, setters, or fields with
@Autowired). - Initialization methods are called if defined (
@PostConstructor through theInitializingBeaninterface).
Example of annotation-based configuration:
@Component
public class MyService {
@Autowired
private MyRepository repository;
@PostConstruct
public void init() {
// initialization code
}
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}