integracion Spring 3 con JSF 2

buenas tardes,
estoy tratando de integrar spring mvc con jsf 2, pero tengo un error con la inyección del bean de spring en el managed bean del jsf, si alguien tiene un ejemplo claro de esta integracion usando las anotaciones,
muchas gracias.

este es el error que me aroja:
com.sun.faces.mgbean.ManagedBeanCreationException: No se puede crear el bean administrado institucionController. Se han encontrado los problemas siguientes:
- No existe la propiedad institucionDao para el bean administrado institucionController.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Pregunta

Quieres inyectar los beans de Spring en los Managed Bean de JSF?? Eso se logra agregando una linea de configuración al faces-config.xml:

<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>

De esta manera pudes usar las sessiones que ofrece JSF2 (Request, Session, Aplication, View), ejemplo:

@ManagedBean
@ViewScoped
public class ControladorBean implements Serializable {
 
    //Aqui se inyecta el bean dao de Spring
    @ManagedProperty(value = "#{dao}")
    private Dao dao;
 
    @SuppressWarnings("unused")
    @PostConstruct
    private void init() {
       //Aqui se inicializan valores despues de la inyección, no confundir con el constructor
    }

    //Setters y Getters de tus propiedades
    public void setDao(Dao dao) {
        this.dao = dao;
    }
}

Imagen de ivansalazar

he tratado de realizarlo asi

he tratado de realizarlo asi pero no me funciona, me dice No existe la propiedad dao, mis dao los implemente asi:

@Repository(value = "institucionDao")
public class Dao extends GenericoDao<Institucion> implements DaoInterface {
.....
}

mi daogenerico es:

public class GenericoDao<T> implements GenericoDaoInterface<T> {

    protected EntityManager em = null;

   @PersistenceContext
    public void setEntityManager(EntityManager em) {
        this.em = em;
    }

mmmmmm

Trata de anotar tu DAO de esta manera:

@Repository("institucionDao")
public class Dao extends GenericoDao<Institucion> implements DaoInterface {

No uses el value!!!

También falta que escanees tus bean de spring en el aplicationContext.xml asi:

 <!-- Escaneo de los bean de Spring -->
    <context:component-scan base-package="com.empresa.proyecto" />