2017-09-13 148 views
0

我想自动装配春天场mvc.But我有一个例外:春季自动装配失败mvc“注入自动装配依赖失败;”

“Servlet.init()进行servlet调度抛出异常”

我试图Injection of autowired dependencies failed

但我仍然得到此异常:

type Exception report 

message Servlet.init() for servlet dispatcher threw exception 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) 
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    java.lang.Thread.run(Thread.java:744) 
root cause 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'careerController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: DAO.CareerDAO controller.CareerController.cardao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [DAO.CareerDAO] 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)} 
    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) 
    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) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) 
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    java.lang.Thread.run(Thread.java:744) 
root cause 

org.springframework.beans.factory.BeanCreationException: Could not autowire field: DAO.CareerDAO controller.CareerController.cardao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [DAO.CareerDAO] 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)} 
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508) 
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) 
    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) 
    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) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) 
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    java.lang.Thread.run(Thread.java:744) 
root cause 

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [DAO.CareerDAO] 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)} 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1100) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:960) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:855) 
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480) 
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) 
    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) 
    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) 
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700) 
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652) 
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) 
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    java.lang.Thread.run(Thread.java:744) 

我的调度员servlet.xml的是:

<?xml version='1.0' encoding='UTF-8' ?> 
    <!-- was: <?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:aop="http://www.springframework.org/schema/aop" 
      xmlns:tx="http://www.springframework.org/schema/tx" 
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

     <context:component-scan base-package="controller"></context:component-scan> 
     <context:component-scan base-package="bean"></context:component-scan> 
     <context:component-scan base-package="DAO"></context:component-scan> 

     <bean id="viewResolver" 
       class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
       p:prefix="/WEB-INF/jsp/" 
       p:suffix=".jsp" /> 
    <bean id="con" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> 
     <property name="url" value="jdbc:mysql://localhost:3306/intelliLABS"></property> 
     <property name="username" value="root"></property> 
     <property name="password" value="root"></property> 

    </bean> 

    <!-- normal jdbc template bean--> 
    <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate"> 
     <property name="dataSource" ref="con"></property> 
    </bean> 

    <!-- For sending email,adding spring's mail support --> 
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
     <property name="host" value="smtp.gmail.com" /> 
     <property name="username" value="MYMAIL" /> 
     <property name="password" value="MYPASSWORD" /> 
     <property name="javaMailProperties"> 
      <props> 
       <prop key="mail.smtp.auth">true</prop> 
       <prop key="mail.smtp.socketFactory.port">465</prop> 
       <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> 
       <prop key="mail.smtp.port">465</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="mailMail" class="bean.MailMail"> 
     <property name="mailSender" ref="mailSender" /> 
    </bean>  

    <!-- this bean uses normal jdbc template --> 
    <bean id="contactsDAO" class="DAO.ContactsDAO"> 
     <property name="jdbc" ref="template"></property> 
    </bean> 

    <!-- this bean uses normal jdbc template --> 
    <bean id="vacancyDAO" class="DAO.VacancyDAO"> 
     <property name="jdbc1" ref="template"></property> 
    </bean> 

    <!-- this bean uses normal jdbc template --> 
    <bean id="careerDAO" class="DAO.CareerDAO"> 
     <property name="jdbc2" ref="template"></property> 
    </bean> 

    </beans> 

这里是我的课:

package bean; 

/** 
* 
* @author Anjana 
*/ 
public class Career { 

    int a_id; 
    String name; 
    String address; 
    String email; 
    String phone; 
    String resumeDoc; 
    int VacancyId; 
    String dateApplied; 

    //constructors 

    public Career() { 
    } 

    public Career(int VacancyId) { 
     this.VacancyId = VacancyId; 
    } 

    public Career(String name, String address, String email, String phone, String resumeDoc, int VacancyId, String dateApplied) { 
     this.name = name; 
     this.address = address; 
     this.email = email; 
     this.phone = phone; 
     this.resumeDoc = resumeDoc; 
     this.VacancyId = VacancyId; 
     this.dateApplied = dateApplied; 
    } 

    //getters 

    public int getA_id() { 
     return a_id; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public String getPhone() { 
     return phone; 
    } 

    public String getResumeDoc() { 
     return resumeDoc; 
    } 

    public int getVacancyId() { 
     return VacancyId; 
    } 

    public String getDateApplied() { 
     return dateApplied; 
    } 

    //setters 
    public void setA_id(int a_id) { 
     this.a_id = a_id; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public void setPhone(String phone) { 
     this.phone = phone; 
    } 

    public void setResumeDoc(String resumeDoc) { 
     this.resumeDoc = resumeDoc; 
    } 

    public void setVacancyId(int VacancyId) { 
     this.VacancyId = VacancyId; 
    } 

    public void setDateApplied(String dateApplied) { 
     this.dateApplied = dateApplied; 
    } 



} 

DAO类:

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package DAO; 

import bean.Career; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 
import java.util.List; 
import org.springframework.dao.DataAccessException; 
import org.springframework.jdbc.core.BeanPropertyRowMapper; 
import org.springframework.jdbc.core.JdbcTemplate; 
import org.springframework.jdbc.core.ResultSetExtractor; 

/** 
* 
* @author Anjana 
*/ 
public class CareerDAO { 


    //injected 
    JdbcTemplate jdbc2; 

    //setter 
    public void setJdbc2(JdbcTemplate jdbc2) { 
     this.jdbc2 = jdbc2; 
    } 

    //methods to access database data 

    //insertion 
    //---------------------------------------------------------------------- 
    public int insertion(Career car) 
    { 
     String insertQuery="insert into careers(name,address,email,phone,resumeDoc,vacancyId,dateApplied) values('" 
       + car.getName()+ "','" + car.getAddress()+ "','" 
       + car.getEmail()+ "','" + car.getPhone()+ "','"+ car.getResumeDoc()+ "','" 
       + car.getVacancyId()+ "','" +car.getDateApplied()+ "')"; 
     return jdbc2.update(insertQuery);  
    } 

    //deletion 
    //---------------------------------------------------------------------- 
    public int deletion(int a_id) { 

     String deleteQuery = "delete from careers where id='" +a_id + "'"; 
     return jdbc2.update(deleteQuery); 
    } 

    //retrieve all to display 
    //---------------------------------------------------------------------- 
    public List retrievedata() { 

     String displayquery = "select * from careers"; 
     return jdbc2.query(displayquery, new ResultSetExtractor<List<Career>>() { 

      @Override 
      public List<Career> extractData(ResultSet rs) throws SQLException, DataAccessException { 

       List<Career> list = new ArrayList<>(); 

       while (rs.next()) { 
        Career cr = new Career(); 
        cr.setA_id(rs.getInt(1)); 
        cr.setName(rs.getString(2)); 
        cr.setAddress(rs.getString(3)); 
        cr.setEmail(rs.getString(4)); 
        cr.setPhone(rs.getString(5)); 
        cr.setResumeDoc(rs.getString(6)); 
        cr.setVacancyId(rs.getInt(7)); 
        cr.setDateApplied(rs.getString(8)); 
        list.add(cr); 
       } 

       return list; 
      } 
     }); 
    } 

    //retrieve only one row 
    //---------------------------------------------------------------------- 
    public Career retrieveProfile(int a_id) { 

     //returnig the details as an object of Career 
     //using queryForObject() and BeanPropertyRowMapper 

     String displayquery = "select * from careers where id=?"; 
     return jdbc2.queryForObject(displayquery, new Object[]{a_id}, new BeanPropertyRowMapper<Career>(Career.class)); 

    } 

} 

控制器类:

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package controller; 

import DAO.CareerDAO; 
import bean.Career; 
import bean.MailMail; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.List; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.PathVariable; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.ModelAndView; 

/** 
* 
* @author Anjana 
*/ 
@Controller 
public class CareerController { 

    //inject objects of dao class 
    @Autowired 
    CareerDAO cardao; 

    //inject objects of dao class 
    // @Autowired 
    // VacancyDAO Vdao; 

    //inject objects of JavaMailSender class 
    @Autowired 
    private MailMail m; 

    public CareerDAO getCardao() { 
     return cardao; 
    } 

    public void setCardao(CareerDAO cardao) { 
     this.cardao = cardao; 
    } 

    //go to careers page from index page 
    //-------------------------------------------------------------------- 
    @RequestMapping("/careersPage") 
    public ModelAndView ViewVacancyForPublic() 
    { 
     return new ModelAndView("redirect:/AllVacancies"); 
    } 

    //go to Job Application Form 
    //-------------------------------------------------------------------- 
    @RequestMapping("/ApplicationForm") 
    public ModelAndView Apply() 
    { 
     return new ModelAndView("careers/ApplicationForm","command",new Career()); 
    }  

    //Add applicant data 
    //--------------------------------------------------------------- 

    @RequestMapping(value="/ApplySubmit",method=RequestMethod.POST) 
    public ModelAndView AddApplication(@ModelAttribute Career career) 
    { 
     //get current date and time   
     DateFormat dateformat=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
     Date date=new Date(); 
     career.setDateApplied(dateformat.format(date).toString()); 

     //get login Id 
     //int LoginId= ; 
     //conta.setDelId(LoginId); 

     if(cardao.insertion(career)==1) 
     { 

      //send mail to the person thanking him 
      String from1="[email protected]"; 
      String to1 = career.getEmail(); 
      String sub1 = "Thanks"; 
      String msg1 = "Greetings from IntelliLABS!!\n" 
        + "We've received your job Application." 
        + "\nwe will get back to you as soon as possible."; 
       m.sendMail(from1, to1,sub1,msg1); 

      //send mail to admin informing about the application received 
      String from2="[email protected]"; 
      String to2 = "[email protected]"; 
      String sub2 = "New Job Application through IntelliLABS.com"; 
      String msg2 = "Hai Admin!!\n\n" 
        + "New job Application from "+career.getName()+"....\n\n" 
        // +"For the position : "+Vdao.retrieveVacancyTitle(career.getVacancyId())+"\n\n" 
        +"Login to the account to view the resume." 
        + "And Please reply as soon as possible\n" 
        +"to the mail : "+career.getEmail(); 
      // sends the e-mail 
      m.sendMail(from2, to2,sub2,msg2); 

      //display a message or alert saying "thank you for connecting with us" 
      System.out.println("insertion successful"); 
     } 
     else{ 
     //else display "application failed...try agin later in alert" 
      System.out.println("insertion failed"); 
     } 

     return new ModelAndView("redirect:/AllVacancies"); 

    } 

    //display all applicants to only admin 
    //---------------------------------------------------------------------- 

    @RequestMapping("/ShowApplicants") 
    public ModelAndView DispAllApplicants() 
    { 

     List<Career> profileList= cardao.retrievedata(); 
     return new ModelAndView("admin/ViewProfiles","profileList",profileList); 

    } 

    //delete applicant only by admin 
    //---------------------------------------------------------------------- 

    @RequestMapping(value="/deleteProfile/{a_id}") 
    public ModelAndView deleteProfile(@PathVariable int a_id) 
    { 

     if(cardao.deletion(a_id)==1) 
     { 
      System.out.println("Profile "+a_id+" deleted\n"); 
      return new ModelAndView("redirect:/ShowApplicants"); 
     } 
     else 
     { 
      return new ModelAndView("redirect:/failiure"); 
     } 

    } 

    //show one profile for admin 
    //---------------------------------------------------------------------- 

    @RequestMapping(value="/dispProfile/{a_id}") 
    public ModelAndView viewOneProfile(@PathVariable int a_id) 
    { 
     Career prof= cardao.retrieveProfile(a_id); 

     return new ModelAndView("admin/ApplicantProfile","command",prof); 
    } 




} 

有人可以帮助我理解这个问题,自动装配...

+0

我建议不要混合XML和注释。 – mre

+0

你的意思是我应该使用@autowiring注释来向Dao类注入bean类,或者使用基于xml的注入来将dao类注入到contoller类中? – ANJU

+0

我会摆脱XML并以编程方式执行组件扫描和配置。 – mre

回答

0

你应该标记你的Dao层豆与刻板印象(即库或组件)注释,如下面:

@Repository 
public class CareerDAO { 

//injected 
JdbcTemplate jdbc2; 

// rest of your logic 
} 

弹簧组件扫描扫描给定的包和寻找典型化注解如@Component,@Service和创造这些豆子,并将其注入到适当的豆。既然你没有用这些注释标记bean,spring还没有创建dao bean。

相关问题