我想从使用Vaadins @Route批注的类中访问吸气剂。
实例化该类不起作用,也不自动装配 这是我的切入点。从这里开始,我想从下一个类中的按钮调用getter来添加actionlistener(clicklistener),以在较小的摆动窗口中进一步利用其数据
@SpringBootApplication
public class App
{
@Autowired
Main main;
public static void main( String[] args )
{
SpringApplicationBuilder builder = new SpringApplicationBuilder(App.class);
builder.headless(false);
ConfigurableApplicationContext configurableApplicationContext = builder.run(args);
View view = new View();
}
}
这是实现Vaadin的类。这是我要打电话的吸气剂
@Route("index")
public class Main extends VerticalLayout {
VerticalLayout buttons = new VerticalLayout();
TextField field = new TextField();
Button button = new Button("commit change");
public Main() {
button.addClickListener(buttonClickEvent -> {
if (StringUtils.isNotEmpty(field.getValue())) {
Checkbox checkbox = new Checkbox(field.getValue());
buttons.add(checkbox);
field.setValue("");
}
});
add(
new H1("Control it!"),
buttons,
field,
button
);
}
public TextField getField() {
return field;
}
答案 0 :(得分:1)
我想出了一种避免调用吸气剂的方法
我制作了Gui应用程序,该应用程序也应该从Vaadin中获取一个@Component并将其@Autowired插入Main。这可能是错误的方法,但是可以。
答案 1 :(得分:0)
即使您可以在Main
类中进行自动装配,但如果要将其用作bean,则还需要添加Spring @Component
(或Vaadin的@SpringComponent
)注释。如@UIScope
一样,以返回正确的bean实例。