我遇到wicket-spring-boot
< - >的问题wicket
整合。注释为@Service
的Bean未正确注入使用@SpringBean
注释注入无状态页面的辅助bean。
一般而言:
@StatelessComponent
@MountPath("home-page")
public class HomePage extends WebPage {
@SpringBean
private HomePageHandler handler;
}
和
@Service
public class HomePageHandler {
private final CommandPublisher commandPublisher;
@Autowired
public HomePageHandler(CommandPublisher commandPublisher) {
this.commandPublisher = commandPublisher;
}
public void executeAction(String name) {
commandPublisher.publish(name); /// <----------- NPE (commandPublisher is null)
}
}
和:
@Service
public class CommandPublisher {
public void publish(String text) {
eventPublisher.publishEvent(text);
}
}
Wicket 7.6.0,wicket-spring-boot 1.0.6。
我创建了一个简单的启动器(https://github.com/tdziurko/wicket-spring-bean-issue)来重现问题。当页面不是无状态时问题消失(启动器中自述文件中的更多信息)。
答案 0 :(得分:1)
问题与使用具体类而不是CGLIB有问题的接口有关。切换到使用界面或使用Objenesis应该可以解决问题。
我已在邮件列表(http://markmail.org/message/xggw6ajuxz22rllh)和Wicket-Spring-Boot问题(https://github.com/MarcGiffing/wicket-spring-boot/issues/98#issuecomment-291606918)中详细回答了这个问题。
没有任何难过的感觉,但所有可能的论坛中的这些交叉帖子都会浪费时间给很多人。 让我们专注于一个论坛!