栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring中@ComponentScan扫描包及详细

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring中@ComponentScan扫描包及详细

1. value:指定要扫描的包。

2.excludeFilters = Filter[] :指定扫描的时候按照什么规则排除那些组件。

3.includeFilters = Filter[] :指定扫描的时候只需要包含哪些组件(但是我们要将useDefaultFilters设置为flase)。

其中的Filter[]的定义规则为:

1.FilterType.ANNOTATION:按照注解:例如:Controller.class

2.FilterType.ASSIGNABLE_TYPE:按照给定的类型;例如:BookService.class

3.FilterType.ASPECTJ:使用ASPECTJ表达式

4.FilterType.REGEX:使用正则指定

5.FilterType.CUSTOM:使用自定义规则:

@Filter(type=FilterType.CUSTOM,classes={MyTypeFilter.class})

代码如下所示:

package com.atguigu.config;

import java.io.IOException;

import org.springframework.core.io.Resource;
import org.springframework.core.type.Annotationmetadata;
import org.springframework.core.type.Classmetadata;
import org.springframework.core.type.classreading.metadataReader;
import org.springframework.core.type.classreading.metadataReaderFactory;
import org.springframework.core.type.filter.TypeFilter;

public class MyTypeFilter implements TypeFilter {

	
	@Override
	public boolean match(metadataReader metadataReader, metadataReaderFactory metadataReaderFactory)
			throws IOException {
		// TODO Auto-generated method stub
		//获取当前类注解的信息
		Annotationmetadata annotationmetadata = metadataReader.getAnnotationmetadata();
		//获取当前正在扫描的类的类信息
		Classmetadata classmetadata = metadataReader.getClassmetadata();
		//获取当前类资源(类的路径)
		Resource resource = metadataReader.getResource();
		
		String className = classmetadata.getClassName();
		System.out.println("--->"+className);
        // 这里的意思是类命包含(“er”)的都是可以被扫描进去的
		if(className.contains("er")){
			return true;//有效
		}
		return false;// 无效
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号