从另一个类的静态方法调用spring inject类

时间:2014-04-09 00:48:54

标签: java spring

好吧,我有一个带@Component anotation的类,这个类在数据库中做了一些选择,参见:

@Component(value = "parametroRelatorioHelper")
public class ParametroRelatorioHelper {

    @Autowired
    private BasicDAO dao;

    public ParametroRelatorio getParametroByNome(String nome) {

        List<ParametroRelatorio> parametros = (List<ParametroRelatorio>) dao
                .findByNamedQuery(ParametroRelatorio.FIND_BY_NOME,
                        new NamedParams("nome", nome));

        if (parametros.size() > 0)
            return parametros.get(0);
        else
            return null;
    }

    public List<ParametroRelatorio> getAll() {

        return (List<ParametroRelatorio>) dao
                .findByNamedQuery(ParametroRelatorio.FIND_ALL);

    }

    public BasicDAO getDao() {
        return dao;
    }

    public void setDao(BasicDAO dao) {
        this.dao = dao;
    }
}

现在,我有一个“Helper”类,用户可以直接调用你的方法(静态方法),但我需要调用ParametroRelatorioHelper中的方法,参见:

public class ReportHelper {
  public static void call(){
      //how can i do it without @Component injection
      parametroRelatorioHelper.getAll();
   }
}

1 个答案:

答案 0 :(得分:0)

听起来您的架构不正确,而ReportHelper也应该是一个组件,并且应该在其中注入依赖项,否则它会与Spring IOC的想法相冲突,辅助方法不应该依赖于服务上的组件。