首页 文章

通过构造函数参数0表示的不满意的依赖性;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException

提问于
浏览
1

尝试使用异常消息导航到“客户”时出现异常

'创建名为'com.nfg.crm.ui.views.customers.CustomersView'的bean时出错:通过构造函数参数0表示不满意的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'com.nfg.crm.ui.crud.CrudEntityPresenter'类型的限定bean可用:预计至少有1个bean可以作为autowire候选者 . 依赖注释:{}'org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'com.nfg.crm.ui.views.customers.CustomersView'的bean时出错:通过构造函数参数0表示不满意的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'com.nfg.crm.ui.crud.CrudEntityPresenter'类型的限定bean可用:预计至少有1个bean可以作为autowire候选者 . 依赖注释:{} atg.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729)org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)at org . springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270)位于org.springframework.beans.factory.support的org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) . AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 304)在com.vaadin.flow.spring.SpringInstantiat or.getOrCreate(SpringInstantiator.java:86)位于com.vaadin.flow.di.Instantiator.createRouteTarget(Instantiator.java:157)com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.lambda $ getRouteTarget $ 1(AbstractNavigationStateRenderer.java) :114)位于com.vaadin.flow.router.internal的com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.getRouteTarget(AbstractNavigationStateRenderer.java:113)的java.util.Optional.orElseGet(Optional.java:267) . 在com.vaadin.flow.router.Router.handleNavigation(Router.java:178)的com.vaadin.flow.router.Router.navigate(Router.java:150)上的AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:165)位于java.util.Optional.ifPresent的com.vaadin.flow.component.UI.lambda $ doInit $ 0(UI.java:205)中的.vaadin.flow.router.Router.initializeUI(Router.java:91)(可选 . java:159)位于com.vaadin.flow上的com.vaadin.flow.server.BootstrapHandler.createAndInitUI(BootstrapHandler.java:988)的com.vaadin.flow.component.UI.doInit(UI.java:205) . com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)的com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1541)中的server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:388)在com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:345)的javax.servlet.http.HttpServlet.service(HttpServlet.java:790)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain) .java:231)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)位于org.apache.catalina的org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728) . core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:470)位于org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:356)org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:316)在org.springframework.web.servlet.mvc.Serv org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)中的letForwardingController.handleRequestInternal(ServletForwardingController.java:141)org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java: 52)在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)at atorg.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)在org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:870)在javax.servlet.http.HttpServlet.service(HttpServlet.java:687)在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)在javax.servlet.http.HttpServlet . 服务(HttpServlet.java:790)留在组织在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) . apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)在org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166)org.springframework.security.web.FilterChainProxy $ Vir tualFilterChain.doFilter(FilterChainProxy.java:320)在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter( FilterSecurityInterceptor.java:91)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)在org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)在组织.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)在org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)在org.springframework.security.web.FilterChainProxy org.springframework上的org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)中的$ VirtualFilterChain.doFilter(FilterChainProxy.java:334) org.springframework.security.web.FilterChainProxy $ VirtualFilterChain上的.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) .doFilter(FilterChainProxy.java:334)在org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334 )org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)org.springframework.security . web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilt ER(FilterChainProxy.java:334)在org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)在组织位于org.springframework.security.web.FilterChainProxy的org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)中的.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)位于org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)的org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter)中的$ VirtualFilterChain.doFilter(FilterChainProxy.java:334)的.java:107)在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:334)在org.springframework.security.web.FilterChainProxy.doFilterInternal( FilterChainProxy.java:215)在org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)在org.springframework.web .filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:107)维持在org.springframework.web在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)) .filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)org.apringframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) )在在org.spring在org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166))在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain . )中的framework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) . 的java:166)在org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)在org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)在org.apache.catalina.core .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)在org.apache.catalina.core.StandardHostValve.invoke( StandardHo stValve.java:140)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)org.apache.catalina .connector.CoyoteAdapter.service(CoyoteAdapter.java:342)在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)在org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)在org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:790)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1459)org.apache.tomcat.util . net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)at org .apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)引起:org.springfr amework.beans.factory.NoSuchBeanDefinitionException:没有'com.nfg.crm.ui.crud.CrudEntityPresenter'类型的限定bean可用:预计至少有1个bean可以作为autowire候选者 . 依赖注释:{} atg.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1509)org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)at org . springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)在org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:815)在org.springframework.beans.factory.support . ConstructorResolver.createArgumentArray(ConstructorResolver.java:721)... 109更多

1 回答

  • 2

    这实际上取决于 CrudEntityPresenter 应该是什么 .

    如果它是一个普通的bean,你应该在代码中的某个地方有一个类似于这个的定义:

    @Bean
    public CrudEntityPresenter crudEntityPresenter() {
       CrudEntityPresenter crudEntityPresenter = new CrudEntityPresenter();
       //here goes the code that initializes the bean
       return crudEntityPresenter;
    }
    

    如果它应该是组件/服务,您应该使用相应的注释对其进行注释:

    @Component
    public class CrudEntityPresenter {
    }
    

    要么

    @Service
    public class CrudEntityPresenter {
    }
    

    也许它背后的想法是使用 JpaRepository . 我非常怀疑它,但如果是这种情况, CrudEntityPresenter 应该是一个扩展 JpaRepository 的接口:

    public interface CrudEntityPresenter extends JpaRepository<MyEntity, String> {
    }
    

    在上面的示例中,我们为实体 MyEntity 设置 JpaRepository ,其中id为 String .

相关问题