공부/Spring 복습

스프링 설정 파일 분리

ChoiDooSic 2021. 8. 27. 10:55

스프링은 많은 코드가 하나의 xml파일에 담겨질수 있기때문에
너무 길어져 가독성에 문제와 관리에 문제가 생길수 있기 때문에
효율적으로 파일을 분리하여 관리하는 방법에 관한 내용이다.
학사관리 시스템이 있다 이 시스템을 구성하는 xml파일에는
dao객체, 서비스객체,데이터베이스와 관련된 객체, 학사관리 시스템의 인포메이션 시스템을 담은 객체가 있다
이걸 한곳에 모아둔다면 정말 긴 코드가 되어 가독성이 떨어지고 관리가 힘들어 질 수 있다 그렇기에
이것을 기능별로 3가지로 분리한 것이고 분리를 하는것은 프로그래머의 몫 이라고 한다.

1. dao객체를 만드는 파일
2.데이터 베이스와 관련된 부분만 떼어내어 만든 파일
3.시스템을 관리하는 서비스기능이 있는 파일

분리한 파일은 배열을 이용하여 넣어주면 깔끔하다

String[] appCtxs = {"classpath:appCtx1.xml", "classpath:appCtx2.xml", "classpath:appCtx3.xml"};
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(appCtxs);

배열에 넣어두면 스프링은 반복문을 돌리지 않아도 안에있는게 전부 임포트된다.
(xml파일하나에 2개의 파일을 임포트하고 하나의 파일만 가져와서 사용해도된다)

# 빈의 범위(싱글톤) - 같은 데이터타입을 참조하기만 한다.
스프링 컨테이너에 생성된 객체를 getBean()을 통해 가져오면
new처럼 새로운 객체가 생성되는것이 아닌 객체를 참조하는것 뿐이다.
동일한 타입에 대해서는 한 개만 생성이 된다.

# 프로토 타입의 범위 - 데이터타입은 같으나 다른 계속 찍어낸다.
호출할때마다 같은 데이터타입이지만 다른 객체를 만들때에는
속성으로 scope을 준다면 호출할 때 마다 다른 객체가 생성된다.