Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Vaadin Spring集成附加组件不起作用_Java_Spring_Vaadin - Fatal编程技术网

Java Vaadin Spring集成附加组件不起作用

Java Vaadin Spring集成附加组件不起作用,java,spring,vaadin,Java,Spring,Vaadin,我正在跨SpringVaadin集成插件使用Spring和Vaadin开发一个应用程序,现在当我在我的主Vaadin UI类中注入服务时,一切都很好,问题是我在其他类中使用这个注释 这是我的服务 @Component @Scope("session") public class MyService { public MyService() { // TODO Auto-generated constructor stub } public String getLabel(){

我正在跨SpringVaadin集成插件使用Spring和Vaadin开发一个应用程序,现在当我在我的主Vaadin UI类中注入服务时,一切都很好,问题是我在其他类中使用这个注释

这是我的服务

@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 work实际上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创建为新的MainPanel;因此,主面板不是SpringBean,因此不会发生任何注入


用带有ptototype示波器的弹簧注射更换主面板,主面板内的任何注射都可以。

Hi。我也有同样的问题。你知道问题出在哪里吗?我已经用另一种方式解决了,如果你想要一些建议,请告诉我如何与你联系Hanks,但我刚刚知道如何处理它。