0

私は@Autowired、注釈のない単純なクラスであるクラスを試みていますが、計算を行うだけのクラスです。ただし、@Autowiredそのクラスにアクセスしようとすると、コントローラーで次のエラーが発生します。

コントローラ:

@Controller
public class LeituraController extends HemisphereController {

private static final String VIEW = "calculation/index";

@Autowired
private MyClass evapo;

@RequestMapping(value = "/request", method = RequestMethod.GET)
@SuppressWarnings("unchecked")
public ModelAndView leituras() {
    ModelAndView view = new ModelAndView(VIEW);
    Double valorMax = evapo.calculation();
    return view;
}}

クラスの例:

public class MyClass {

public Double calculation(){
       //implementation
    }

}

エラー:

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private net.pontoall.hemisphere.core.calculo.evaportranspiracao.MyClass net.pontoall.hemisphere.controller.LeituraController.evapo; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [net.pontoall.hemisphere.core.calculo.evaportranspiracao.MyClass] 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)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:513)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:92)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
... 21 more
 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [net.pontoall.hemisphere.core.calculo.evaportranspiracao.MyClass] 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)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:948)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:817)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:731)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:485)
... 23 more

誰でも私を助けることができますか?ありがとう。

4

1 に答える 1

1

注入された MyClass インスタンスは、Spring Bean でなければなりません。@Componentまたは別の Bean アノテーションで注釈を付けるか、Spring XML 構成ファイルで宣言します。

于 2012-12-07T16:50:07.730 に答える