HI
I am Using Vaadin 7.6.3 with SpringBoot 1.3.6
I have two classes
- SecuredUI extends UI with annotation @SpringUI
- MainPanel extends VerticalLayout
Problem is that @Autowired works inside
SecuredUI
but not in [b]
MainPanel
Here are my class details
class 1)
[/b]SpringBootAutowiredApplication.java
package com.vega;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootAutowiredApplication {
public static void main(String args) {
SpringApplication.run(SpringBootAutowiredApplication.class, args);
}
}
Class 2) SecuredUI
import org.springframework.beans.factory.annotation.Autowired;
import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vega.ui.component.MainPanel;
import com.vega.ui.wrapper.ServiceWrapper;
@SpringUI
public class SecuredUI extends UI {
private static final long serialVersionUID = 1L;
@Autowired
public ServiceWrapper mServiceWrapper;
@Override
protected void init(VaadinRequest request) {
VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
layout.setSpacing(true);
layout.setSizeFull();
Button button = new Button("Button");
button.addClickListener(new ClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void buttonClick(ClickEvent event) {
eventButtonClickd();
}
});
layout.addComponent(button);
MainPanel mainPanel=new MainPanel();
mainPanel.createControls();
layout.addComponent(mainPanel);
setContent(layout);
}
protected void eventButtonClickd() {
try {
mServiceWrapper.getSimpleData(); [b]
//Here It is Autowiring
[/b]
} catch (Exception e) {
e.printStackTrace();
}
}
}
Class 3)
MainPanel
package com.vega.ui.component;
import org.springframework.beans.factory.annotation.Autowired;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.VerticalLayout;
import com.vega.ui.wrapper.ServiceWrapper;
public class MainPanel extends VerticalLayout {
private static final long serialVersionUID = 1L;
@Autowired
private ServiceWrapper mServiceWrapper;
public void createControls() {
VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
layout.setSpacing(true);
Button button = new Button("Other Button ");
button.addClickListener(new ClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void buttonClick(ClickEvent event) {
eventButtonClickd();
}
});
layout.addComponent(button);
addComponent(layout);
}
protected void eventButtonClickd() {
try {
mServiceWrapper.getSimpleData(); [b]
//Here It is Not Autowiring
[/b]
} catch (Exception e) {
e.printStackTrace();
}
}
}
Class 4) ServiceWrapper
package com.vega.ui.wrapper;
import org.springframework.stereotype.Component;
@Component
public class ServiceWrapper {
public void getSimpleData() {
System.out.println(“Entered ServiceWrapper getSimpleData”);
}
}
Do i need to add any annotation for MainPanel also ?