-
01 Spring DI 흉내내기(1)Spring/02 Spring DI와 AOP 2023. 6. 21. 22:23반응형
Spring DI 흉내내기
1) 변경에 유리한 코드(1) - 다형성, factory method
- 다형성을 통한 변경 포인트 줄이기
>> SportsCar → Truck 변경
>> 변경 포인트가 2군대 이지만 Car의 클래스로 만들면 변경 포인트가 1군대이다(다형성을 사용)
※ 다형성 : 조상타입의 참조 변수로 변경하면 변경 포인트가 하나로 줄어다
>> 단점 : 사용할 때마다 코드를 변경해야 된다
- 메서드를 통한 객체 생성(factory method)
>> 변경할 메서드만 변경(변경 포인트가 더 줄어들었다
1) 변경에 유리한 코드(2) - Map과 외부 파일
>> Properties p = new Properties( ); 의 Properties는 map형태의 (String, String)으로 저장
반면 Map은 (Object,Object)로 저장
>> Properties를 사용하는 이유는 파일을 읽어오는 load( )가 사용하기 편하기 때문이다
>> 프로그램 변경 없이 config.txt파일 변경
※ [config.txt]는 Dispatcher-Servlet 스프링의 기본전략 =로 Key값과 Value값을 구분
분리
①변하는 것, 변하지 않는 것 ②관심사 ③중복코드(AOP)
main1.java
- Object 변경
Main1.java
2) 객체 컨테이너(ApplicationContext) 만들기
>> ①Properties는 (String, String) 저장 → Map (String, Object) 저장으로 변경
>> [config.txt]의 class를 다른걸로 변경해도 변하는 부분을 변경하지 않고 다른 클래스를 사용 할 수 있게 변경 가능
※getBean: 자바빈, 콩, 자바객체 : spring에서는 Bean이란용어를 사용
main2.java
main2.java (Properties→map 변경)
>> 하드 코딩은 없어지고, config.txt파일로 잃을 수 있다
3) 자동으로 객체 등록하기 - Component Scanning
guava Libray 설치
main3.java
반응형'Spring > 02 Spring DI와 AOP' 카테고리의 다른 글
06 Spring으로 DB연결하기 (0) 2023.06.30 05 Spring DI 활용하기(2) - 이론 (0) 2023.06.28 04 Spring DI 활용하기(1) - 이론 (0) 2023.06.26 03 Spring DI 활용하기-실습 (0) 2023.06.23 02 Spring DI 흉내내기(2) (0) 2023.06.22