plming/Java - Spring(35)
-
Spring - 빈 설정 파일 관리
1. 수평적 분리 방법 각 컴포넌트마다 하나의 설정 파일을 가지며, 해당 컴포넌트에 관련한 모든 정보(UI, 비즈니스, 퍼시스턴스)를 가지는 구조 applicationContext-user.xml : User컴포넌트의 UI게층, 비즈니스 계층, 퍼시스턴스 계층의 모든 정보 applicationContext-board.xml : Board컴포넌트의 UI게층, 비즈니스 계층, 퍼시스턴스 계층의 모든 정보 각 컴포넌트마다 설정 파일을 관리할 수 있고 명확한 분리가 가능하므로 효율적으로 관리가 가능. 그러나, 각 계층에서 공통적인 정보를 각 컴포넌트마다 중복해서 설정해야 한다는 단점이 있다. 2. 수직적 분리 방법 각 계층마다 하나씩의 빈 설정 파일을 가지는 방법 applicationContext-ui.xml ..
2010.08.22 -
Spring AOP - Logging, Exception 구현
1. Target Logging, Exception등을 제외한 단지 비즈니스 로직만을 포함하고 있어야 한다. ※ AOP를 적용한다고 해서 일정한 패턴이 없는 모든 Logging을 제거할 수는 없다. 해당 메써드내에서만 추가되는 Logging 메시지 같은 경우에는 과거와 같은 방식으로 구현할 수 밖에 없다. 애플리케이션을 개발할 때 애플리케이션 개발을 위하여 세운 정책(이것이 Aspect이다.)은 일정한 패턴이 있기 때문에 이를 Advice로 구현하는 것이 가능하지만 일정한 패턴없이 구현되는 부분에 대해서는 과거와 같은 방식으로 개발할 수 없다는 것을 의미한다. 2. Advice Target 클래스에 추가적인 기능을 지원하기 위한 목적으로 사용되는 것. - Logging 처리를 담당할 Advice = Sp..
2010.08.19 -
Spring AOP (Aspect Oriented Programming)
객체 지향 프로그래밍(OOP: Object Oriented Programming)이 비즈니스 업무에 대한 확장성과 독립성을 가능하게 함으로서 유지보수성을 좋게한 것은 사실이지만, OOP 이전의 절차적 프로그램에서 나타나던 Logging, Exception처럼 비즈니스 로직과는 관계없는 코드들이 핵심적인 비즈니스 로직을 담당하는 소스코드와 함께 애플리케이션 전체 영역에 걸쳐서 중복된 소스코드가 존재하고 있기 때문에 Logging, Exception 정책이 바뀔 경우 개발자들이 소스를 일일이 찾아서 수정해줘야하는 번거로움을 감수할 수 밖에 없었던 한계점을 극복하기 위한 대안으로 등장한 것. AOP는 OOP와 경쟁관계에 있는 것이 아니라 상호 보완적인 관계로 새롭게 등장한 패러다임이다. 그러므로 AOP는 지금..
2010.08.19 -
Spring - 테스트 전략
1. ApplicationContext 생성 ClassPathXmlApplicationContext는 클래스패스에 있는 XML 빈 설정파일을 이용할 때 사용 String[] paths = { "/WEB-INF/applicationContext.xml" }; ctx = new ClassPathXmlApplicationContext(paths); userDAO = (UserDAO) ctx.getBean("userDAO"); FileSystemXmlApplicationContext는 파일 시스템에 있는 XML 빈 설정파일을 이용 String[] paths = { "chapter2/web/WEB-INF/applicationContext.xml" }; ctx = new FileSystemXmlApplication..
2010.08.17 -
ANT 사용 시 한글 Properties 파일처리
한글로 작성된 Properties파일을 그대로 사용할 경우 한글이 깨지는 문제가 발생한다. 이 같은 문제점을 해결하기 위하여 native2ascii 유틸을 이용하여 Properties 파일의 메시지를 ascii 코드로 변경해 주어야 한다. ANT(http://ant.apache.org) 빌드툴을 이용하여 빌드작업을 진행할 때 ascii 코드로 변경하는 작업을 자동적으로 실행하고 있다. build.xml의 complie Target을 보면 엘리먼트가 다음과 같이 사용되고 있는 것을 확인 할 수 있다. 이와 같이 반복적인 작업을 ANT 빌드툴을 이용하여 자동화해 놓으면 애플리케이션을 개발할 때 개발속도의 향상을 가져올 수 있다. [출처] http://www.javajigi.net/pages/viewpage...
2010.08.17 -
Spring - 초기화 및 빈의 생명주기 관리
- BeanFactory 와 ApplicationContext 기본적인 빈의 생성, 초기화, 빈에 대한 접근과 같은 기능을 제공하는 인터페이스는 BeanFactory. ApplicationContext는 BeanFactory의 하위 인터페이스로서 BeanFactory가 가지고 있는 기능 외에 추가적인 기능을 지원하고 있는 것. - ApplicationContext가 추가적으로 지원하는 기능 1. MessageSource를 지원하여 애플리케이션에서 필요한 메시지들을 관리하는 것이 가능하다. 2. Spring 프레임워크에서 관리하는 POJO 빈들 중 ApplicationListener를 구현하여 설정파일에 등록할 경우 등록된 리스너에게 이벤트를 전달하는 것이 가능하다. 즉, ApplicationContext..
2010.08.15