疑惑
学java也有一段时间,写过很多demo,做过一点小的项目,但大都没有自己的思想,
依样画葫芦!
可是最近想看看源码,尝试着自己去写,可总是无法提笔!
比如:刚刚在看spring的注解@CompanScan,点进去看源码
public @interface ComponentScan {
@AliasFor("basePackages")
String[] value() default {};
@AliasFor("value")
String[] basePackages() default {};
Class<?>[] basePackageClasses() default {};
Class<? extends BeanNameGenerator> nameGenerator()
defaultBeanNameGenerator.class;
Class<? extends ScopeMetadataResolver> scopeResolver() default
AnnotationScopeMetadataResolver.class;
ScopedProxyMode scopedProxy() default ScopedProxyMode.DEFAULT;
String resourcePattern() default
ClassPathScanningCandidateComponentProvider.
DEFAULT_RESOURCE_PATTERN;
boolean useDefaultFilters() default true;
Filter[] includeFilters() default {};
Filter[] excludeFilters() default {};
boolean lazyInit() default false;
@Retention(RetentionPolicy.RUNTIME)
@Target({})
@interface Filter {
FilterType type() default FilterType.ANNOTATION;
@AliasFor("classes")
Class<?>[] value() default {};
@AliasFor("value")
Class<?>[] classes() default {};
String[] pattern() default {};
}
我始终不知道@ComponentScan的参数该怎么写
Filter[] includeFilters() default {};这是这个注解里面的一个属性,是个Filter[]类型的数组,点进去发现:@interface Filter还是一个接口,所以 接口数组类型includeFilters 应该怎么写,另外default用来修饰方法使得,接口方法可以写默认方法体。完全看不懂啊,百度也只是告诉怎么用,换个例子 又不会了
到底什么时候用(),什么时候用{}呢?好多疑惑,先去百度