카테고리 없음

[스프링 부트] 다형성 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 객체 가져오고 쿼리 실행한다.