gpt4 book ai didi

java - Vaadin Spring 集成插件不起作用

转载 作者:行者123 更新时间:2023-12-01 04:36:44 25 4
gpt4 key购买 nike

我正在跨 SpringVaadinIntegration 附加组件使用 Spring 和 Vaadin 开发一个应用程序,现在当我在主 Vaadin UI 类中注入(inject)服务时一切正常,问题是我在其他类中使用此注释

这是我的服务

@Component
@Scope("session")
public class MyService {

public MyService() {
// TODO Auto-generated constructor stub
}

public String getLabel(){
return "this is my label";
}

public void saveUser(Utente utente){
System.out.println("save user");
}

}

这是我的主要 Vaadin UI 类

@Component
@Scope("prototype")
public class MyUI extends UI
{

@Autowired
private transient ApplicationContext applicationContext;

@Autowired
private MyService myService;

private MainPanel mainPanel;

private VerticalLayout verticalLayout;




@Override
protected void init(VaadinRequest request) {
// TODO Auto-generated method stub


verticalLayout = new VerticalLayout();

mainPanel = new MainPanel();
verticalLayout.addComponent(mainPanel);
setContent(verticalLayout);


}
}

在 MyUI 中,@autowired 工作实际上 myservice 不为 null,而在主面板中则不起作用

@Component
public class MainPanel extends CustomComponent implements View {

private VerticalLayout mainLayout;

private Button button;

@Autowired
MyService secondService;

public MainPanel() {
buildMainLayout();
setCompositionRoot(mainLayout);

// TODO add user code here
}

@AutoGenerated
private VerticalLayout buildMainLayout() {
// common part: create layout
button = new Button();
mainLayout = new VerticalLayout();
mainLayout.addComponent(button);

button.addClickListener(new Button.ClickListener() {

@Override
public void buttonClick(ClickEvent event) {
// TODO Auto-generated method stub
secondService.saveUser(new Utente());

}
});


return mainLayout;
}
}

在这里,我尝试保存用户,服务为空。我做错了什么?

最佳答案

您已将 MainPanel 创建为“new MainPanel();”所以主面板不是 Spring Bean,因此不会发生任何注入(inject)。

用Spring注入(inject)替换这个MainPanel,可能是ptototype范围,并且MainPanel内的任何注入(inject)都可以。

关于java - Vaadin Spring 集成插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com