JSP 中的 Spring 注入(inject)

标签 spring jsp dependency-injection struts2

我有一个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/

相关文章:

java - 类未注入(inject) IEclipseContext

java - 仅在不使用 sysout 时才延迟初始化角色集合失败

java - 使用 RestTemplate 设置安全 cookie

json - 将 JSON 发布到 REST API

java - 在 jsp 上列出 vector 数据

javascript - 如何避免空指针异常?

java - 将范围与 HttpSessionListener 连接

java - 集成测试 Spring SseEmitters

java - 自动生成的邮件

android - 错误 : cannot find symbol class DaggerAppComponent version conflict with other dependencies