Spring/02 Spring DI와 AOP

01 Spring DI 흉내내기(1)

라타노 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( ); Propertiesmap형태의 (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 (Propertiesmap 변경)

>> 하드 코딩은 없어지고, config.txt파일로 잃을 수 있다

 

 

3) 자동으로 객체 등록하기 - Component Scanning

 

 

 

guava Libray 설치

 

main3.java

 

 

 

 

 

 

반응형