首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在web服务中使用spring依赖项注入

如何在web服务中使用spring依赖项注入
EN

Stack Overflow用户
提问于 2014-11-10 04:17:05
回答 1查看 89关注 0票数 0

我们有一个web服务,我们正在尝试使用Spring重新实现它。

下面是它的工作原理:在控制器中web服务接收到的每个请求上,基于页面名称,我们实例化一个处理程序,以获得可以处理请求的任务列表。

代码语言:javascript
复制
interface Handler {
    List<Task> getTaskList();
}

class Controller {
    //Inject handler
    Handler handler;

    processrequest(){
        handler.getTasklist() -> execute
    }
}

我们有大约5-6个这样的处理程序,我们希望根据请求分页将相应的处理程序注入控制器。

做这件事最好的方法是什么?如何在飞行中注入不同的处理程序?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 12:57:48

1-在配置中创建处理程序(或注释服务实现):

代码语言:javascript
复制
@Bean
public Handler handler1() {
    // return handler 1
}

@Bean
public Handler handler2() {
    // return handler 2
}

ApplicationContext注入控制器。根据请求映射检索所需的服务。

代码语言:javascript
复制
class Controller {

    @Autowired
    private ApplicationContext context;

    @RequestMapping(value = "/handler1")
    processrequest(){
        Handler handler = context.getBean("handler1");
        handler.getTasklist() -> execute
    }

    @RequestMapping(value = "/handler2")
    processrequest(){
        Handler handler = context.getBean("handler2");
        handler.getTasklist() -> execute
    }
}

2b-或者,创建多个控制器,并注入适当的处理程序。

代码语言:javascript
复制
@RequestMapping("/handler1")
class Controller1 {

    @Autowired
    @Qualifier("handler1")
    private Handler handler;

    processrequest(){
        handler.getTasklist() -> execute
    }
}

@RequestMapping("/handler2")
class Controller2 {

    @Autowired
    @Qualifier("handler2")
    private Handler handler;

    processrequest(){
        handler.getTasklist() -> execute
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26836674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档