결합도는 모듈과 모듈사이의 관련 정보를 표현한다.
객체간 종속관계가 낮을 수록 결합도와 상호 의존성이 낮아지고 독립성이 높아져 좋은 코드가 됨.
독립성이 높아질수록 코드간의 간섭이 일어나는 일이 줄어들게 되고, 유지보수 또한 용이함.
코드간의 간섭을 줄이고 결합도를 낮추는 방법
메소드를 통한 의존성 주입
XML을 이용한 Setter 메소드를 통한 의존성 주입
XML을 이용한 생성자를 통한 의존성 주입
<bean id="레퍼런스변수명" class="클래스 풀네임">
<property name="OOO">
<value>ㅁㅁㅁ</value>
</property>
</bean>
<property name="OOO" ref="ㅁㅁㅁ">
<bean id="불러 올 객체" class="클래스 풀네임">
<constructor-arg index="0" value="OOO"/>
<constructor-arg name="OOO" ref="OOO"/>
</bean>
index: 필드 순서에 따라 접근 가능
<beans>
<bean> 저장소
에 해당하는 XML 설정 파일을 참조하여 <bean>
들의 생명주기를 관리하고 여러가지 서비스를 제공<import> 엘리먼트
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<import resource="/PersonContext.xml"></import>
<import resource="/sampleContext.xml"></import>
</beans>
scope 속성
scope 속성을 이용하면 객체를 singleton 형태로 만들것인지 아니면 새롭게 생성할 것인지를 설정
속성 값
스프링에서는 BeanFactory와 이를 상속한 ApplicationContext 라는 두 가지 유형의 컨테이너를 제공
BeanFactory
<bean> 객체
를 생성하고 관리하는 가장 기본적인 컨테이너 기능만 제공ApplicationContext
<bean> 객체
관리 기능 외에도 트랜잭션 관리나 메시지 기반의 다국어 처리 등 다양한 기능 제공GenericXmlApplicationContext
XmlWebApplicationContext