Получение ошибки: Ошибка создания бина с именем '*': Неудовлетворенная зависимость выражается через поле 'repo';N - PullRequest
0 голосов
/ 27 сентября 2019

Ошибка: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'IssueTemplateServiceImpl': Неудовлетворенная зависимость, выраженная через поле 'repo';вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: нет доступного квалифицирующего компонента типа com.conseco.repository.IssueTemplateRepo: ожидается как минимум 1 компонент, который считается кандидатом на автопровод.Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательный = true)} в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (Autowiredingrara.бобыpopulateBean (AbstractAutowireCapableBeanFactory.java:1395) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:592) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:515)в org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0 (AbstractBeanFactory.java:320) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) в org.springframework.beans.factory.ean.Bean.поддержкав org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:291) в org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener.java:103) по адресу org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:4840) по адресу org.apache.catalina.core.StandardContext.con.tartorg.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:147) в org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1407) в org.apache.catalina.core.ContainerBase $StartChild.call (ContainerBase.java:1397) в java.base / java.util.concurrent.FutureTask.run (неизвестный источник) в java.base / java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) в java.base / java.lang.Thread.run (неизвестный источник). Вызывается: org.springframework.beans.factory.NoSuchBeanDefinitionException типа: не отвечает требованиямДоступно 'com.conseco.repository.IssueTemplateRepo': ожидается как минимум 1 компонент, который считается кандидатом в автопровод.Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (обязательный = true)} в org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound (DefaultListableBean.sra.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1213)в org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1167) в org.springframework.beans.factory.factory.annotation.AutowiredAntotation1002 *

Мой код:

IssueTemplateController:

package com.conseco.controller;




import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.conseco.dao.IssueTemplateInfo;
import com.conseco.service.IssueTemplateService;


@Controller
public class IssueTemplateController {

    @Autowired
  IssueTemplateService service;



    @RequestMapping("/new")
    public ModelAndView create()
    {

        System.out.println("service: "+service);
        ModelAndView mav=new ModelAndView("index");
        System.out.println("1..................");
        IssueTemplateInfo issue=new IssueTemplateInfo();
        issue.setSDT("123456");
        issue.setAnalysis("test");
        issue.setApplicaiton("AWD");
        issue.setBatch("no");
        issue.setBusinessImpact("N/A");
        issue.setDescription("will describe later");
        issue.setEMER("N/A");
        issue.setImpDate("25th");
        issue.setPermanentFix("TBT");
        issue.setQCDefect("234");
        issue.setRootCause("unknown");
        issue.setSeverity(3);
        issue.setStatus("Inprogress");
        issue.setWorkAround("a lot to work on");
        service.save(issue);

        System.out.println("4..............");


        return mav;
    }

}


MyFrontController:



package com.conseco.controller;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import com.conseo.config.WebMvcConfig;

public class MyFrontController extends  AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return new Class[] {WebMvcConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String[] {"/"};
    }

}




IssueTemplateRepo:
package com.conseco.repository;

import org.springframework.data.repository.CrudRepository;


import com.conseco.dao.IssueTemplateInfo;


public interface IssueTemplateRepo extends CrudRepository<IssueTemplateInfo, String> {

}



IssueTemplateService:


package com.conseco.service;

import org.springframework.stereotype.Service;

import com.conseco.dao.IssueTemplateInfo;


public interface IssueTemplateService {


    IssueTemplateInfo save(IssueTemplateInfo issue);
}



IssueTemplateServiceImpl:
package com.conseco.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.conseco.dao.IssueTemplateInfo;
import com.conseco.repository.IssueTemplateRepo;

@Service
public class IssueTemplateServiceImpl implements IssueTemplateService {

    @Autowired
    private IssueTemplateRepo repo;

    public IssueTemplateRepo getRepo() {
        return repo;
    }

    public void setRepo(IssueTemplateRepo repo) {
        this.repo = repo;
    }

    @Override
    public IssueTemplateInfo save(IssueTemplateInfo issue) {
        // TODO Auto-generated method stub
        return repo.save(issue);
    }

}





WebMvcConfigurer:
package com.conseo.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;



@Configuration
@EnableWebMvc
@ComponentScan({"com.conseco.service","com.conseco.controller","com.conseco.repository","com.conseco.dao"})
public class WebMvcConfig implements WebMvcConfigurer {

}

1 Ответ

0 голосов
/ 27 сентября 2019

Добавьте аннотацию @Component на интерфейсе:

@Component
public interface IssueTemplateRepo extends CrudRepository<IssueTemplateInfo, String> {

    }

После добавления аннотации @Component станет пружинным компонентом и может управляться контейнером Spring IoC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...