dubbo中不用Controller怎么使用@Inject.BY_NAME

超凡程序猿 发布于 2016/08/28 09:51
阅读 736
收藏 0

@JFinal 你好,想跟你请教个问题:dubbo中不用Controller怎么使用@Inject.BY_NAME,我在server端做了一个定时器,但业务都在service中,api层定了接口,怎么做才能注入这个service呢

加载中
0
JFinal
JFinal

    建议两种方案,一是先做一个 controler,仍然使用 @Inject.BY_NAME 把功能做好,然后使用 HttpKit.get("http://localhost/xxx") 的方式进行访问。

    另一种是使用 jfinal 的业力层 AOP,然后也可以使用 @Inject.BY_NAME,可能要稍微改造一点点,或许直接就可用。原理上与注入到 controller 是一样的,注意要使用 Duang.duang(MyService.class) 先进行增强,具体见 jfinal 手册,在此下载:http://www.jfinal.com/

    

浪心love
@JFinal 我也遇到这个问题了 这块不是很明白。。麻烦波总耐心解答一下
超凡程序猿
超凡程序猿
如果用第二种方案,是不是要重新写一个插件啊,将ApplicationContext写入自定义的拦截器?
0
浪心love

其实不需要@Inject.BY_NAME注解

IocInterceptor 增加个get方法:

public static ApplicationContext getCtx() {
		return ctx;
	}

业务层使用方法:

public class DubboSupport {
	
	private static BlogService blogService = (BlogService) IocInterceptor.getCtx().getBean("blogService");
	
	public static void del(String id){
		
		blogService.deleteById(id);
	}
}

上面是简单的实现方法 可以自己封装个注解类!


返回顶部
顶部