我有一个jsp页面,需要java代码。
jsp中的这段java代码需要一个服务类。
现在我的服务类是java,使用spring DI和DAO创建,其他东西使用Spring注入(inject)到服务类中。
但是当我想在jsp中使用它时,我该如何让spring为我提供jsp内部的服务对象呢?
JSP -> Java 代码 -> 服务 -> DAO
我使用 struts2 和 spring DI 作为框架。
最佳答案
您可以创建一个由 Spring 管理并感知应用程序上下文的类。此类将从代码中的任何位置通过静态方法提供 Spring bean。
@Service
public class SpringBeansProvider implements ApplicationContextAware {
static private ApplicationContext applicationContext;
public static <T> T getBean(String beanName, Class<T> type) {
return applicationContext.getBean(beanName, type);
}
@Override
public void setApplicationContext(ApplicationContext context) {
applicationContext = context;
}
}
从代码中的任何位置,使用 SpringBeansProvider.getBean("myBean", MyBean.class)
。是的,这打破了bean注入(inject)的概念,并混合了静态和非静态方法的使用,但这种任务总是会导致那些不公平的事情。
关于JSP 中的 Spring 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073190/