Spring Bean을 Injection하여 Servlet Filter를 활용한 사용자 접근 통계 예제.
1. Service Class
Filter Class에 Injection할 Service Bean.
2. Filter Class
component-scan으로 자동 등록된 Bean은 Injection이 안되는 것 같음? 아래 Spring Bean 설정에서 Bean을 선언 하여 사용.
3. Spring Bean 설정
4. web.xml 설정
스프링에서 제공하는 DelegatingFilterProxy를 사용하여 설정, 위 Spring Bean 설정에서 선언된 Filter Bean의 id와 filter-name을 같게 설정.
1. Service Class
Filter Class에 Injection할 Service Bean.
public class LogServiceImpl implements LogService {@Autowiredprivate LogDao logDao;public void insertLog(LogBean log) {logDao.insertLog(log);}[...]}
2. Filter Class
component-scan으로 자동 등록된 Bean은 Injection이 안되는 것 같음? 아래 Spring Bean 설정에서 Bean을 선언 하여 사용.
public class AccessLogFilter implements Filter {@Autowiredprivate LogService logService;public void init(FilterConfig filterConfig) throws ServletException {}public void doFilter(ServletRequest sReq, ServletResponse sRes, FilterChain chain) throws IOException, ServletException {[...]chain.doFilter(sReq, sRes);logService.insertLog(log);}
public void destroy() {}}
3. Spring Bean 설정
<!-- Service Bean -->
<bean id="logService" class="com.rurony.format.access.service.LogServiceImpl" />
<!-- Filter Bean --><bean id="accessLogFilter" class="com.rurony.format.filter.AccessLogFilter" />
4. web.xml 설정
스프링에서 제공하는 DelegatingFilterProxy를 사용하여 설정, 위 Spring Bean 설정에서 선언된 Filter Bean의 id와 filter-name을 같게 설정.
<filter><filter-name>accessLogFilter</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class></filter><filter-mapping><filter-name>accessLogFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
'Develop > SERVER SIDE' 카테고리의 다른 글
Dbunit + MySql 사용 시 경고 메시지 해결 (0) | 2011.12.26 |
---|---|
Spring quartz(Scheduler) 사용 (0) | 2011.12.09 |
MSSQL 트랜잭션 로그 파일 초기화 (0) | 2011.12.08 |
Nexus : Maven 사내 저장소 활용 (0) | 2011.10.17 |
Mac Subversion+apache 사용하기 (0) | 2011.10.06 |
Recent Comment