更新
我发现了一个可疑的日志条目:
org.springframework.beans.factory.wiring.BeanConfigurerSupport:
BeanFactory has not been set on BeanConfigurerSupport: Make sure this configurer runs in a Spring container.
Unable to configure bean of type [com.mycompany.projectname.App]. Proceeding without injection.
/更新
我正在开发一个 Vaadin + Spring 应用程序,我希望使用 JavaConfig。
根据一些教程,我分别构建了它们,但是当我合并它们时,我得到了以下内容(参见第一个代码片段 App.java - logger.info(">>mainWindow is null");)
app postconstruct ---------
mainWindow is null
我尝试了几种配置变体,例如在 applicationContext 等中。
所以我的问题是:我怎样才能找出真正的问题?
提前感谢您的时间和精力。
乔巴
应用程序.java
@Configurable
public class App extends Application
{
public MainWindow mainWindow;
public MainWindow getMainWindow(...
public void setMainWindow(Main....
@PostConstruct
public void init()
{
logger.info(">>app postconstruct --------- ");
if(mainWindow==null) logger.info(">>mainWindow is null");
else logger.info(">>mainWindow is not null");
}
AppConfig.java
@Configuration
public class AppConfig {
...
@Bean
public MainWindow mainWindow(){
return new MainWindow();
}
....
}
web.xml 基于此!教程链接!
...
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.mycompany.projectname.config.AppConfig</param-value>
</context-param>
...
<servlet>
<servlet-name>Vaadin Application Servlet</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>com.mycompany.projectname.App</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.mycompany.projectname.config.AppConfig</param-value>
</init-param>
</servlet>