- 此问题在此处已有答案**:
@Autowired bean在另一个bean的构造函数中引用时为空(3个答案)
昨天关门了。
我已经下载了一个Vaadin流启动器,并尝试使用它,但由于某种原因,豆类没有被注入:
@PageTitle("About")
@Route(value = "about", layout = MainLayout.class)
public class AboutView extends VerticalLayout {
@Autowired
private UserService userService;
public AboutView() {
...
}
}
userService保持为空。
我仍然可以通过构造函数传递bean:
@PageTitle("About")
@Route(value = "about", layout = MainLayout.class)
public class AboutView extends VerticalLayout {
public AboutView(UserService userService) {
...
}
}
但并不总是那么方便。
我在同一个项目中创建了一个REST服务,即使没有注解,注入也能很好地工作:
@RestController
@AllArgsConstructor
@RequestMapping("user")
public class UserController {
private UserService userService;
...
}
Vaadin Flow有什么问题?我使用的是Vaadin Flow 24.0.0.alpha8,SpringBoot 3.0.1和Java 19。
顺便说一下,我也尝试了Vaadin CDI与PayraMicro和有同样的问题。@EJB和@Inject注解不工作。
1条答案
按热度按时间cqoc49vn1#
字段注入发生在构造函数运行之后。使用带注解的
@PostConstruct
方法访问字段