이 메모도 역시 토비님 발표를 들으며 요약한 내용입니다. 첫 번째 세션에서 엉뚱한 대답들을 하느라 무안했지만, 기억하는데에는 망신당하는 것이 최고였습니다.
틀린 내용
테스트 하는 Main 메소드가 BeanFactory가 내려가기 전에 끝나서…라고 말하고 싶었는데 뭐라고 말을 한건지도 모르겠네요. -_-;;
ac.close(); 사용하면 볼 수 있음.
2. Autowiring 종류에 default는 없슴. auto-detect.
3. 딴짓(여친과 문자)하느라 질문 내용도 못들음…-_-;;;
정답이 bean이였던걸로 유추하면 2.5에 새로추가된 pointcut 표현식을 물어보셨었나..라고 생각이 됩니다.
요약
컴포넌트 모델 지원
공통의 기반 제공
컴포넌트에 다양한 가치 부여
AOP, 트랜잭션, …
Spring is About Choice
스프링은 만능 솔루션을 강요하지 않아. 항상 선택할 수 있으며, 책임이 뒤따른다.
애노테이션 설정
IoC/DI : 컨테이너가 객체들 관리해준다.
생성, 설정, 데코레이션, 어샘블, …
BeanDefinition : <bean>에 의해 만들어지는 정보
Spring 2.5
Field Injection
Multi Param Method
@Resource
자바스팩에서는 JNDI vs 스프링에서는 Bean 이름
property 태그 대체
디포트 이름은 Java Bean 규약에 따른 이름사용.
필드 인젝션 단점은??
고급설정
CommonAnnotationBeanPostProcessor 직접 등록하고 속성 설정.
init/dest 애노테이션 이름 설정 가능
@PostConstruct
void 리턴
파라미터 없애고, 체크드 익셉션 던지면 안돼
@PreDestroy
컨테이너를 명시적으로 닫아줘야 돼.
ac.close();
@Autowired
기본으로 byType
메소드는 아무이름이나 가져도 된다.
AutowiredAnnotationBeanPostProcessor
<context:annotation-config />
Fine Grained 됐다. 프로퍼티 별로.
한 번에 여러개 주입 가능.(구글 쥬스에서 따옴)
그럼 두 개의 타입은 못쓰느냐?
@Qualifier(“fileFinder”)
<qualifier value || type />
메타 애노테이션
스프링 레퍼런스 참조
required default
primary
custom annotation
component scanning
기본 컴포넌트
@Component
컴포넌트 스캐너 = <context:component-scan base-pachage=”” />
include filter(annotation, assignable, aspectj, regex)
메타에노테이션으로 사용가능.
@Repository, @Service, @Controller, …
AOP 적용할 때 유리해.
value는 꼭 있어야 돼.
XML 수정시 SCM 충돌 괴롭지 아니한가
@Scope
ClassPathBeanDefinitionScanner 쓰면 xml 하나도 안써도 돼.
RAR : 데몬 서비스 패치
JMS
AspectJ LTW가 성능 좋아
트랜잭션에 mode로 LTW 사용가능
실습할 내용
1. @Resource와 @Autowired 언제 어떤걸 사용할까?
2. 트랜잭션 처리할 때 LTW 적용
3. 필드 인젝션 단점은 뭘까?
4. 메타 애노테이션과 Spring AOP에서 포인트컷 표현식의 조화