2016.02.21(일) 오후 6시 신촌 팟팟팟 3층 카페
결합관계
- 상 결합도 : 직접적으로 클래스와 클래스가 결합하는 것
- 중 결합도 : 인터페이스를 구현하여 클래스와 결합하는 것
- 하 결합도 : 스프링 DI를 적용하여 클래스와 결합하는 것
- 강한 결합관계가 중, 대규모 이상의 프로젝
트에서 좋지 않는 이유 ? 업무에 대한 범위 규정(통일성)을 할 수 있다.
스프링의 특징
- 클래스의 결합도를 끊기 위해 인터페이스로 기술하여 메소드를 정의한다.
- 필요한 인스턴스를 스프링에서 미리 생성 - 재활용이 높은 유연한 어플리케이션 작성
- DI, AOP(중복제거) 중점적인 기술 사용
- 어플리케이션 프레임워크라고 불린다(웹 전용물이 아니다)
- 다형성, 범위규정(통일성), New 객체 생성하지 않는다.
스프링 객체 생성방법
- application Context.xml에서 스프링 설정으로 new 한다.
- <bead id=" " name=" " class="절대경로" > </bean>
- 스프링은 기본이 싱글톤으로 설정되어 있음 : <bead id=" " name=" " class="절대경로" scope="singleton"> </bean>
- 새로 객체를 생성하는 설정 : scope="prototype"
- ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
- MessageBean bean = (MessageBean) context.getBean("messageBean");
의존성 주입 기법(Dependency Injection) : 스프링의 핵심개념
- 객체 사이의 의존관계를 자기 자신이 아닌 외부에 의해서 설정된다는 개념
- 생성자를 통한 DI(Constructor Injection) : <constructor-arg></constructor-arg> 사용
- 설정 메소를 통한 DI(setter Injection) : <property name="bar"></property>
bar -> setBar로 해석한다.
- 부픔의 연결이 특기
- annotation으로 DI
byType : 형을 보고 인젝션하는 방법
byName : 이름으로 인젝션하는 방법
Autowired : annotation을 형식 기준으로 자동으로 주입한다. <context:annotation-config/>
Component-scan : component 관련된 annotation을 자동으로 등록한다. <context:component-scan base=package="sample.*"/>
component란? : 클래스를 만드는 단위, bean 설정한 것들을 모아놓은 것. @ annotaion
예) bean으로 설정
<bean id="someController" class="chap02.chap02_server_code_design.no2_serverCodeDesignWithInterface.SomeControllerImpl">
<property name="someService" ref="someService" />
</bean>
<bean id="someService" class="chap02.chap02_server_code_design.no2_serverCodeDesignWithInterface.SomeServiceImpl">
<property name="someDao" ref="someDao" />
</bean>
예) component-scan으로 설정하는 것.
<context:component-scan base-package="chap02.chap02_server_code_design.no3_serverCodeDesignWithAnnotation"/>
'IT 지식' 카테고리의 다른 글
[Spring] Spring Security (0) | 2025.04.17 |
---|---|
[JAVA] 메소드(Method) (1) | 2025.04.13 |
[JAVA] 변수와 연산자 (0) | 2025.04.13 |
[XPLATFORM] Chap09_배포 (0) | 2025.04.13 |
[XPLATFORM] Chap08_MLM (0) | 2025.04.13 |