Spring이 Singleton Bean을 구현하는 방법
스프링 구성
eidher ・ 2020년 9월 27일 ・ 2분 읽기
#spring
#java
#dependencyinjection
#bean
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
return new JdbcDataSource();
}
@Bean
public DevRepository devRepository() {
JdbcDevRepository repository = new JdbcDevRepository(dataSource);
repository.setDataSource(dataSource());
return repository;
}
@Bean
public ProdRepository prodRepository() {
JdbcProdRepository repository = new JdbcProdRepository();
repository.setDataSource(dataSource());
return repository;
}
}
시작 시 하위 클래스는 cglib(코드 생성 라이브러리)를 사용하여 생성됩니다. bean의 첫 번째 호출에서만 super를 호출하고 애플리케이션 컨텍스트에 의해 하나의 인스턴스가 캐시되고 하위 클래스가 진입점입니다.
@Configuration
public class AppConfig$$EnhancerByCGLIB$ extends AppConfig{
...
}
그러나 cglib는 생성자가 있는 클래스를 지원하지 않으므로(Spring 4.3부터 autowired 생성자가 가능합니다. 참조) Spring은 이제 이를 극복하기 위해 objenesis을 사용합니다.
싱글턴 패턴
eidher ・ 10월 1일 '20 ・ 1 분 읽기
#creational
#designpattern
#pattern
#java
Reference
이 문제에 관하여(Spring이 Singleton Bean을 구현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eidher/how-spring-implements-singleton-beans-2332텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)