Spring Framework กับ Interceptor
บทความเกี่ยวกับ : Spring Framework กับ Interceptor
ตัวอย่างการใช้งาน Interceptor ของ Spring Framework เอาไว้ดักการทำงานก่อนเข้า
Controller ครับผมประมาณว่า ก่อนจะทำงานทุกครั้งจะต้องวิ่งเข้ามาที่ Interceptor ก่อนนั่นเอง
Interceptor Class
package com.en.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class ExampleInterceptor extends MasterInterceptor{
private static Logger logger = Logger.getLogger(ExampleInterceptor.class);
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//request.getRequestDispatcher(errorURL).forward(request, response);
//return false;
logger.info("Interceptor running");
return true;
}
}
Spring Configuration ง่ายๆ ตามด้านล่างเลย
เหมือน Config Bean ทั่วไปนั่นแหละ
<bean id="exampleInterceptor" class="com.en.interceptor.ExampleInterceptor" />
ถ้าต้องการใช้งาน Interceptor ก็แค่ใส่เข้าไปใน URL Mapping ใส่ได้หลาย Interceptor เลยนะครับ
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref local="exampleInterceptor"/>
</list> </property>
<property name="mappings">
<props>
<prop key="/example_insert.html">exampleController</prop>
<prop key="/example_load.html">exampleController</prop>
<prop key="/example_delete.html">exampleController</prop>
<prop key="/example_ws.html">exampleController</prop>
<prop key="/example_sap.html">exampleController</prop>
</props>
</property>
</bean>
ตัวอย่างการใช้งาน Interceptor ของ Spring Framework เอาไว้ดักการทำงานก่อนเข้า
Controller ครับผมประมาณว่า ก่อนจะทำงานทุกครั้งจะต้องวิ่งเข้ามาที่ Interceptor ก่อนนั่นเอง
Interceptor Class
package com.en.interceptor;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.en.model.MasterModel;
public class MasterInterceptor extends HandlerInterceptorAdapter{
private String errorURL;
private MasterModel model;
public String getErrorURL() {
return errorURL;
}
public void setErrorURL(String errorURL) {
this.errorURL = errorURL;
}
public MasterModel getModel() {
return model;
}
public void setModel(MasterModel model) {
this.model = model;
}
}
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.en.model.MasterModel;
public class MasterInterceptor extends HandlerInterceptorAdapter{
private String errorURL;
private MasterModel model;
public String getErrorURL() {
return errorURL;
}
public void setErrorURL(String errorURL) {
this.errorURL = errorURL;
}
public MasterModel getModel() {
return model;
}
public void setModel(MasterModel model) {
this.model = model;
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class ExampleInterceptor extends MasterInterceptor{
private static Logger logger = Logger.getLogger(ExampleInterceptor.class);
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//request.getRequestDispatcher(errorURL).forward(request, response);
//return false;
logger.info("Interceptor running");
return true;
}
}
Spring Configuration ง่ายๆ ตามด้านล่างเลย
เหมือน Config Bean ทั่วไปนั่นแหละ
<bean id="exampleInterceptor" class="com.en.interceptor.ExampleInterceptor" />
ถ้าต้องการใช้งาน Interceptor ก็แค่ใส่เข้าไปใน URL Mapping ใส่ได้หลาย Interceptor เลยนะครับ
<property name="interceptors">
<list>
<ref local="exampleInterceptor"/>
</list> </property>
<property name="mappings">
<props>
<prop key="/example_insert.html">exampleController</prop>
<prop key="/example_load.html">exampleController</prop>
<prop key="/example_delete.html">exampleController</prop>
<prop key="/example_ws.html">exampleController</prop>
<prop key="/example_sap.html">exampleController</prop>
</props>
</property>
</bean>
ความคิดเห็น
แสดงความคิดเห็น