SpringBoot啓動配置類(一)【@Configuration和@Bean用法】

以前使用springmvc框架的時候,需要在xml裏配置bean,如數據庫連接池、事務等。現在採用springboot則告別了那些配置,只需要靈活的加上一些註解即可。總之,不管採用何種配置,最終的目的都是爲了讓配置的內容被spring容器管理起來。

Filter的配置

1.新建一個類繼承Filter,並實現它的方法。

public class LogFilter implements Filter {

    private Logger logger= LoggerFactory.getLogger(LogFilter.class);

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        logger.info("請求到來...");
        chain.doFilter(request,response);
    }

    @Override
    public void destroy() {

    }
}

2.怎麼讓這個Filter產生效果呢?以前springmvc的做法是在web.xml文件裏配置的,而springboot的做法如下。

@Configuration
public class FilterBeanConfig {

    /**
     * 1. 構造filter
     * 2. 配置攔截器urlPattern
     * 3. 利用FilterRegistrationBean進行包裝
     * @return
     */
    @Bean
    public FilterRegistrationBean logFilter(){
        FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new LogFilter());
        List<String> urlList=new ArrayList<>();
        urlList.add("*");
        filterRegistrationBean.setUrlPatterns(urlList);
        return filterRegistrationBean;
    }
}

註解@Configuration表明該類是個配置類,需要被spring加載到。@Bean表明實例化了一個FilterRegistrationBean,並且bean的id是logFilter。然後LogFilter作爲一個屬性注入到該bean中。類似以下寫法:

<beans>
	<bean id="logFilter" class="org.springframework.boot.web.servlet.FilterRegistrationBean"/>
</beans>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章