Jsf: construtor ou get()?

o titulo pareceu meio tosco, mas vou explicar bem… a duvida é o seguinte…

vc tem uma pagina jsf que exibe dados em um dataTable por exemplo… quando a pagina é carregada, os dados precisam estar la… suponhamos que sejam dados de um SelectItem[] empresas.

ja vi aqui no guj que muita gente busca esses dados criando um get para empresas, no caso getEmpresas(), aonde o metodo buscaria a informação no banco ou facade… porém, no meu caso, não ficou legal, porque minha tela tem um monte de componentes e qualquer iteracao com a tela, este getEmpresas() é chamado… queria que ele fosse carregado APENAS 1 VEZ, no caso ao carregar a pagina…

entao criei um metodo carregaEmpresas() por exemplo e criei um construtor para o bean chamando este metodo … so que o carregaEmpresas() possui uma chamada a um facade que está declarada em uma managed-property do faces-config, e nessa managed-property existe uma injeção de dependencia do Spring… ou seja… nullPointerException no bean na hora de chamar o facade…

entao estou em uma encruzilhada… por um lado o getEmpresas() funciona, porem chama toda hora na tela, mas por outro lado o construtor devolve nullpointerexception para o facade injetado no spring.;…

eae?

ps: estou usando icefaces + spring + hibernate

obrigado