1. command 객체 수정- BoardVO에 searchCondition과 searchKeyword 변수와 getter/setter 메소드를 추가한다. 2. controller 구현- 로그인 성공 후의 상황이나 상세 화면에서 글 목록으로 되돌아올 경우 전체 목록 검색을 위해 null 체크를 한다.- 기본이 TITLE에 Keyword는 "" 검색12345678910111213// 글 목록 검색@RequestMapping("/getBoardList.do")public String getBoardList(BoardVO vo, Model model) {// System.out.println("글 목록 검색 처리"); if(vo.getSearchCondition() == null) { vo.setSearchC..
지금까지 Spring MVC를 기반으로 개발한 게시판 프로그램의 구조와 실행 순서는브라우저에서 버튼이나 하이퍼 링크를 클릭하여 서버에 요청을 전송하면모든 요청을 서블릿 컨테이너가 생성한 DispatcherServlet이 받는다.그리고 DispatcherServlet은 스프링 컨테이너가 생성한 Controller에게 요청을 전달하고,Controller는 매개변수를 통해 전달된 DAO 객체를 이용하여 사용자가 요청한 로직을 처리한다. 지금 실습에서는 Controller가 DAO 객체를 직접 이용했지만 이 방식은 옳지 않고 비즈니스 컴포넌트를 이용해야 한다. 1 비즈니스 컴포넌트 사용- Spring IoC를 학습하면서 만들었던 비즈니스 컴포넌트는 VO 클래스, DAO 클래스, Service 인터페이스, Ser..
어노테이션 적용 및 컨트롤러 통합- 어노테이션을 이용하여 간단하게 구현된 컨트롤러를 하나의 파일러 합하여 편하게 관리한다. 1. BoardController- 기존에 구현했던 나머지 컨트롤러 파일들은 삭제한다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374package com.springbook.view.board; import java.util.HashMap;import java.util.Map; import org.springframework.stereotype.Controller;import org...
스프링은 어노테이션 기반 설정을 제공함으로써 과도한 XML 설정으로 인한 문제를 해결한다. Spring MVC도 스프링 설정파일에 HandlerMapping, Controller, Viewresolver 같은 여러 클래스를 등록해야 하므로 어노테이션 설정을 최대한 활용하여 XML 설정을 최소화할 필요가 있다. 1. 어노테이션 관련 설정1) presentation-layer.xml에 context 네임스페이스를 추가한다.2) presentation-layer.xml에 HandlerMapping, Controller, ViewResolver 클래스에 대한 등록을 모드 삭제한다.3) presentation-layer.xml에 view의 Controller 클래스가 스캔 범위()에 포함되도록 한다.4) getB..
Spring MVC 적용을 위해 앞서 개발했던 view.controller 패키지를 삭제한다. 1. HandlerMapping 등록- 각각의 컨트롤러 파일들을 매핑시켜준다.- SimpleUrlHandlerMapping객체는 Setter 인젝션을 통해 Properties 타입의 컬렉션 객체를 의존성 주입하고 있다.- 그리고 의존성 주입된 Porperties 컬렉션에는 "*.do"경로 요청에 대한 아이디가 매핑되어 있다.12345678910111213141516171819202122232425 login getBoardList getBoard insertBoard updateBoard deleteBoard logout cs 2. controller 구현- 스프링에서 제공하는 controller로 변경하고, ..
1. 스프링 MVC의 수행 흐름 1) 클라이언트로부터의 모든 ".do" 요청을 DispatcherServlet이 받는다. 2) DispatcherServlet은 HandlerMapping을 통해 요청을 처리할 Controller를 검색한다.3) DispathcerServlet은 검색된 Controller를 실행하여 클라이언트의 요청을 리턴한다.4) Controller는 비즈니스 로직의 수행 결과로 얻어낸 Model 정보와 Model을 보여줄 View 정보를 ModelAndView 객체에 저장하여 리턴한다.5) DispatcherServlet은 ModelAndView로부터 View 정보를 추출하고, ViewResolver를 이용하여 응답으로 사용할 View를 얻어낸다.6) DispatcherServlet은..
이전까진 DispatcherServlet클래스 하나로 Controller 기능을 구현했다. 하지만 이렇게 하나의 서블릿으로 컨트롤러를 구현하면 개발과 유지보수가 어려워진다. 1. MVC 프레임워크 구조 클래스 기능 DispatcherServlet 유일한 서블릿 클래스로서 모든 클라이언트의 요청을 가장 먼저 처리하는 Front Controller HandlerMapping 클라이언트의 요청을 처리할 Controller 매핑 Controller 실질적인 클라이언트의 요청 처리 ViewResolver Controller가 리턴한 View 이름으로 실행될 JSP 경로 완성 2. Controller 인터페이스 작성- 구체적인 컨트롤러 구현에 앞서 모든 컨트롤러를 같은 타입으로 관리하기 위한 인터페이스를 만든다.1..
MVC 아키텍처에서 각 요소의 기능과 개발 주체 기능 구성요소 개발 주체 Model VO, DAO 클래스 자바 개발자 View JSP 페이지 웹 디자이너 Controller Servlet 클래스 자바 개발자 또는 MVC 프레임워크 - 지금은 컨트롤러에대한 이해를 위해 프레임워크에서 제공하는 컨트롤러보다는 컨트롤러의 기능 이해에 중점을 둔다. 1. 컨트롤러 구현1-1 컨트롤러 파일 생성1) src/main/java 폴더 위에서 마우스 우클릭2) new > servlet3) java package : com.springbook.view.controller / class name : DispatcherServlet 입력 후 Next4) name : action 입력5) /action 더블 클릭 후 *.do 입..
- model1과 model2에 대한 설명은 jsp 게시판 참고- 자바에서 Bean이라는 용어는 객체를 의미하므로 JavaBean하면 자바 객체를 의미한다. JavaBeans는 디비 연동에 사용되는 자바 객체들이다.- VO, DAO 클래스가 Model 기능의 자바 객체다. - jsp파일은 src/main/webapp에 생성한다. 1. 로그인 기능 구현- 프로젝트를 서버로 구동 시 url은 http://localhost:8080/biz/login.jsp로 설정되는데 서버 설정 modules탭에서 path를 BoardWeb로 변경해준다.- 로그인 결과에 따라 화면 내비게이션을 리다이렉트 방식으로 사용한다. 1-1. 포워드(forward)와 리다이렉트(redirect) 차이포워드 방식- RequestDispa..
스프링과 비교되는 EJB는 모든 비즈니스 메소드에 대한 트랜잭션 관리를 EJB 컨테이너가 자동으로 처리해준다. 스프링에서도 EJB와 마찬가지로 트랜잭션 처리를 컨테이너가 자동으로 처리하도록 설정할 수 있는데, 이를 선언적 트랜잭션 처리라고 한다. 1. 트랜잭션 네임스페이스 등록- applicationContext.xml의 namespace탭에서 tx를 선택한다. 2. 트랜잭션 관리자 등록- 어떤 기술을 이용하여 데이터베이스 연동을 처리했느냐에 따라 트랜잭션 관리자가 달라진다.- 모든 트랜잭션 관리자는 PlatformTransactionManager 인터페이스를 구현한 클래스들이다.123456public interface PlatformTransactionManager { TransactionStatus ..
- Total
- Today
- Yesterday
- 어노테이션
- blocking
- 검색
- #java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent삭제
- aop
- 컨트롤러
- handlermapping
- NoClassDefFoundError
- Controller
- SqlSessionFactoryBean
- application context
- exclude-mapping
- servlet context
- java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
- setter 인젝션
- 스프링 컨테이너
- postHandler
- aspect oriented programming
- multiple SLF4J bindings
- preHandler
- 의존성
- LoggingEvent
- XmlWebApplicationContext
- Class path contains multiple SLF4J bindings
- afterCompletion
- @Autowired
- JoinPoint
- ViewResolver
- 의존성 주입
- 횡단 관심
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |