Skip to content

Commit c64952a

Browse files
committed
SpringBoot学习
1 parent 2c88415 commit c64952a

4 files changed

Lines changed: 16 additions & 46 deletions

File tree

springboot/src/main/java/com/tuacy/study/springboot/hook/importBeanDefinitionRegistrar/beanioc/BeanIocClassPathBeanDefinitionScanner.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

springboot/src/main/java/com/tuacy/study/springboot/hook/importBeanDefinitionRegistrar/beanioc/BeanIocScannerRegister.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
44
import org.springframework.context.ResourceLoaderAware;
5+
import org.springframework.context.annotation.ClassPathBeanDefinitionScanner;
56
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
67
import org.springframework.core.annotation.AnnotationAttributes;
78
import org.springframework.core.io.ResourceLoader;
89
import org.springframework.core.type.AnnotationMetadata;
10+
import org.springframework.core.type.filter.AnnotationTypeFilter;
911

1012
/**
1113
* @name: RunStartScannerRegister
@@ -28,10 +30,10 @@ public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanD
2830
}
2931
// 搜索路径
3032
String[] basePackages = (String[]) annoAttrs.get(PACKAGE_NAME_KEY);
31-
BeanIocClassPathBeanDefinitionScanner scanner = new BeanIocClassPathBeanDefinitionScanner(beanDefinitionRegistry, false);
33+
ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(beanDefinitionRegistry, false);
3234
scanner.setResourceLoader(resourceLoader);
33-
scanner.registerFilters();
34-
scanner.doScan(basePackages);
35+
scanner.addIncludeFilter(new AnnotationTypeFilter(BeanIoc.class));
36+
scanner.scan(basePackages);
3537
}
3638

3739
@Override
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.tuacy.study.springboot.hook.importSelector.abc;
2+
3+
import com.tuacy.study.springboot.hook.importSelector.HelloService;
4+
5+
public class HelloServiceC implements HelloService {
6+
@Override
7+
public void doSomething() {
8+
System.out.println("Hello A");
9+
}
10+
}
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
自定义BeanIoc注解实现@Component类似的功能,添加了@BeanIoc的类会添加到Spring IOC容器里面去
2-
3-
---
4-
5-
BeanIocScan注解:用于指定在哪些包里面搜索CustomerComponent注解注解。
6-
BeanIoc注解:添加了该注解的类会被添加到Spring IOC容器里面去。
7-
BeanIocClassPathBeanDefinitionScanner:指定搜索逻辑,搜索CustomerComponent注解,并且添加到IOC容器里面去。
1+
把实现了HelloService接口的类添加到容器里面去。

0 commit comments

Comments
 (0)