Estoy empezando con estas dos tecnologias, me está dando el siguiente error:
No matching bean of type [es.arf.spring.jdbc.DemoSpringJdbcDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
por mucho que miro no doy con la solución. Os paso lo que tengo en cada fichero:
Hola
Estoy empezando con estas dos tecnologias, me está dando el siguiente error:
No matching bean of type [es.arf.spring.jdbc.DemoSpringJdbcDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
por mucho que miro no doy con la solución. Os paso lo que tengo en cada fichero:
configuración:
<property name="driverClassName" value="${demo.spring.jdbc.driver}" />
<property name="url" value="${demo.spring.datasource.url}" />
<property name="username" value="${demo.spring.datasource.username}" />
<property name="password" value="${demo.spring.datasource.password}" />
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>es.arf.spring.jdbc.domain.Pais</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
<property name="sessionFactory" ref="sessionFactory" />
fichero Pais.java:
package es.arf.spring.jdbc.domain;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;
@SuppressWarnings("serial")
@Entity
@Table(name = "pais")
public class Pais implements Serializable {
@Id
@GeneratedValue
@Column(name = "codigo")
private String codigo;
@Column(name = "nombre")
private String nombre;
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return "[ codigo: " + codigo + ", nombre: " + nombre + " ]";
}
}
fichero ListadoControllerAnotaciones.java
@Controller
public class ListadoControllerAnotaciones extends AbstractController {
@Autowired(required=true)
private DemoSpringJdbcDao dao;
@Override
@RequestMapping(value="/listadoPaisesAnotaciones.htm")
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//dao = new DemoSpringJdbcDaoImpl();
Pais pais = new Pais();
pais.setCodigo("3");
pais.setNombre("Alemania");
dao.delete(pais);
return new ModelAndView("listadoPaisesAnotaciones");
}
}
fichero DemoSpringJdbcDaoImpl.java
@Repository
public class DemoSpringJdbcDaoImpl extends HibernateDaoSupport implements DemoSpringJdbcDao {
@Autowired
private SessionFactory sessionFactory;
/*
@Autowired
public DemoSpringJdbcDaoImpl(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
*/
@Transactional(readOnly = true)
public void delete(Pais pais) {
//getHibernateTemplate().delete(pais);
sessionFactory.getCurrentSession().delete(pais);
}
}
fichero DemoSpringJdbcDao.java
import es.arf.spring.jdbc.domain.Pais;
public interface DemoSpringJdbcDao {
void delete(Pais pais);
}
como podeis ver, estoy utilizando anotaciones.
La parte de configuración no consigo que se vea correctamente.
Muchas gracias