使用名称' springProjectController'创建bean时出错:注册自动连接的依赖项失败;无法自动装配字段:

时间:2018-01-07 13:45:55

标签: java spring-mvc

堆栈跟踪 严重:上下文初始化失败 org.springframework.beans.factory.BeanCreationException:使用名称' springProjectController'创建bean时出错:注册自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private com.springproject.service.SpringProjectservice com.springproject.controller.SpringProjectController.springservice;嵌套异常是org.springframework.beans.factory.BeanCreationException:使用名称' springProjectServiceImpl'创建bean时出错:注册自动装配的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.springproject.dao.SpringProjectDao com.springproject.service.SpringProjectServiceImpl.springprojectdao;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为' springProjectDaoImpl'的注册自动连接依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:org.springframework.jdbc.core.JdbcTemplate com.springproject.dao.SpringProjectDaoImpl.jdbcTemplate;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型[org.springframework.jdbc.core.JdbcTemplate]的限定bean:期望至少有一个bean可以作为此依赖项的autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}     在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)     在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)     在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)     在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)     at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:304)     在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)     在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)     在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)     在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)     在org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:643)     在org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:606)     在org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:657)     在org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:525)     在org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:466)     在org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)     在javax.servlet.GenericServlet.init(GenericServlet.java:158)     在org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1282)     在org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1195)     在org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:866)     在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)     在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)     在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)     在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)     在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)     在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)     在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)     在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)     在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)     at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:623)     at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:316)     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)     at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)     在java.lang.Thread.run(未知来源) 引起:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private com.springproject.service.SpringProjectservice com.springproject.controller.SpringProjectController.springservice;嵌套异常是org.springframework.beans.factory.BeanCreationException:使用名称' springProjectServiceImpl'创建bean时出错:注册自动装配的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.springproject.dao.SpringProjectDao com.springproject.service.SpringProjectServiceImpl.springprojectdao;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为' springProjectDaoImpl'的注册自动连接依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:org.springframework.jdbc.core.JdbcTemplate com.springproject.dao.SpringProjectDaoImpl.jdbcTemplate;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型[org.springframework.jdbc.core.JdbcTemplate]的限定bean:期望至少有一个bean可以作为此依赖项的autowire候选者。依赖注释:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

    <servlet>
        <servlet-name>SpringDispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>SpringDispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


</web-app>


SpringDispatcher-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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!--  
    <mvc:annotation-driven/> -->
    <context:annotation-config /> 
    <context:component-scan base-package = "com.springproject.controller" />

     <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/lo" />
        <property name="username" value="root" />
        <property name="password" value="root" />
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean id="springprojectdao" class="com.springproject.dao.SpringProjectDaoImpl">
         <property name="jdbcTemplate" ref="jdbcTemplate" />
    </bean> 
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
     <mvc:resources mapping="/resources/**" location="/resources/" />

</beans>

SpringprojectController

package com.springproject.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.springproject.bean.Bean;
import com.springproject.service.SpringProjectservice;

@Controller
@ComponentScan("com.springproject.service")
public class SpringProjectController 
{
    @Autowired
    private SpringProjectservice springservice;

    @RequestMapping(value = "/login")
    public String getview() {
        return "Login";
    }


    @RequestMapping(value= "/usercheck", method= RequestMethod.POST)
    public String Usercheck(@ModelAttribute("form") Bean login)
    {
        System.out.println("" + login.getUsernameid());
        System.out.println("" + login.getPasswordid());
        String value = springservice.usercheck(login);
        return "success";
    }

}

@Serviceimpl

package com.springproject.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.springproject.bean.Bean;
import com.springproject.dao.SpringProjectDao;


@Service
@ComponentScan("com.springproject.dao")
public class SpringProjectServiceImpl implements SpringProjectservice 
{
    @Autowired
    SpringProjectDao springprojectdao;

    @Override
    public String usercheck(Bean login) {

        return springprojectdao.usercheck(login);
    }


}

DAOImpl

package com.springproject.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import com.springproject.bean.Bean;

@Repository
public class SpringProjectDaoImpl implements SpringProjectDao {

    @Autowired
    JdbcTemplate jdbcTemplate ;
    @Override
    public String usercheck(Bean login) {
        String SQL = "select count(*) from login where username = ? AND password = ? ";
        int flag = jdbcTemplate.queryForInt(SQL, new Object[]{login.getUsernameid(),login.getPasswordid()});
        return String.valueOf(flag);
    }



}

0 个答案:

没有答案