로그인(세션) 체크, 권한 체크, XSS(Cross site script) 방어, pc/모바일 분기처리, 로그, 페이지 인코딩 변환 등공통업무로 모든 페이지마다 작성해야할 코드가 있다.이런 중복되는 코드들을 자동으로 처리할 수 있는 방법엔 filter, interceptor, aop가 있다. (그림필요)- interceptor와 filter는 servlet 단위에서 실행되고 aop는 메소드 앞의 proxy패턴 형태로 실행된다.- 실행 순서는 filter > interceptor > aop > interceptor > filter 순으로 거치게 된다. 1. filter 요청과 응답을 거른 뒤 정제하는 역할을 한다.서블릿 필터는 DispatcherServlet 이전에 실행이 되는데 필터가 동작하도록 지정된 ..
지금까지 Spring MVC를 기반으로 개발한 게시판 프로그램의 구조와 실행 순서는브라우저에서 버튼이나 하이퍼 링크를 클릭하여 서버에 요청을 전송하면모든 요청을 서블릿 컨테이너가 생성한 DispatcherServlet이 받는다.그리고 DispatcherServlet은 스프링 컨테이너가 생성한 Controller에게 요청을 전달하고,Controller는 매개변수를 통해 전달된 DAO 객체를 이용하여 사용자가 요청한 로직을 처리한다. 지금 실습에서는 Controller가 DAO 객체를 직접 이용했지만 이 방식은 옳지 않고 비즈니스 컴포넌트를 이용해야 한다. 1 비즈니스 컴포넌트 사용- Spring IoC를 학습하면서 만들었던 비즈니스 컴포넌트는 VO 클래스, DAO 클래스, Service 인터페이스, Ser..
1. 조인포인트(Joinpoint)- 클라이언트가 호출하는 모든 비즈니스 메소드 (예: BoardServiceImpl, UserServiceImpl)- 조인포인트 중에서 포인트컷이 선택되기 때문에 포인트컷 대상, 포인트컷 후보라고도 함 2. 포인트컷(Pointcut)- 필터링된 조인포인트- 트랜잭션의 경우 횡단 관심은 등록, 수정, 삭제 기능의 비즈니스 메소드에 대해서는 당연히 동작해야 하지만, 검색 기능의 메소드에 대해서는 트랜잭션과 무관하므로 동작할 필요가 없다. 이렇게 수많은 비즈니스 메소드 중에서 특정 메소드에서만 횡단 관심에 해당하는 공통 기능을 수행하는 것이다. 123456789101112 Colored by Color Scriptercs- getPointcut으로 설정한 푕트컷 메소드가 호출..
비즈니스 컴포넌트 개발에서 가장 중요한 두 가지 원칙- 낮은 결합도 유지- 높은 응집도 유지 의존성 주입(Dependency Injection)을 이용하면 비즈니스 컴포넌트를 구성하는 객체들의 결합도를 떨어뜨릴 수 있어 의존관계를 쉽게 변경할 수 있다. 스프링의 IoC가 결합도와 관련된 기능이라면, AOP(Aspect Oriented Programming)는 응집도와 관련된 기능이다. 횡단 관심(Crosscutting Concerns)- 비즈니스 로직은 아니지만 로깅, 예외, 트랜잭션 처리 같이 메소드마다 공통으로 등장하는 코드 - 공통으로 관리가 되지 않을 시 비즈니스 메소드의 복잡도가 증가하고 유지보수가 어려워 진다. 핵심 관심(Core Concerns) - 사용자의 요청에 따라 실제로 수행되는 핵심..
프레임워크: 사전적 의미는 뼈대 혹은 틀로서 이 의미를 소프트웨어 관점에서 접근하면 아키텍처에 해당하는 골격 코드다. 장점- 빠른 구현 시간: 아키텍처에 해당하는 골격 코드를 프레임워크에서 제공하기 때문에 비즈니스 로직만 구현하면 되므로 제한된 시간에 많은 기능을 구현할 수 있다.- 쉬운 관리: 같은 프레임워크가 적용된 애플리케이션들은 아키텍처가 같으므로 관리가 쉽다.- 검증된 아키텍처의 재사용과 일관성 유지: 개발 시 아키텍처에 관한 별다른 검증없이 사용 가능하고 유지보수 과정에서 아키텍처가 왜곡되거나 변형되지 않는다. 스프링 프레임워크 탄생 배경- 이전에는 EJB(Enterprise Java Beans)로 개발되었으나 학습에 많은 시간이 필요하고 개발 및 유지보수도 복잡했다.- EJB를 제대로 사용하..
- Total
- Today
- Yesterday
- #java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent삭제
- 의존성
- SqlSessionFactoryBean
- @Autowired
- 어노테이션
- XmlWebApplicationContext
- handlermapping
- blocking
- preHandler
- java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
- 의존성 주입
- postHandler
- 컨트롤러
- 스프링 컨테이너
- setter 인젝션
- NoClassDefFoundError
- Controller
- 검색
- servlet context
- Class path contains multiple SLF4J bindings
- aspect oriented programming
- multiple SLF4J bindings
- application context
- LoggingEvent
- JoinPoint
- exclude-mapping
- 횡단 관심
- aop
- afterCompletion
- 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 |