我做了一个简单的Vaadin Web Programm来实现Spring Framework。当我刷新页面时,我一直收到错误:
我的代码:主视图
@Route(value = "test")
public class MainView extends VerticalLayout {
private final Button button;
private final TextField textField;
public MainView (Button button, TextField textField) {
this.button = button;
this.textField = textField;
doSomething();
}
public void doSomething() {
if(button!=null && textField!=null) {
add(button);
add(new Paragraph(textField));
}
else Notification.show("Error");
}
}
应用配置
@Configuration
public class AppConfig {
@Bean
public Button returnNewButton() {
Button b = new Button();
b.getStyle().set("height", "50px").set("width", "150px");
b.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
return b;
}
@Bean
public TextField returnNewTextField() {
return new TextField("Input");
}
}
已经尝试使用不同的@Scope类型,但仍然不起作用。
我是Spring的新手,我在依赖项注入方面做错了什么?谢谢
一般来说,您不应该注入UI组件,您应该在视图中创建它们。在您的例子中,您正在创建一个在所有视图中重用的单例按钮。这不起作用,因为组件实例只能在一个地方使用。