Web Programming/Spring

10. Spring 로그인 만들기를 통한 기능 엿보기

유가엘 2020. 4. 9. 19:34

lesson06_Spring_Login.zip
0.04MB

인터셉터란?

컨트롤러에 들어오는 요청 과 응답을 가로채는 역할을 합니다.

Filter와 비슷한 역활을 하지만 약간의 차이가 존재합니다. 

가장 큰 특징으로는 호출되는 시점 차이로 Filter는 DispatcherServlet이 실행되기 전 , Interceptor는 DispatcherServlet이 실행된 후에 작동 합니다.

 

1. 인터셉터의 선언

DispatcherServlet 역활을 하는 servlet-context.xml 에서 인터셉터를 선언합니다.

2. 인터셉터의 생성

인터셉터는 HandlerInterceptorAdapter 를 상속받아 생성합니다.

인터셉터 안에는 preHandle , postHandle , afterCompletion 이 있으며 각각 다른 기능을 합니다.

preHandle : Controller 작동 전에 해당 메서드를 실행합니다.

postHandle : Controller 작동 후 해당 메서드를 실행 합니다.

afterCompletion : Controller 와 View 까지 모두 작동한 후 실행 됩니다.

 


3. JdbcTemplate의 사용

기존에는 Connection, ResultSet, PreparedStatement 를 생성 후, 삭제를 진행하였으나, 스프링에서 제공하는 JdbcTemplate를 통하여 단순화 할 수 있습니다.

MemberDAO 가 생성될 때, JdbcTemplate를 생성하여 사용합니다.

4. JdbcTemplate을 통한 Insert, Delete , Update 의 사용

템플릿의 update 를 통해 생성하며 쿼리가 성공되면 1 실패하면 0을 반환 합니다.

5. JdbcTemplate을 통한 Select 의 사용

기존에는 Select 쿼리를 실행 후 ResultSet 에 담겨서 반환하였으나, Template 는 RowMapper 안에서 반환해 줍니다.


6. ConnectionPool의 생성

데이터베이스와 연결을 할때, 계속해서 생성과 소멸을 반복하여 메모리를 낭비하게 됩니다.

이를 해결하기 위해 미리 데이터베이스 정보를 담아두고 호출하는 방식을 커넥션 풀이라고 합니다.

다양한 라이브러리가 존재하지만, Apache의 라이브러리를 pom.xml 에 넣어 줍니다.

7. Servlet-Context.xml 안의 Bean 생성

데이터 베이스의 정보를 Bean 객체 안에 담아 줍니다.

8. DAO 에서 @Autowired를 통하여 호출하여 사용할 수 있습니다.

DAO 생성자가 호출될 시, JdbcTemplate 를 생성하여 안에 Datasource 를 담아 줍니다.