在静态代码块中初始化整个容器工厂 ,将properties文件中配置的对象,创建实例放入Map中
时间: 2024-02-24 20:56:24 浏览: 140
【戏说Spring Boot】Spring Boot初始化器解析
在静态代码块中初始化整个容器工厂,可以实现在应用程序启动时就完成对象的创建和初始化,提高应用程序的性能和响应速度。可以使用Java的Properties类读取配置文件中的属性,然后将属性值转换为对应的对象,并将对象放入Map中,代码示例如下:
```java
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class ContainerFactory {
private static Map<String, Object> container = new HashMap<>();
static {
Properties props = new Properties();
InputStream in = null;
try {
in = ContainerFactory.class.getClassLoader().getResourceAsStream("config.properties");
props.load(in);
for (Object key : props.keySet()) {
String className = props.getProperty(key.toString());
Class<?> clazz = Class.forName(className);
container.put(key.toString(), clazz.newInstance());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static Object getBean(String name) {
return container.get(name);
}
}
```
在上面的代码中,我们将容器工厂实现为一个静态类,并在静态代码块中读取配置文件config.properties中的属性,并将属性值转换为对应的对象,并将对象放入一个Map中。在使用容器工厂时,调用getBean方法,传入对象的名称,即可获取对应的对象。
阅读全文