2024/05/07 4

JDBC Template / 트랜잭션

1.기존 JDBC의 보일러플레이트 코드템플릿 메서드 + 전략 패턴 -> JDBC template 2.디펜던시 추가spring-jdbc : spring-tx 포함tomcat-jdbc : 커넥션 풀mysql-connecter-java *톰캣, 히카리CP도 DB 커넥션 풀 제공 3. ddl.sql 내부유저 / create DB / 권한 / 테이블 만들기 4. 워크벤치에서 시험용 데이터 생성 - 4.MemberDao가 JDBC template을 가진다.JDBC template은 DataSource를 인자로 생성하는데, DS는 AppCtx에서 D/I해준다 5. AppCtx 2개 빈 추가- 톰캣 DS 생성 후 set으로 mysql 연결정보 + 풀 정보 셋업- memberDao에 DS 조립 - 7. MemberDao..

AOP복습

1.spring-context 기본 모듈에 AOP 기능은 있으나,어노테이션 추가기능 사용 위해 aspectjweaver 디펜던시 추가 2.delegate 패턴- interface Calculator- class implements Calculater : field + 세터 + @Override(앞뒤로 추가기능) - 3.프록시 : 실행은 다른 객체에 위임하고 부가 기능을 제공하는 객체 4.대상 객체 : 실제 핵심 기능을 실행하는 객체 * 프록시보다 데코레이터 - 5.AOP (관점보다는 기능으로 해석)핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용하는 것 6.3가지 시점AspectJ : 컴파일 시점AspectJ : 클래스 로딩 시점 : 바이트코드에 삽입스프링 제공 : 런타임에 프록시 객체 생성  7...

빈 라이프사이클

1. ctx가 생성되고 소멸될때 빈도 딸려간다. 2. 컨테이너 생성시 -> "빈 생성 / 의존 설정 / 초기화 "  3. 컨테이너 소멸시 -> "빈 소멸" - 4. 빈 초기화 및 소멸시 지정 메서드 호출 5. 인터페이스 2가지 및 그에 딸린 추상메서드  6. InitializingBean -> afterPropertiesSet() / DisposableBean -> destory() 7. 사용할 클래스에서 두개 implement후 8. 사용 기능 앞뒤로 메서드 커스텀해주기 9. ctx 설정클래스는 별도로 건드리지 않아도 된다. - 10. 메인에서ctx 생성 -> ctx.getBean()얻기 -> Bean 메소드 사용 -> ctx.close();설정된 커스텀 메서드 실행된다 - 11. 외부에서 제공받은 클..

스프링 DI 복습

1. 어셈블러 개념 : Ctx가 Bean을 자동으로 조립해준다/ 2. 사용하는 메인단 / AppCtx 설정클래스 / 빈이 되는 개별 기능 클래스들 3.@Config가 붙은AppCtx 클래스에서 조립 main에서 Ctx 생성해서 사용 4. 설정 파일 역시 클래스로 관리된다. 5. 일반 설정파일에는 memberDao  6. 사용하는 cngpwclass에서 private MemberDao memberDao는 항상 존재 7. ctx파일에서 setMemberDao를 안넣어줘도 사용클래스에서 @Autowired 넣어도 가능 8. Autowired는 사용클래스 내의 setter 메서드에 넣어도 됨 9. 결과적으로 ctx 설정클래스에 생성자든 세터든 명시 필요 x 10. 설정 클래스를 그대로 사용하지 않고 복사해서 사..