afterPropertiesSet方法和init-method区别和应用
InitializingBean
spring的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,只包含一个方法:afterPropertiesSet():
throws Exception;
}
import org.springframework.beans.factory.InitializingBean;
void afterPropertiesSet() throws Exception {
System.out.println("LifeCycleBean initializing...");
}
}
在xml配置文件中并不需要对bean进行特殊的配置:
<beans>
编写测试程序进行测试:
import org.springframework.beans.factory.xml.XmlBeanFactory;
public static void main(String[] args) {
XmlBeanFactory factory= new XmlBeanFactory( new ClassPathResource("com/spring/applicationcontext.xml"));
factory.getBean("lifeBean");
}
}
bean实现:
package com.spring;
publicvoid init(){
System. out .println("LifeCycleBean.init...");
}
}
在Spring配置文件中配置这个bean:
<bean name ="lifeBean" class ="research.spring.beanfactory.ch4.LifeCycleBean" init-method ="init"></bean>
</beans>
final protected void init() throws Exception{
throw new Exception("init exception");
}
调用代码:
public class TestServiceConfigImpl implements InitializingBean {
private String folderName;
public void afterPropertiesSet()throws Exception{
folderName = folderName != null ? folderName : "test_config";
reload(folderName);
}
//根据文件目录加载配置文件
public void reload(String fileName) throws Exception {
fileName = fileName.startsWith("/") ? fileName.substring(1) : fileName;
//根据文件名称获取相应的文件
File file = ResourceUtils.getFile("classpath:" + fileName);
for (File configFile : files) {
//加载文件……
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?