@Configuration @Bean 注解的方法手动调用不上

实现功能:服务启动时自动加载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 trannameList =null;;
      }
    }

 只是。。。还请各位大侠不吝赐教。

 

 

你可能感兴趣的:(JAVA,Spring)