我有一个需要java代码的jsp页面。
这个jsp里面的java代码需要一个服务类。
现在我的服务类是使用 Spring DI 和 DAO 创建的 java,其他东西是使用 Spring 注入到服务类中的。
但是当我想在jsp中使用它时,我应该如何要求spring在jsp中为我提供服务对象?
JSP -> Java 代码 -> 服务 -> DAO
我使用 struts2 和 spring DI 作为框架。
我有一个需要java代码的jsp页面。
这个jsp里面的java代码需要一个服务类。
现在我的服务类是使用 Spring DI 和 DAO 创建的 java,其他东西是使用 Spring 注入到服务类中的。
但是当我想在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 注入的概念,混淆了静态和非静态方法的使用,但是这样的任务总是会导致那些不公平的事情。
您不会注入 JSP 页面;您注入动作类并使用正常的 S2 机制进行访问。