DubbのFilterインターフェースを実現して、どのようにspring容器の中のbeanを注入しますか?

1137 ワード

最近のプロジェクトではdubbのfilterを使って前処理の業務をしていますが、Filterインターフェースの種類を引き継いでいます.@Autowiredまたは@Resourceを通じてspring容器に注入できないオブジェクト、例えばTestServiceがあります.次の2つの方法で注入できます.
1.dubboはsetter方式で自動注入する.
	private TestService testService;
	
	public void setTestService(TestService testService) {
		this.testService = testService;
	}
2.第二の種類は、Application Contectで取得する.
自分で先にSprigUtilを実現することができます.
@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");