Melhor forma para injetar dependencia num AbstractBeanController

Ola,
Resolvi criar um AbstractBeanController para parar de ficar so escrevendo um monte de CRUD nos Controllers. Estava ficando muito cansativo. Entao criei um AbstractBeanController. O problema é que tive que colocar um dao Generico nele e no momento da criacao do beancontroller esse Dao ainda é nulo quando eu faco

@ManagedBean
@RequestScoped
public class SetorController {

    @ManagedProperty(name="setorService", value="#{setorService}")
    private SetorService setorService;
    private Setor setor;
    public SetorController() {
         setor = new Setor();
         super.setService(setorService);
    }
    //restante dos metodos.

Para resolver esse problema fiz o seguinte:

@PostConstruct
public void setService() {
    service = setorService;

Dessa forma funciona so que fico com dois services quando so preciso de um.

ai na classe Abstrata fiz assim:

public AbstractBeanController() {
        this.oClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        service = (ServiceGenerico<T, Integer>) ac.getBean(oClass.getSimpleName() + "Service"); //Isso que esta pegando
    }

So que dessa forma eu so consegui fazer funcionar utilizando o applicationContext no src do projeto. Nao consigo ler o applicationContext que esta em WEB-INF, mesmo utilizando private ApplicationContext ac = new XmlWebApplicationContext();

Como esses beans ja estao instanciados pois o web.xml ja faz isso, tem outra forma de injetá-los? Pelas anotacoes na classe abstrata tambem nao funcionou.