Computer Science/Spring 11

#10 Tiles

TilesPage layout 을 content 와 분리 -> 독립적인 page layout 정의하고, 구성 요소들을 동적으로 삽입 에 비해 유연성, 유지보수 편의성 증가 TilesConfigurer 이용하여 Tiles 설정 파일 지정TilesViewResolver 사용하여 view resolving servlet-with-tiles.xml /WEB-INF/jsp/tiles/template/tilesdef.xml ​ tiles/template/layout.jsp :외부 content 삽입 위치 : 외부 text 삽입 위치 ​ ... tiles/template/tilesdef.xml컨트롤러에서 메소드의 리턴값을 태그 안의 definition name 을 리턴값으로 함 ​ ​ Tiles definitions..

#9 HTTP Session 사용

HTTP Session 사용@SessionAttributescontroller 클래스에 적용지정된 이름 또는 타입의 model 객체들을 session에 저장 및 사용controller가 임시적으로 유지, 공유하고자 하는 model 객체들을 저장하기 위해 사용 -> 주로 여러 화면을 통해 단계적으로 입력되는 데이터들을 보관 시 유용여러 controller 사이의 데이터 공유는 HttpSession 이용 (ex. 사용자 인증 정보)SessionStatus interface - setComplete() : session종료(session에 저장되어 있는 모든 객체 삭제) @Controller @RequestMapping("/account/create.do") @SessionAttributes("member")..

#8 Form 입력 값 검증

Form 입력 값 검증Controller에서 command 객체 생성 및 입력 값 저장 후 Validator 객체를 통해 객체 값 검증 가능boolean supports(Class clazz);-> 주어진 클래스 clazz에 대한 검증 지원 여부 반환void validate(Object target, Errors errors);-> target객체(Form 입력 값을 저장하고 있는 command 객체)에 대한 검증 수행-> 오류 발생 시 errors 객체에 오류 정보 저장.error코드는 validation.properties 파일로 관리 public class MemberInfoValidator implements Validator { ​ @Override public boolean supports(C..

#7 Model Data

//Model DataController가 request 처리 후 view에 전달하는 데이터Command 객체, request 처리 결과, view 생성에 필요한 참조 데이터 등 ModelAndView를 이용한 Model Data 설정Controller의 처리 결과를 출력할 view 이름 지정View에 전달할 데이터 저장[ Constructors ]public ModelAndView(String viewName)public ModelAndView(String viewName, Object modelObject)생성자를 통해 전달하는 경우는 View에 전달할 객체가 하나인 경우에 유용함.[ Setters ]public void setViewName(String viewName)public ModelAndV..

#6 Command 객체 이용한 Form 전송 처리

// Spring MVC 구조 중 Controller Command 객체를 이용한 Form 전송 처리HTML Form에 입력된 데이터를 JavaBeans 객체를 통해 전달받음JavaBeans class 정의(called command class)DispatcherServlet은 command 객체를 생성하고 form 입력 값들을 대응되는 property들에 저장한 후 request handler method에 전달함 ( command 객체에 form 입력 값 저장 후 request method에 전달) HTML Form 게시글 쓰기 입력 폼: 제목: 내용: Command Class public class NewArticleCommand { ​ private String title; private Stri..

#5 Spring MVC 구조

Spring MVCModel - View - ControllerModel : Business logic 실행, data 처리, database 연동View : User Interface, presentation logic​(브라우저에 출력시킬 response 만듦, 주로 jsp)Controller : Request 처리 흐름 제어, request/response data 전달 DispatcherServlet : client 요청(request) 받아 controller에 전달, controller 처리 결과를 view에 전달(Tomcat과 같은 서블릿엔진(서버)로 실행, front controller 역할)HandlerMapping : 요청 URL을 처리할 Controller 결정Controller : ..

#4 Bean 객체의 life-cycle 관리

Bean 객체의 life-cycle 관리Spring container의 역할container는 bean객체의 생성, 초기화, 소멸 등 life-cycle을 관리함각 bean에 대해 life-cycle 관련 method들을 호출하여 실행함life-cycle관련 interface의 callback method는 적절한 시점에 호출 실행BeanNameAware : 의 id/name 속성에 지정된 값 전달BeanFactoryAware : bean객체에 bean을 관리하는 BeanFactory 객체 전달InitializingBeanbean객체 생성 및 property 초기화(DI) 이후 호출주로 property 값 설정 결과 검증 위해 사용bean의 custom init-method로 대체 가능Desposable..

#3 Spring DI : auto-wiring, annotation 기반

Spring DI - auto-wiring, annotation 기반Auto-wiringDI 명시적 설정 안해도 bean의 Type이나 Name 이용하여 container가 DI를 자동 수행autowire 속성 이용하여 지정 byNamesetter injectionproperty와 같은 name(id) 선택하여 주입 위의 코드를 autowire 속성 이용하여 자동 주입 byTypesetter injectionproperty와 같은 type 갖는 bean을 찾아 주입.byType은 의존객체가 하나만 존재할 때 사용이 가능 위의 코드를 autowire 속성 이용하여 자동 주입, 여기서 Saxophone은 유일한 객체 constructorconstructor injectionbyType처럼 type으로 선택하..

#2 Spring DI - xml 기반

Spring DI Spring ContainerSpring Bean 객체의 life-cycle관리(bean 객체 생성, 초기화, 이용, 삭제)DI (Dependency Injection) : bean들간 의존 관계에 따라 객체들을 연결가장 많이 쓰는 interface : ApplicationContext (BeanFactory를 확장) ApplicationContext context = new ClassPathXmlApplicationContext(test.xml); BeanType bean = context.getBean("beanName", test.class); bean 생성 : 설정 파일의 root element : container에 의해 생성/관리될 bean 객체를 정의 //bean 객체 정의..

#1 Spring Framework

[ CHAP 1 ]Spring Frameworkopen source application framework for JAVA platformContainer와 Library의 결합크기 작고 성능 우수, Java 객체의 life-cycle 관리Dependency Injection 지원 (DI, 객체들 간 의존 관계 설정)-> DI와 Interface 활용한 객체들 간의 느슨한 결합(loose coupling)annotation 통한 선언적 프로그래밍Aspects와 templates 이용한 단순 반복 코드 제거AOP(Aspect-Oriented-Programming) 지원-> 핵심 business logic과 system service 사이의 독립성 보장mvc framework 제공 Spring Web MVC..