org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错

Posted

技术标签:

【中文标题】org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错【英文标题】:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean 【发布时间】:2017-08-20 19:56:29 【问题描述】:

我在运行我的项目时收到以下错误消息

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“tipoEstadoCivilController”的 bean 时出错:通过字段“tipoEstadoCivilService”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“tipoEstadoCivilService”的 bean 时出错:通过字段“tipoEstadoCivilRepository”表示不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“tipoEstadoCivilRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!

很遗憾,我找不到问题所在。

下面是我的主要与错误相关的类和接口

类TipoEstadoCivil

package sgman.model;

import org.hibernate.validator.constraints.NotBlank;

import javax.persistence.*;
import javax.validation.constraints.Size;
import java.io.Serializable;

@Entity
@Table(name = "tipo_estado_civil")
public class TipoEstadoCivil implements Serializable 

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_tipo_estado_civil", updatable = false, nullable = false)
    private Long idTipoEstadoCivil;

    @Column(name = "nome_estado_civil", nullable = false)
    @NotBlank
    @Size(min = 3, max = 32)
    private String nomeEstadoCivil;

    Getter and Setter

    Equals and hashCode 

接口TipoEstadoCivilRepository

package sgman.repository;

import sgman.model.TipoEstadoCivil;
import sgman.repository.helper.TipoEstadoCivilQueries;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;

@Repository
public interface TipoEstadoCivilRepository extends JpaRepository<TipoEstadoCivil, Long>, TipoEstadoCivilQueries 

    Optional<TipoEstadoCivil> findByNomeEstadoCivilIgnoreCase(String nomeEstadoCivil);

接口 TipoEstadoCivilQueries

package sgman.repository.helper;

import sgman.model.TipoEstadoCivil;
import sgman.repository.filter.TipoEstadoCivilFilter;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface TipoEstadoCivilQueries 

    Page<TipoEstadoCivil> filtrar(TipoEstadoCivilFilter filtro, Pageable pageable);

类TipoEstadoCivilImpl

package sgman.repository.helper;

import sgman.repository.filter.TipoEstadoCivilFilter;
import sgman.model.TipoEstadoCivil;
import sgman.repository.paginacao.PaginacaoUtil;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

public class TipoEstadoCivilImpl implements TipoEstadoCivilQueries 

    @PersistenceContext
    private EntityManager manager;

    @Autowired
    private PaginacaoUtil paginacaoUtil;

    private void addFilter(TipoEstadoCivilFilter tipoEstadoCivilFilter, Criteria criteria) 
        if (tipoEstadoCivilFilter != null) 
            if (!StringUtils.isEmpty(tipoEstadoCivilFilter.getNomeEstadoCivil())) 
                criteria.add(Restrictions.ilike("nomeEstadoCivil", tipoEstadoCivilFilter.getNomeEstadoCivil(), MatchMode.ANYWHERE));
            
        
    

    private Long count(TipoEstadoCivilFilter tipoEstadoCivilFilter) 
        Criteria criteria = manager.unwrap(Session.class).createCriteria(TipoEstadoCivil.class);
        addFilter(tipoEstadoCivilFilter, criteria);
        criteria.setProjection(Projections.rowCount());
        return (Long) criteria.uniqueResult();
    

    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true)
    public Page<TipoEstadoCivil> filtrar(TipoEstadoCivilFilter tipoEstadoCivilFilter, Pageable pageable) 
        Criteria criteria = manager.unwrap(Session.class).createCriteria(TipoEstadoCivil.class);
        paginacaoUtil.preparar(criteria, pageable);
        addFilter(tipoEstadoCivilFilter, criteria);
        return new PageImpl<>(criteria.list(), pageable, count(tipoEstadoCivilFilter));
    

类 TipoEstadoCivilController

package sgman.controller;

import sgman.controller.page.PageWrapper;
import sgman.exception.TipoEstadoCivilAlreadyExists;
import sgman.model.TipoEstadoCivil;
import sgman.repository.TipoEstadoCivilRepository;
import sgman.repository.filter.TipoEstadoCivilFilter;
import sgman.service.TipoEstadoCivilService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

@Controller
@RequestMapping("/tipoEstadoCivil")
public class TipoEstadoCivilController 

    @Autowired
    private TipoEstadoCivilService tipoEstadoCivilService;

    @Autowired
    private TipoEstadoCivilRepository tipoEstadoCivilRepository;

    @RequestMapping("/novo")
    public ModelAndView novo(TipoEstadoCivil tipoEstadoCivil) 
        return new ModelAndView("tipoEstadoCivil/novoEstadoCivil");
    

    @RequestMapping(value = "/novo", method = RequestMethod.POST)
    public ModelAndView cadastrar(@Valid TipoEstadoCivil tipoEstadoCivil, BindingResult result, RedirectAttributes attributes) 
        if (result.hasErrors()) 
            return novo(tipoEstadoCivil);
        
        try 
            tipoEstadoCivilService.saveTipoEstadoCivil(tipoEstadoCivil);
         catch (TipoEstadoCivilAlreadyExists e) 
            result.rejectValue("nomeEstadoCivil", e.getMessage(), e.getMessage());
            return novo(tipoEstadoCivil);
        
        attributes.addFlashAttribute("mensagem", "Estado civil salvo com sucesso");
        return new ModelAndView("redirect:/tipoEstadoCivil/novo");
    

    @RequestMapping(method = RequestMethod.POST, consumes =  MediaType.APPLICATION_JSON_VALUE )
    public @ResponseBody ResponseEntity<?> salvar(@RequestBody @Valid TipoEstadoCivil tipoEstadoCivil, BindingResult result) 
        if (result.hasErrors()) 
            return ResponseEntity.badRequest().body(result.getFieldError("nomeEstadoCivil").getDefaultMessage());
        
        tipoEstadoCivil = tipoEstadoCivilService.saveTipoEstadoCivil(tipoEstadoCivil);
        return ResponseEntity.ok(tipoEstadoCivil);
    

    @GetMapping
    public ModelAndView pesquisar(TipoEstadoCivilFilter estiloFilter, BindingResult result, @PageableDefault(size = 2) Pageable pageable, HttpServletRequest httpServletRequest) 
        ModelAndView mv = new ModelAndView("estilo/PesquisaEstilos");
        PageWrapper<TipoEstadoCivil> paginaWrapper = new PageWrapper<>(tipoEstadoCivilRepository.filtrar(estiloFilter, pageable), httpServletRequest);
        mv.addObject("pagina", paginaWrapper);
        return mv;
    

错误信息

19:41:39: Executing external task 'bootRun'...
:compileJava UP-TO-DATE
:processResources
:classes
:findMainClass
:bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.2.RELEASE)

2017-03-27 19:41:49.559  INFO 3680 --- [           main] sgman.SgmanApplication      : Starting SgmanApplication on nbcatsis11 with PID 3680 (D:\projetos\sgman\build\classes\main started by ss801559 in D:\projetos\sgman)
2017-03-27 19:41:49.575  INFO 3680 --- [           main] sgman.SgmanApplication      : No active profile set, falling back to default profiles: default
2017-03-27 19:41:50.068  INFO 3680 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@29ba4338: startup date [Mon Mar 27 19:41:50 BRT 2017]; root of context hierarchy
2017-03-27 19:41:51.246  INFO 3680 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'dataSource' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari; factoryMethodName=dataSource; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Tomcat; factoryMethodName=dataSource; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]]
2017-03-27 19:41:52.091  INFO 3680 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$6fc2d68c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-03-27 19:41:52.901  INFO 3680 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-03-27 19:41:52.917  INFO 3680 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2017-03-27 19:41:52.917  INFO 3680 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.11
2017-03-27 19:41:53.196  INFO 3680 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-03-27 19:41:53.197  INFO 3680 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 3134 ms
2017-03-27 19:41:53.444  INFO 3680 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-03-27 19:41:53.451  INFO 3680 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-03-27 19:41:53.452  INFO 3680 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-03-27 19:41:53.452  INFO 3680 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-03-27 19:41:53.452  INFO 3680 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2017-03-27 19:41:54.283  INFO 3680 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2017-03-27 19:41:54.299  INFO 3680 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2017-03-27 19:41:54.539  INFO 3680 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core 5.0.12.Final
2017-03-27 19:41:54.539  INFO 3680 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2017-03-27 19:41:54.539  INFO 3680 --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2017-03-27 19:41:54.586  INFO 3680 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations 5.0.1.Final
2017-03-27 19:41:54.680  INFO 3680 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2017-03-27 19:41:55.378  INFO 3680 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update
2017-03-27 19:41:55.483  INFO 3680 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-03-27 19:41:55.813  WARN 3680 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tipoEstadoCivilController': Unsatisfied dependency expressed through field 'tipoEstadoCivilService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tipoEstadoCivilService': Unsatisfied dependency expressed through field 'tipoEstadoCivilRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tipoEstadoCivilRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!
2017-03-27 19:41:55.813  INFO 3680 --- [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2017-03-27 19:41:55.813  INFO 3680 --- [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat
2017-03-27 19:41:55.828  INFO 3680 --- [           main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-03-27 19:41:55.844 ERROR 3680 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tipoEstadoCivilController': Unsatisfied dependency expressed through field 'tipoEstadoCivilService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tipoEstadoCivilService': Unsatisfied dependency expressed through field 'tipoEstadoCivilRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tipoEstadoCivilRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
    at sgman.SgmanApplication.main(SgmanApplication.java:10) [main/:na]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tipoEstadoCivilService': Unsatisfied dependency expressed through field 'tipoEstadoCivilRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tipoEstadoCivilRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 19 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tipoEstadoCivilRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 32 common frames omitted
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property filtrar found for type TipoEstadoCivil!
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:77) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:329) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:309) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:272) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:243) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.query.parser.Part.<init>(Part.java:76) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:247) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.query.parser.PartTree$Predicate.buildTree(PartTree.java:398) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:378) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:86) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:64) ~[spring-data-jpa-1.11.1.RELEASE.jar:na]
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:103) ~[spring-data-jpa-1.11.1.RELEASE.jar:na]
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:214) ~[spring-data-jpa-1.11.1.RELEASE.jar:na]
    at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:77) ~[spring-data-jpa-1.11.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:436) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:221) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:277) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:263) ~[spring-data-commons-1.13.1.RELEASE.jar:na]
    at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:101) ~[spring-data-jpa-1.11.1.RELEASE.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
    ... 42 common frames omitted

:bootRun FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bootRun'.
> Process 'command 'C:\Program Files\Java\jdk1.8.0_112\bin\java.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.662 secs
Process 'command 'C:\Program Files\Java\jdk1.8.0_112\bin\java.exe'' finished with non-zero exit value 1
19:41:56: External task execution finished 'bootRun'.

欢迎任何尝试提供帮助。 最好的祝福。

【问题讨论】:

可以添加TipoEstadoCivilService的代码吗? Spring 正在尝试根据名称为过滤器创建查询,但未能这样做。我不确定如何阻止 Spring 这样做。 是的,我可以。对不起我的健忘。谢谢 【参考方案1】:

类 TipoEstadoCivilService

package sgman.service;

import sgman.exception.TipoEstadoCivilAlreadyExists;
import sgman.model.TipoEstadoCivil;
import sgman.repository.TipoEstadoCivilRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
import java.util.Optional;

@Service
public class TipoEstadoCivilService 

    @Autowired
    private TipoEstadoCivilRepository tipoEstadoCivilRepository;

    @Transactional
    public TipoEstadoCivil saveTipoEstadoCivil(TipoEstadoCivil tipoEstadoCivil) 
        Optional<TipoEstadoCivil> tipoEstadoCivilOptional = tipoEstadoCivilRepository.findByNomeEstadoCivilIgnoreCase(tipoEstadoCivil.getNomeEstadoCivil());
        if (tipoEstadoCivilOptional.isPresent()) 
            throw new TipoEstadoCivilAlreadyExists("Estado civil já cadastrado");
        
        return tipoEstadoCivilRepository.saveAndFlush(tipoEstadoCivil);
    

【讨论】:

以上是关于org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错的主要内容,如果未能解决你的问题,请参考以下文章

REST API:org.springframework.beans.factory.UnsatisfiedDependencyException:

Spring security-org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.sec

org.springframework.beans.factory.UnsatisfiedDependencyException:

没有实现 [org.springframework.beans.factory.xml.NamespaceHandler] 接口

Spring Boot 错误 org.springframework.beans.factory.UnsatisfiedDependencyException

org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错