Spring 注解使用笔记(一)
代码库位置:
https://gitee.com/sleeber/nuts.spring.sample
https://github.com/HazelNutsWorkGroup/nuts.spring.sample.git
实验步骤:步骤一
加载Spring Java配置文件
//Java配置文件加载
ApplicationContext context = new AnnotationConfigApplicationContext(ModelConfig.class);
Bean 定义
@Configuration
public class ModelConfig {
@Bean("person")
public Person getPerson() {
return new Person();
}
}
提示: 对应测试方法 testGetPersonBean
步骤二 包扫描路径
@Configuration
@ComponentScan("nuts.spring.annotation")
public class ModelConfig {
@Bean("person")
public Person getPerson() {
return new Person();
}
}
提示: 对应测试方法 testGetBeanNames
步骤三 excludeFilters
@Configuration
@ComponentScan(value = "nuts.spring.annotation", excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Controller.class, Configuration.class})
})
public class ExcludeConfiguration {
}
提示: 对应测试方法 testExcludeBeanNames
步骤四 includeFilters
@Configuration
@ComponentScan(value = "nuts.spring.annotation", includeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = {Service.class})
}, useDefaultFilters = false)
public class IncludeConfiguration {
}
提示: 对应测试方法 testIncludeBeanNames
步骤五 自定义Filter类型
@Configuration
@ComponentScan(value = "nuts.spring.annotation", includeFilters = {
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = {
CustomerFilter.class
})
})
public class CustomerConfiguration {
}
提示: 对应测试方法 testIncludeBeanNames
步骤六 Scope 指定单实例/多实例
@Scope("prototype")
@Bean
public Person person() {
System.out.println("Instance person...");
return new Person();
}
提示: 对应测试方法 testInstanceScope
步骤七 Lazy 懒加载
@Lazy
@Bean
public Person person() {
System.out.println("Instance person...");
return new Person();
}
提示: 对应测试方法 testInstanceLazy
步骤八 Conditional 按条件加载
@Conditional(WindowsCondition.class)
@Bean("windows")
public Person getWindows() {
System.out.println("Instance Windows...");
return new Person();
}
@Conditional(LinuxCondition.class)
@Bean("linux")
public Person getLinux() {
System.out.println("Instance Linux...");
return new Person();
}
提示: 对应测试方法 testConditional
步骤九 Import 快速引入第三方组件
@Configuration
@Import(Group.class)
public class ImportConfiguration {
@Bean
public Person person() {
System.out.println("Instance person...");
return new Person();
}
}
提示: 对应测试方法 testImportBean
步骤十 ImportSelector 方式引入第三方组件
@Configuration
@Import({Group.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class})
public class ImportConfiguration { }
public class MyImportSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
return new String[]{"nuts.spring.annotation.model.Classic"};
}
}
提示: 对应测试方法 testImportBean
注意事项
框架、组件注意事项@Configuration配置类为了防止相关影响,建议只开启测试对应的配置类「框架、组件」「框架、组件」的引入/配置的注意事项。提示:列出项目开发中引入其他框架或技术需要特别关注或配置的事项。
网址:Spring 注解使用笔记(一) https://www.yuejiaxmz.com/news/view/3254
相关内容
【开题报告】基于SpringBoot的美食制作学习网站的设计设计与实现碎片时代生存法 “印象笔记”整理精致生活
精明人的省钱生活妙招,把握细节攒一笔!
数码家电单笔立省 2000 元:浙江补贴全国领用活动开启,各地攻略一文看全
电器使用的注意事项
用收纳整理来促进自己的理财进程,这是我的《心动整理》读书笔记和一点感悟
使用家电需要注意什么
家用电器使用注意事项
如何正确使用家电,使用家电有哪些注意事项
家用电器使用注意事项有哪些