• springboot启动时过滤不需要注入的类


    在springbootApplication启动类上加入注解

    @ComponentScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = XX.class))

     

    public @interface ComponentScan {
        .....................
        /**
         * Specifies which types are not eligible for component scanning.
         * @see #resourcePattern
         */
        Filter[] excludeFilters() default {};
    
        .........................
        /**
         * Declares the type filter to be used as an {@linkplain ComponentScan#includeFilters
         * include filter} or {@linkplain ComponentScan#excludeFilters exclude filter}.
         */
        @Retention(RetentionPolicy.RUNTIME)
        @Target({})
        @interface Filter {
    
            /**
             * The type of filter to use.
             * <p>Default is {@link FilterType#ANNOTATION}.
             * @see #classes
             * @see #pattern
             */
            FilterType type() default FilterType.ANNOTATION;
            ...........................
        }
    }

    其中@ComponentScan 注解属性excludeFilters可以过滤多个类型的类的加载,其中有内部类,可以指定过滤的类型,上面是指定class文件进行过滤,也可以指定其他类型的

    public enum FilterType {
    
        /**
         * Filter candidates marked with a given annotation.
         * @see org.springframework.core.type.filter.AnnotationTypeFilter
         */
        ANNOTATION,
    
        /**
         * Filter candidates assignable to a given type.
         * @see org.springframework.core.type.filter.AssignableTypeFilter
         */
        ASSIGNABLE_TYPE,
    
        /**
         * Filter candidates matching a given AspectJ type pattern expression.
         * @see org.springframework.core.type.filter.AspectJTypeFilter
         */
        ASPECTJ,
    
        /**
         * Filter candidates matching a given regex pattern.
         * @see org.springframework.core.type.filter.RegexPatternTypeFilter
         */
        REGEX,
    
        /** Filter candidates using a given custom
         * {@link org.springframework.core.type.filter.TypeFilter} implementation.
         */
        CUSTOM
    
    }
  • 相关阅读:
    linux系统性能监控常用命令
    如何在windows的DOS窗口中正常显示中文(UTF-8字符)
    在Windows的CMD中如何设置支持UTF8编码?
    设置cmd的codepage的方法
    Oracle字符集转换
    移动端跨平台开发的深度解析
    类型擦除是抽象泛型的实例化的过程
    FP又称为Monadic Programming
    深入剖析Swift性能优化
    真实世界中的 Swift 性能优化
  • 原文地址:https://www.cnblogs.com/lantuanqing/p/10197338.html
Copyright © 2020-2023  润新知