본문 바로가기

프레임워크/Spring

SpringFramework의 특징

다양한 API와의 연동 지원을 통한 JAVA EE 구현가능하다. (분산X)

Aspect Oriented Programming(AOP) : 관점지향 프로그래밍


※ Dependency Injection을 이용한다는 것.
실행기가 외부파일에 등록해둔(XML)의 <bean id>를 찾아서
Spring Application Context 내부에 객체들을 만듬
이 객체들이 JVM의 메모리 번지수로 들어가니 키와 밸류로 관리됨. 맵 자료 구조형태

 

소스코드에서 박아서 쓴다 vs 의존관계
- 소스코드에 박아서 씀
ProductService.java에
    public ProductService() {
        repository = new ProductOracleMybatisRepository();
    }

- 외부파일로 의존관계를 설정을 해 놓고 사용할 수 있도록 주입할 수 있는 방식(이게 dependency injection)
myApplicationContext.xml에
<bean id="productDAO"class="com.my.product.dao.ProductOracleRepository"> </bean>
<bean id="productService" class="com.my.product.service.ProductService">
    <property name="repository" ref="productDAO"></property>
</bean>


의존성을 주입할 수 있는 2가지 방법
1.  Setter Injection
property tag 이용
<property name="repository" ref="productDAO"></property>
property(setter)에 의해서 repository라는 property. productService에 주입
repository라는 name 멤버변수

 

2. Constructor Injection
생성자 이용
<constructor-arg ref="productDAO"></constructor-arg> property대신 생성자를 통해서 주입가능

'프레임워크 > Spring' 카테고리의 다른 글

Inversion of Control  (0) 2023.10.30
스프링 구성 모듈  (0) 2023.10.30
POJO(Plain Old Java Object)  (0) 2023.10.30
EJB(Enterprise Java Beans)  (0) 2023.10.26
스프링의 시작  (0) 2023.10.24