Моя цель - использовать vaadin 7 и интегрировать его с Spring. Я не уверен, почему мой тривиальный бонус Jmessage
является нулевым в классе UprintUI , но передает тест assertNotNull
в мой модульный тест (см. Код ниже)?vaadin7 @Autowired имеет значение UU (работает на JUnit)
@Component
public class Jmessage
{
@Value("Green")
private String baseColor;
public Jmessage()
{
System.out.println("\n\n--Jmessage was invoked \n\n");
}
public String getBaseColor()
{
return baseColor;
}
public void setBaseColor(String baseColor)
{
this.baseColor = baseColor;
}
}
и на уровне пользовательского интерфейса:
@Theme("uprint")
@SpringUI
public class UprintUI extends UI
{
@Autowired
private Jmessage jmessage;
@Override
protected void init(VaadinRequest request)
{
if (jmessage!=null) //always null!!!
System.out.println(jmessage.getBaseColor());
...
}
приложение-контекст имеет
<context:annotation-config />
<context:component-scan base-package="com.uprint" />
Когда я активировать кота, вы можете увидеть сообщение от Jmessage Jmessage was invoked
в консоли, но когда дело доходит до пользовательского интерфейса (UprintUI
), оно равно нулю.
Теперь я пробовал это tutorial (от vaadin), и он работает. Они используют
@SpringComponent
@UIScope
Когда я помещаю эти обозначения в свой Jmessage - ничего, все равно null.
Любая идея, почему мои бобы нулевые?
Мой JUnit (работы)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=Jmessage.class)
public class JmessageTest
{
@Autowired
private Jmessage jmessage;
@Test
public void jmessageNotNull()
{
assertNotNull(jmessage);
}
}
Являются ли 'Jmessage' и' UprintUI' в пакете 'com.uprint' (или его дополнительным пакетом)? – DaveyDaveDave
Какие пакеты у них? Это должно быть где-то упоминается атрибутом 'base-package =" com.uprint "' 'context: component-scan' – DaveyDaveDave
, который находится по адресу: com.uprint.beans и пользовательскому интерфейсу в com.uprint.view – adhg