首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Beancreationexception+NosuchBeandefinition异常

Beancreationexception+NosuchBeandefinition异常
EN

Stack Overflow用户
提问于 2015-11-03 08:21:58
回答 1查看 184关注 0票数 3

我正在使用SpringBoot开发Spring 4应用程序。

在com.test.tm包中,

申请课程:

代码语言:javascript
复制
@SpringBootApplication   
@EnableJpaRepositories( repositoryFactoryBeanClass = GenericRepositoryFactoryBean.class )  
@Import( { HikariDataSourceConfig.class } )  
public class Application {  
   public static void main( String[] args )
   {
    SpringApplication.run(Application.class, args);
   }  
}  

在com.test.tm.entities包中,

用户类别:

代码语言:javascript
复制
@Table( name = "test.user" )
@Entity
public class User implements Serializable {  
  @Id
  @GeneratedValue( strategy = GenerationType.AUTO )
  private Integer id;
  private String message;  
  ....  
}  

在com.test.tm.user中

UserService.class:

代码语言:javascript
复制
@Service
@Transactional( rollbackFor = Exception.class )
public class UserService {

@Autowired
private GenericRepository<User, Serializable> gr;

 public User saveEntity( User usr )
 {
    return gr.save(usr);
 }

 public String getUser()
 {
    //Get User logic
 }  
}  

GenericRepository.java:

代码语言:javascript
复制
@NoRepositoryBean
public interface GenericRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> {
    public List<T> findByNamedQuery( String name );
    public List<T> findByNamedQueryAndParams( String name, Map<String, Object> params );
 }  

还有一个GenericRepositoryImpl.java,其中实现了上述方法的逻辑。

在运行Application.java时,我得到以下错误:

代码语言:javascript
复制
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.test.utils.spring.repo.GenericRepository com.test.tm.user.UserService.gr; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type[com.test.utils.spring.repo.GenericRepository] 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) }
  1. 没有我定义的名为userService的变量,但它仍然显示错误。
  2. 任何方法我都能解决上面的问题。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 12:05:54

广告。1. Spring创建默认名称的userService bean,如文档中所示。

广告。2.我不起诉,当然,但也许GenericRepositoryImpl不在com.test.tm包之外?如果是,则使用正确的包声明(即.@ComponentScan("com.test.utils"))指定附加的@ComponentScan("com.test.utils")注释,或者--如果使用引导1.3+ --修改@SpringBootApplication(scanBasePackages={"com.test.utils","com.test.tm"})

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33494346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档