Spring 注解使用笔记(一)

发布时间:2024-11-03 22:14

代码库位置:

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 元:浙江补贴全国领用活动开启,各地攻略一文看全
电器使用的注意事项
用收纳整理来促进自己的理财进程,这是我的《心动整理》读书笔记和一点感悟
使用家电需要注意什么
家用电器使用注意事项
如何正确使用家电,使用家电有哪些注意事项
家用电器使用注意事项有哪些

随便看看