pho*_*nix 2 java xml spring spring-mvc
我尝试在这里搜索,但我找不到解决方案.我有一些XML元数据,如下所示.
<bean class="javax.servlet.ServletContext" id="servletContext" />
<bean class="com.abc.ProductController">
<property name="servletContext" ref="servletContext"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
使用这种配置,我得到一个例外,说这"javax.servlet.ServletContext"是一个接口,它无法创建一个带有id的bean servletContext.ProductController类在某个jar中,我无法修改,但我希望它在我的应用程序中作为bean.它具有自动装配的ServletContext属性.
如果需要ServletContext在XML配置spring应用程序中创建bean ,则可以使用BeanFactory<ServletContext>实现ServletContextAware
public class ServletContextFactory implements FactoryBean<ServletContext>,
ServletContextAware{
private ServletContext servletContext;
@Override
public ServletContext getObject() throws Exception {
return servletContext;
}
@Override
public Class<?> getObjectType() {
return ServletContext.class;
}
@Override
public boolean isSingleton() {
return true;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以声明:
<bean class="org.app.ServletContextFactory" id="servletContext" />
<bean class="com.abc.ProductController">
<property name="servletContext" ref="servletContext"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12182 次 |
| 最近记录: |