不启动服务加载spring配置文件进行测试

本文介绍了一种不依赖Web服务器的手动加载Spring配置文件的方法,通过FileSystemXmlApplicationContext类实例化ApplicationContext对象,并展示了如何通过过滤指定前缀的配置文件来加载特定的Spring Bean。
不启动web服务器加载spring 配置文件 并调用spring bean
我们手动加载spring的配置文件
这里我们使用 ApplicationContext ctx = new FileSystemXmlApplicationContext(paths, true);
这个构造函数来进行ApplicationContext的初始化
其中第一个参数是一个String[]数组 里边的每个对象是spring配置文件的绝对路径
当你的spring的根目录为WebContent/WEB-INF/config/spring 举例如下:
File springPath = new File("WebContent/WEB-INF/config/spring");
File[] files = springPath.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
if (!name.startsWith("spring-default")&&!name.startsWith("spring-remote"))
return true;
else
return false;
}
});
String[] paths = new String[files.length];
for (int i = 0; i < files.length; i++) {
if (!files[i].isDirectory()) {
String abPath = files[i].getAbsolutePath();
paths[i] = abPath;
}
}
ApplicationContext ctx = new FileSystemXmlApplicationContext(paths, true);

然后就可以用ctx.getBean("")方法来取得spring bean对象了
### Spring框架启动加载配置文件的机制和过程 Spring框架在启动过程中,会通过一系列机制加载和解析配置文件,以完成应用程序的初始化和配置。这一过程涉及到多个步骤和组件,确保Spring容器能够正确地管理Bean、进行依赖注入以及应用条件化配置等操作。 在启动过程中,Spring框架会加载并解析应用程序的配置文件,这些文件通常包括`application.properties`或`application.yml`等格式。这些文件中可以定义各种属性和配置信息,例如数据库连接、日志级别、服务器端口等。Spring框架通过一种分层和优先级机制来加载这些配置文件,使得开发者能够根据同的环境(如开发、测试、生产)灵活地配置应用程序的行为[^1]。 Spring框架在启动时会自动扫描`classpath`下的特定包,寻找带有特定注解的类,如`@SpringBootApplication`。这个注解标识了一个Spring Boot应用程序的入口点。在加载配置文件后,Spring框架会根据这些配置信息以及条件化配置的机制,自动配置应用程序的各种组件,包括数据库连接池、消息队列、Web服务器等。如果需要进行自定义配置,可以使用专门的注解或编写自定义的配置类[^2]。 在应用程序启动时,Spring框架会初始化Spring容器,并根据配置进行相应的初始化工作。这包括创建和管理Bean、处理依赖注入等。Spring容器会根据配置文件中的定义,加载Bean定义,并在需要时实例化、配置和组装Bean。此外,Spring还支持基于条件的配置,即某些Bean的创建依赖于特定的条件,例如某个类是否存在、某个属性是否设置等。这种机制使得Spring能够灵活地适应同的运行环境和需求。 对于Spring Boot项目,其配置文件加载顺序遵循一定的优先级规则。例如,`application.properties`或`application.yml`文件可以放置在多个位置,如项目根目录、`config`子目录、类路径根目录等。Spring Boot会按照特定的顺序加载这些配置文件,并且后加载的配置会覆盖之前加载的相同属性值。这种机制使得开发者可以方便地进行本地开发、测试,同时在生产环境中使用外部配置文件进行部署。 以下是一个简单的`application.properties`配置文件示例: ```properties server.port=8081 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=secret ``` 通过这种方式,Spring框架能够在启动加载并解析这些配置,进而初始化相应的组件和服务
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值