카테고리 없음
[스프링 부트] 다형성 ocp
코딩 못하는 감자
2024. 6. 23. 02:24
@Configuration
public class SpringConfig {
private DataSource dataSource;
@Autowired
public SpringConfig(DataSource dataSource) {
this.dataSource = dataSource;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
//return new MemoryMemberRepository();
return new JdbcMemberRepository(dataSource);
}
}
스프링의 DI를 사용하여 기존 코드를 수정하지 않고 설정만으로 구현 클래스를 바꾸었다.
객체의 다형성과, OCP 설계원칙의 필요성이 보이는 부분.
spring.application.name=hello-spring
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
spring.datasource.driver-class-name=org.h2.Driver
추가로 application.properties 코드인데
스프링에서 dataSource를 등록되고
후에 @Autowired를 통해 의존성 주입을 해주었다.
dataSource를 통해 connection 객체 가져오고 statement 객체 가져오고 쿼리 실행한다.