实现功能:服务启动时自动加载properties内容到内存, 调用 @bean注解的方法 loadProps();
如果启动后使用(getData 方法调用)时发现propertie没有内容,则再调用一遍。
代码如下:
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.annotation.Resource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
@Configuration
@Component
public class TranNameRead {
private String Tag = "TranNameRead";
@Resource
private BusinessLogger Log;
private Properties props;
@Resource
private PostFactory postFactory;
public Properties getInstance() throws IOException{
if(props==null){
this.loadProps();
}
return props;
}
@Bean(name="TranNameRead")
public Object loadProps() {
Log.log(Tag, "开始加载properties内容.......");
......//此处省略一万字
return trannameList;
}
public String getData(String key) throws IOException{
return getInstance().getProperty(key);
}
}
问题是:手动调用@bean注解之后的方法调用不到,哪位大拿能告知下原因?
后来换了一种方式调用解决问题。
public class TranNameRead {
private String Tag = "TranNameRead";
@Resource
private BusinessLogger Log;
private Properties props;
@Resource
private PostFactory postFactory;
public Properties getInstance() throws IOException{
if(props==null){
loadPropsAgain();
}
return props;
}
@Bean(name="TranNameRead")
public Object loadProps() {
return loadProperties();
}
public Object loadPropsAgain() {
return loadProperties();
}
private Object loadProperties() {
Log.log(Tag, "开始加载properties内容.......");
List<Map> trannameList =null;;
}
}
只是。。。还请各位大侠不吝赐教。