无法在春季自动接线现场为什么?

【字号: 日期:2024-03-24浏览:30作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决无法在春季自动接线现场为什么??

在springservlet .xml中:

<context:component-scan base-package='net.controller' />

(我假设服务impl与服务接口“ net.service”位于同一程序包中)

我认为您必须将包net.service(或全部net)添加到组件扫描中。当前,spring仅在net.controller中搜索组件,并且由于您的服务隐含在net.service中,因此Spring不会实例化它。

解决方法

我不断收到此错误,无法弄清楚原因。是的,我知道很多人都有类似的问题,但是阅读他们得到的答案并不能解决我的问题。

org.springframework.beans.factory.BeanCreationException:创建名称为“contactController”的bean时出错:自动连接依赖项的注入失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有net.service.ContactServicenet.controller.ContactController.contactService;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:未找到依赖项类型为[net.service.ContactService]的匹配bean:期望至少有1个bean可以作为此依赖项的自动装配候选。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required = true)}

这是控制器:

@Controller@SessionAttributespublic class ContactController { @Autowired private ContactService contactService;//methods...}

ContactServiceImpl

@Service('contactService')@Transactional(propagation = Propagation.SUPPORTS,readOnly = true)public class ContactServiceImpl implements ContactService { @Autowired private ContactDao contactDao; public ContactServiceImpl() { } @Override @Transactional(propagation = Propagation.REQUIRED,readOnly = false) public void addContact(Contact contact) {contactDao.saveContact(contact); } @Override public List<Contact> getContacts() {return contactDao.getAllContacts(); }}

ContactDaoImpl

@Repository('contactDao')public class ContactDaoImpl implements ContactDao { @Autowired private SessionFactory sessionFactory; @Override public void saveContact(Contact contact) {sessionFactory.getCurrentSession().saveOrUpdate(contact); } @Override @SuppressWarnings('unchecked') public List<Contact> getAllContacts() {return (List<Contact>) sessionFactory.getCurrentSession().createQuery('from contact c').list(); }}

和spring-servlet.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xmlns:tx='http://www.springframework.org/schema/tx' xsi:schemaLocation='http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd'> <context:property-placeholder location='classpath:jdbc.properties' /> <context:component-scan base-package='net.controller' /> <tx:annotation-driven transaction-manager='hibernateTransactionManager' /> <bean class='org.springframework.web.servlet.view.UrlBasedViewResolver'><property name='viewClass' value='org.springframework.web.servlet.view.JstlView' /><property name='prefix' value='/WEB-INF/jsp/' /><property name='suffix' value='.jsp' /> </bean> <bean class='org.springframework.jdbc.datasource.DriverManagerDataSource'><property name='driverClassName' value='${database.driver}' /><property name='url' value='${database.url}' /><property name='username' value='${database.user}' /><property name='password' value='${database.password}' /> </bean> <bean class='org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean'><property name='dataSource' ref='dataSource' /><property name='annotatedClasses'> <list><value>net.form.Contact</value> </list></property><property name='hibernateProperties'> <props><prop key='hibernate.dialect'>${hibernate.dialect}</prop><prop key='hibernate.show_sql'>${hibernate.show_sql}</prop> </props></property> </bean> <bean class='org.springframework.orm.hibernate3.HibernateTransactionManager'><property name='sessionFactory' ref='sessionFactory' /> </bean></beans>

相关文章: