본문 바로가기

Spring

스프링에서 프리마커 사용해보기.. spring에서 freemarker 사용해 보기.. 그냥 간단하게 사용해 보았다.. (아놔 이거 하고 있을 때 아닌데..괜히 손 대었다가 ㅠㅠ) 프리마커는..음.. UI단의 프레임워크라고 하면 될까..? 일단, 시작 해보자.. 기본적인 spring의 설정은 되어있다고 가정하고.. [servletname]-serviet.xml은 action-config.xml로 설정한다. 우선은 라이브러리를 카피해야 하는데, freemarker.jar를 webapp lib에 넣는다. spring 2.5.5를 받았다면 그 안에서 찾을 수 있다. 그리고, actions-config.xml을 설정한다. (servletDispatcher가 바라보는 [servletname]-servlet.xml이랑 같은 녀석이다.. 이름만 다를뿐.. 더보기
Spring HTTP Invoker 엊그제 인가 작성한 spring rmi 포스트에 이어서.. 친구가 얘기한 http invoker도 한번 해보았다.. 이쪽은 이상하게 웹에 예제가 많지 않더라... 음.. 왜 그러지.. 일단, http invoker는 stream을 사용하여 객체를 주고 받는 형식으로 되어 있는 듯 하다. httpclient.. 예전에 풍대리님께서 가르쳐주신 그러한 비슷한 방법을 사용하는 듯.. 일단 해보는 것이 목적이기 때문에.. 작성을 해보았다. service 제공 측. (server) HttpInvokerSearchService.java public interface HttpInvokerSearchService { Log logger = LogFactory.getLog(HttpInvokerSearchService.cl.. 더보기
DispatcherServlet 의 설정 정보 xml file 설정하기. 기본적인 Spring 설정을 위한 web.xml은.. action org.springframework.web.servlet.DispatcherServlet 1 action *.gs 요런 모양을 갖는다.. 그러면 WEB-INF 밑에 [servlet-name]-servlet.xml 파일로 부터 설정 정보를 읽어오려고 한다. xml 파일이 없으면 당연이 톰캣 구동시 excpetion이 발생하고... (1 이 없으면 구동시 exception은 발생하지 않는다.. 왜냐면 구동시에 servlet이 적재 되는 것이 아니고, 실제 servlet에 접근시 초기화가 진행되기 때문에...) 이 설정 파일을 서블릿별로 지정 할 수 있는데.. 아래와 같이 하면 된다.. remoting org.springframework.web.. 더보기
Spring RMI 사용하기.. Spring RMI를 사용해보기 위해 간단한 클래스들을 작성해 보았다.. 꽤나 삽질 많이 했다..ㅠㅠ 기선님의 블로그에 있는 내용을 보고 작성해 보았는데도 시간이 꽤 걸리더라는... 일단, 서비스를 제공하는 측의 Service 클래스를 만들어보자.. RMISearchService.java import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public interface RMISearchService { Log logger = LogFactory.getLog(RMISearchService.class); String search(String keyword); } RMISearchServiceImpl.java .. 더보기
AbstractDependencyInjectionSpringContextTests를 사용한 테스트 케이스 앞에 Junit을 사용한 TestCase를 보고 기선님의 블로그에 갔다가 또다른 테스트 케이스 형식을 보고 한번 똑같은 테스트 케이스를 위 클래스를 사용해서 작성해 보았다. public class BaseControllerTestOther extends AbstractDependencyInjectionSpringContextTests { Log logger = LogFactory.getLog(BaseControllerTestOther.class); @Override protected String[] getConfigLocations() { return new String[] {"classpath:actions/action-config.xml","classpath:services/serviceContext.. 더보기
JUnit을 이용한 Spring Controller Test 프로젝트를 위해 스프링을 간단한 컨트롤러와 서비스 클래스를 만들어보았다. 스프링은 책으로만 보았지, 직접 사용해보긴 처음이라.. 감 좀 잡고 싶어서.... 2.5.2 버젼을 사용하기 때문에 어노테이션을 활용해 보았다. @Controller public class BaseController { Log logger = LogFactory.getLog(BaseController.class); SearchService ss = null; @Autowired public void setSearchService(SearchService ss) { this.ss = ss; } @RequestMapping("/search.gs") public String search(HttpServletRequest request, .. 더보기
MessageSource와 MessageSourceAccessor (Spring 프레임워크 워크북의 내용을 정리한 것입니다.) Properties 파일로 MessageSource를 관리 하기 위해서는 두가지의 방법을 사용 할 수 있다. Spring에서는 ApplicationContext에서 기본적으로 MessageSource 기능을 포함하고 있는데 여기에 접근하기 위해서는 POJO 빈이 ApplicationContextAware 인터페이스를 구현해야 한다. (이것은 POJO빈이 Spring에 종속된다) 간단하게 예를 보면.. public class SomeServiceImple implements SomeService, ApplicationContextAware { ..... private ApplicationContext context; @override public.. 더보기
Spring에서 빈의 생명주기 Spring 프레임 워크 책에 있는 내용을 정리 한 것입니다. (출처 : Spring 프레임워크 워크북 , 박재성, 한빛미디어) 1. 일단 POJO빈을 인스턴스화 하지 않은 상태로 빈 설정 파일 정보를 초기화 한다. XML,DTD 유효성도 체크한다. 2. 빈 인스턴스를 생성하면서 의존관계에 있는 빈이 존재 하는지의 여부를 체크하고, 존재 하지 않으면 빈 초기화에 실패한다. (WAS 구동시 Exception이 발생하게 된다. ~xml 에 설정되어 있는 ~class가 없어요~~~) 3. 의존관계에 있는 빈의 체크가 완료되면 각 Injection에 맞게 (Setter or Contructor) 값을 추가하거나, 레퍼런스를 전달한다. 4. 생성한 빈이 BeanNameAware 인스턴스 이면 (implements.. 더보기
BeanFactory 인터페이스. 스프링에서는 객체를 컨테이너에서 관리 하는데 이 컨테이너와 관련된 인터페이스가 BeanFactory 인터페이스이다. BeanFactory 더보기
간단한 annotation을 사용한 controller 작성하기.. spring 2.5 에서는 어노테이션을 이용한 컨트롤러 작성이 가능합니다. 이제는 너무 흔한 얘기지만 나름 정리하는 차원에서 그냥 적어둡니다. 일단, 어노테이션을 사용하기 위해선 클래스를 작성해야지요? 원래 controller 클래스를 작성하려면 Controller나 AbstractController를 구현해줘야 합니다만 어노테이션을 사용하면 그런 과정은 생략됩니다. @Controller 이것만으로 컨트롤러의 작성이 가능합니다. @Controller public class BasedController { Logger logger = Logger.getLogger(BasedController.class); @RequestMapping("/search/search.gs") public ModelAndView.. 더보기