spring boot filter實現
阿新 • • 發佈:2017-12-28
spring boot filter實現spring boot filter實現
1.註解方式直接配置
@Component @ServletComponentScan @WebFilter(urlPatterns = "/*",filterName = "loginFilter") public class LoginFilter implements Filter{ }
1、@Component 這個註解的目的是將LoginFilter交給容器來處理。也就是讓LoginFilter起作用
2、@ServletComponentScan 這個使用來掃描@WebFilter 的讓@WebFilter起作用。當然對於servlet線管註解也是可以的。
這個@ServletComponentScan最好寫在Apllication這個上面,通用配置。
我這裏因為只有一個Filter所以沒有寫在Application上面。
3、@WebFilter 這個用處顯而易見,針對於什麽鏈接做過濾,filter的名稱是為什麽。
2.@Bean形式配置
直接繼承Filter
public class LoginFilter implements Filter{ }
或繼承GenericFilterBean
public class LoginFilter extends GenericFilterBean{ }
@SpringBootApplication public class SpringRestApplication { public static void main(String[] args) { SpringApplication.run(SpringRestApplication.class, args); } @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); HTTPBasicAuthorizeAttribute httpBasicFilter = new HTTPBasicAuthorizeAttribute(); registrationBean.setFilter(httpBasicFilter); List<String> urlPatterns = new ArrayList<String>(); urlPatterns.add("/user/*"); registrationBean.setUrlPatterns(urlPatterns); return registrationBean; } }
spring boot filter實現