Search Results for '개발노트/Spring'

33 POSTS

  1. 2010.09.08 Cron Expression 예제
  2. 2010.08.26 Spring AOP를 이용한 로그인 체크
  3. 2010.06.10 [링크]Spring - Interceptor 를 사용한 login 처리

Cron Expression 예제

Posted 2010. 9. 8. 17:03
로그용 테이블이 너무 커져 매달1일0시가 되면 로그테이블명을 자동으로 변경할 일이 생겼다.
매달 1일0시1초가되면 해당 배치가 실행되게끔 하였다. 관련 표현법을 찾아봤다.

Expression Meaning
0 0 12 * * ? Fire at 12pm (noon) every day
0 15 10 ? * * Fire at 10:15am every day
0 15 10 * * ? Fire at 10:15am every day
0 15 10 * * ? * Fire at 10:15am every day
0 15 10 * * ? 2005 Fire at 10:15am every day during the year 2005
0 * 14 * * ? Fire every minute starting at 2pm and ending at 2:59pm, every day
0 0/5 14 * * ? Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day
0 0/5 14,18 * * ? Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day
0 0-5 14 * * ? Fire every minute starting at 2pm and ending at 2:05pm, every day
0 10,44 14 ? 3 WED Fire at 2:10pm and at 2:44pm every Wednesday in the month of March.
0 15 10 ? * MON-FRI Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday
0 15 10 15 * ? Fire at 10:15am on the 15th day of every month
0 15 10 L * ? Fire at 10:15am on the last day of every month
0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
0 15 10 ? * 6L Fire at 10:15am on the last Friday of every month
0 15 10 ? * 6L 2002-2005 Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005
0 15 10 ? * 6#3 Fire at 10:15am on the third Friday of every month
0 0 12 1/5 * ? Fire at 12pm (noon) every 5 days every month, starting on the first day of the month.
0 11 11 11 11 ? Fire every November 11th at 11:11am.
Info Pay attention to the effects of '?' and '*' in the day-of-week and day-of-month fields


출처 : http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html


Spring AOP를 이용한 로그인 체크

Posted 2010. 8. 26. 17:12
Spring 의 AOP기능을 이용한 로그인 체크 관련 팁을 찾아보면 대부분 HandlerInterceptorAdapter를 사용하라고 나온다.
preHandle에서 session을 체크하고 없으면 throws Exception 하던지 response.sendRedirect 시켜서 이동하는 식이다.

하지만 이방법은 xml설정에서 몇몇 메소드나 클래스에만 적용하려는 것에 해당된다.
annotation을 사용하여 controller 전체를 scan하는 시스템에서는 login화면이나 login submit 조차도 이 HandlerInterceptorAdapter에서 걸러지기 때문에 사용할수가 없다.(적어도 많은 고민을 해 보았지만 해답이 없었다.)
특히 인트라넷 같은 경우 로그인 화면 이외는 모두 로그인을 해야  접속이 가능한 경우라서 이런 경우 더더욱 그렇다.

본인의 경우에는 InterceptorAdapter를 사용하기 보단 @Aspect를 이용한 Proxy를 사용함으로써 일단 해결했다.


@Before("execution(* *com..*Controller.*(..))")
 public void joinPoint() throws Throwable
{
}

위와 같이 joinPoint의 Before에 모든 Controller를 체크하도록 한 뒤에 로그인 관련 Controller만 이름을 달리해서 사용하도록 하였다.
패키지로 따로 빼놓은뒤 구분하는 방법도 있었으나 그러기엔 고쳐야 할 부분이 너무 많아 일단 이렇게 처리.

테스트 후 잘 돌아가긴 하는데, 조금더 심도 있게 연구해 봐야 할듯 싶다.
annotation을 사용하는 3.0에서 HandlerInterceptorAdapter 를 이용한 로그인 체크가 어떻게 이루어 지는지도...




Spring HandlerInterceptorAdapter를 상속받아 preHandle을 구현하여 Login처리를 한다.

http://blog.naver.com/park_yun_ho?Redirect=Log&logNo=150087194547


« PREV : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ··· : 11 : NEXT »