pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/config/WebFilterConfiguration.java
@@ -1,31 +1,44 @@
package com.dy.pipIrrDemo.config;
import com.dy.common.webFilter.DevOfDataSourceNameSetFilter;
import com.dy.common.webFilter.UserTokenFilter;
import jakarta.servlet.Filter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@SuppressWarnings("unchecked")//不加此注解,编译时警告:“使用了未经检查或不安全的操作。”
public class WebFilterConfiguration {
    private static final int orger_demoSetDataSourceFilter = 1 ;
    @Value("${pipIrr.global.dev}")
    public String isDevStage ;//是否为开发阶段
    @Value("${pipIrr.global.dsName}")
    public String dsName ;//开发阶段的数据源名称
    /**
     * DevOfDataSourceNameSetFilter与UserTokenFilter只能一个被配置上,
     * 所以他们的order都是1
     */
    private static final int order_UserTokenFilter = 1 ;//与下面
    private static final int order_DevOfDataSourceNameSetFilter = 1 ;
    @Bean
    public DemoSetDataSourceFilter getDemoSetDataSourceFilter(){
        return new DemoSetDataSourceFilter() ;
    }
    @Bean
    public FilterRegistrationBean<? extends Filter> reqDemoSetDataSourceFilter(DemoSetDataSourceFilter filter) {
        FilterRegistrationBean<DemoSetDataSourceFilter> filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(filter);
        filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则
        filterRegistrationBean.addInitParameter("name","I am DemoSetDataSourceFilter");//设置init参数
        filterRegistrationBean.setName("demoSetDataSourceFilter");//设置过滤器名称
        filterRegistrationBean.setOrder(orger_demoSetDataSourceFilter);//执行次序
    public FilterRegistrationBean<? extends Filter> RegFilter() {
        FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>();
        if(this.isDevStage != null && !this.isDevStage.trim().equals("") && this.isDevStage.trim().equalsIgnoreCase("true")){
            filterRegistrationBean.setFilter(new DevOfDataSourceNameSetFilter());
            filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则
            filterRegistrationBean.addInitParameter("dataSourceName",dsName);//设置init参数
            filterRegistrationBean.setName("DevOfDataSourceNameSetFilter");//设置过滤器名称
            filterRegistrationBean.setOrder(order_DevOfDataSourceNameSetFilter);//执行次序
        }else{
            filterRegistrationBean.setFilter(new UserTokenFilter());
            filterRegistrationBean.addUrlPatterns("/*");//配置过滤规则
            filterRegistrationBean.setName("UserTokenFilter");//设置过滤器名称
            filterRegistrationBean.setOrder(order_UserTokenFilter);//执行次序
        }
        return filterRegistrationBean;
    }