Spring 환경을 올바르게 설정하는 데 문제가 있습니다. 내 applicationContext.xml
에서 나는이 :Spring 3에서 @Required 필드를 NULL로 삽입 함
...
<context:annotation-config />
<context:component-scan base-package="com.company.server" />
<import resource="databaseConfig.xml" />
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config.properties</value>
</list>
</property>
</bean>
내 databaseConfig
에서 :
<tx:annotation-driven />
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass">
<value>${jdbc.driver.className}</value>
</property>
<property name="jdbcUrl">
<value>${jdbc.url}</value>
</property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="packagesToScan" value="org.adit.spring.hibernate.entity" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.hibernate.dialect}</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
지금 내 문제가 시작됩니다. 다음 클래스를 보면 :
@Service
public class ViewContactsServiceImpl extends RemoteServiceServlet implements ViewContactsService {
private ContactDao contactDao;
@Autowired
public void setContactDao(ContactDao contactDao) {
this.contactDao = contactDao;
}
@Override
public ArrayList<Contact> getAllContacts() {
return contactDao.getAllContacts();
}
}
응용 프로그램을 시작하는 동안 모두 괜찮습니다. Spring은 빈을 생성 할 수 없다거나 속성을 삽입 할 수 없다는 불평을하지 않는다. 그러나 contactDao
필드에 액세스하려고 할 때마다 null
입니다.
감사합니다.
@Repository("contactDao")
@Transactional
public class ContactDaoImpl implements ContactDao { ... }
업데이트 2
NB :
UPDATE는
나는 또한 언급해야 내 ContactDaoImpl.java
는 다음과 같이 정의된다. 이것은 GWT 응용 프로그램입니다.
ViewContactServiceImpl.java :
package com.company.server.service.viewcontacts;
ViewContactsService.java :
package com.company.client.viewcontacts;
ContactDaoImpl.java
package com.company.server.contact;
ContactDao.java
package com.company.server.contact;
ViewContactsServiceImpl 클래스 및 인터페이스의 패키지는 무엇입니까? –
@ danny.lesnik - 업데이트 2를 확인하십시오. –
죄송합니다. ContactDaoImpl 및 인터페이스 패키지는 무엇에 관해서는 언급하지 않으십니까? –