而使用Spring数据JPA我的仓库不能自动初始化(My repository can't

2019-07-29 08:51发布

我想探讨的几个教程后,春天JPA的数据添加到我的春天MVC的Web项目。 但我发现我的仓库不能自动初始化,我在服务类有NullPointerException异常。 请参阅我下面的示例代码:

我的资料库:

public interface SubjectRepository extends JpaRepository<PSubject, String>{
public Page<PSubject> findByType(String title, Pageable pageable);
public Page<PSubject> findByType(String title);
public Page<PSubject> findByMacaddress(String macaddress, Pageable pageable);
public Page<PSubject> findByMacaddress(String macaddress);
public Page<PSubject> findByUri(String uri);

}

我的控制器:

 @Controller @RequestMapping("/subject") public class VPSubjectController { .... @RequestMapping("/{id}.htm") public ModelAndView detail(@PathVariable String id) { ModelAndView mav = new ModelAndView("subject/detail"); PSubject subject = subjectService.get(id); .... } } 

我的服务:

@Service("subjectService")
public class SubjectServiceImpl extends VPService implements SubjectService
{

    @Autowired
    private SubjectRepository subjectRepository;
......
@Override
    @Transactional(propagation=Propagation.REQUIRED, readOnly=true)
    public PSubject get(String subject) {
        PSubject subObj = subjectRepository.findOne(subject);
        return subObj;
    }
.....

我的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="    
           http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans.xsd 
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context.xsd 
           http://www.springframework.org/schema/mvc 
           http://www.springframework.org/schema/mvc/spring-mvc.xsd
           http://www.springframework.org/schema/util 
           http://www.springframework.org/schema/util/spring-util-3.0.xsd
           http://www.springframework.org/schema/data/jpa
           http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
....
<jpa:repositories base-package="com.mypacke.repository"  repository-impl-postfix="Impl" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager"/>

....

我在这一行subjectRepository.findOne(主题)发现,subjectRepository为空,我的问题是类似这个职位

Answer 1:

@Autowired注解被语句激活:

<context:component-scan base-package="base.package"/>

如果妳这样做,它会被初始化



文章来源: My repository can't initialize automatically while using Spring Data JPA