實現dubbo的Filter接口,如何注入spring容器裏的bean

最近項目裏用到dubbo的filter來做一些預處理的業務,但發現繼承了Filter接口的類,無法通過@Autowired或者@Resource來注入spring容器裏的對象,比如有個TestService,可以通過下面兩種方式注入進來

1.dubbo通過setter方式自動注入

	private TestService testService;
	
	public void setTestService(TestService testService) {
		this.testService = testService;
	}

2.第二種,通過ApplicationContext的方式來獲取

可以自己先實現一個SpringUtil實現ApplicationContextAware接口,如下

@Component
public class SpringUtil implements ApplicationContextAware {

	private static ApplicationContext applicationContext;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		if (SpringUtil.applicationContext == null) {
			SpringUtil.applicationContext = applicationContext;
		}
	}

	// 獲取applicationContext
	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	// 通過name獲取 Bean.
	public static Object getBean(String name) {
		return getApplicationContext().getBean(name);
	}

}

然後調用這個工具類來獲取對象

TestService testService = (TestService) SpringUtil.getBean("testService");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章