Ich erstelle eine ShoppingCart App mit Spring-mvc.In Dao-Ebene verwende ich Spring-Hibernate ORM-Funktion.org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine berechtigende Bean
@Repository("baseDao")
public class BaseDaoImpl<T extends ShoppingCartEntity> implements BaseDao<T>
{
@Autowired
protected SessionFactory sessionFactory;
private Class<T> entityClass;
public BaseDaoImpl(Class<T> entityClass) {
super();
this.entityClass = entityClass;
}
public Serializable save(T entity) {
return sessionFactory.getCurrentSession().save(entity);
}
public void update(T entity) {
sessionFactory.getCurrentSession().update(entity);
}
public void saveOrUpdate(T entity) {
sessionFactory.getCurrentSession().saveOrUpdate(entity);
}
}
CartDaoImpl.java
@Repository("cartDao")
public class CartDaoImpl extends BaseDaoImpl<CartMaster> implements CartDao {
private Class<CartMaster> entityClass;
public CartDaoImpl(@Value("com.orgn.shc.entity.CartMaster")Class<CartMaster> entityClass) {
super(entityClass);
this.entityClass = entityClass;
}
//other getter & setter
}
Ich habe eine Klasse Basisentität namens ShoppingCartEntity.java.
@MappedSuperclass
public class ShoppingCartEntity implements Serializable {
private static final long serialVersionUID = 1L;
//other fields
}
CartMaster.java:
@Entity
@Table(name = "SHOP_CART_MASTER")
public class CartMaster extends ShoppingCartEntity {
//other fields
}
nun während des Einsatzes der Anwendung in WebLogic erhalte ich folgende Ausnahme:
<28 Dec, 2017, 11:48:08,916 PM IST> <Error>
<org.springframework.web.servlet.DispatcherServlet> <BEA-000000> <Context
initialization failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name 'baseDao' defined in URL [zip:C:/Oracle
/Middleware/ORACLE_HOME/user_projects/domains/wl_server/servers
/AdminServer/tmp/_WL_user/shoppingcart/8i2b70/war/WEB-INF/lib
/wl_cls_gen.jar!/com/orgn/shc/dao/impl/BaseDaoImpl.class]: Unsatisfied
dependency expressed through constructor parameter 0; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No
qualifying bean of type 'java.lang.Class<?>' available: expected at least
1 bean which qualifies as autowire candidate. Dependency annotations: {}
at
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
Seine feder bean configuraation Teil, wie unten
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/SHPDS"
expected-type="javax.sql.DataSource" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.orgn.shc.entity" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
<mvc:annotation-driven />
<context:component-scan base-package="com.orgn.shc" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources mapping="/assets/**" location="/assets/" />
Meine Wahrnehmung ist, dass @Value Annotation auf Konstruktor-Ebene ausreicht, um die Abhängigkeiten in Unterklassen entsprechend zu injizieren.
Kann jemand dafür eine passende Lösung haben?
Ich habe solche methode.Infact verwende ich eine Methode getAll(), die für createCriteria (entityClass) .list() –
verwendet wird, was es abstrakt tat das Treak für me.thanks Roman –