小编Chr*_*s M的帖子

为什么在Vaadin / SpringBoot应用程序中使用@Autowired存储库获取NullPointerException?

我开始用vaadin和spring boot构建一个Web应用程序。我想创建一个vaadin站点,该站点在网格中列出来自MSSQL Server的数据。尝试使用@Autowired CrudRepository时,我总是会收到NullPointerException。

我已经阅读了很多vaadin和Spring教程,在Stackoverflow中搜索了类似的问题,但仍未找到解决方案。在大多数情况下,如果发生相同的错误,人们会忘记将存储库注释为@Repository或使用新的UI类来创建UI类……我检查了所有常见的错误,但我的代码无法正常工作。我还针对数据库编写了单元测试,效果很好!

我的带有@Repository批注的CrudRepository接口

...
@Repository
public interface BewohnerRepository extends CrudRepository<Bewohner, Integer>{
    ...
}
...
Run Code Online (Sandbox Code Playgroud)

我的UI应该使用@Autowired存储库显示数据

...
@Route("")
@SpringComponent
@Configurable
public class VaadinMainUI extends VerticalLayout {

    @Autowired
    private BewohnerRepository bewohnerRepository;

    public VaadinMainUI() {     
        Grid<Bewohner> grid = new Grid<Bewohner>(Bewohner.class);
        Iterable<Bewohner> bewohnerList = bewohnerRepository.findAll();
        grid.setItems((Collection<Bewohner>) bewohnerList);
        add(grid);
    }

}
Run Code Online (Sandbox Code Playgroud)

我的应用程序主班:

...
@SpringBootApplication
public class IndikatorenbogenApplication {

    public static void main(String[] args) {
        SpringApplication.run(IndikatorenbogenApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的JUnit测试也使用@Autowired存储库(此测试工作正常,并列出了来自我的数据库的数据:

...

@RunWith(SpringRunner.class)
@SpringBootTest
public class BewohnerRepositoryTest {

    @Autowired
    private BewohnerRepository bewohnerRepository;

    @Test
    public …
Run Code Online (Sandbox Code Playgroud)

java autowired vaadin spring-boot vaadin-flow

3
推荐指数
1
解决办法
129
查看次数

标签 统计

autowired ×1

java ×1

spring-boot ×1

vaadin ×1

vaadin-flow ×1