DubbのFilterインターフェースを実現して、どのようにspring容器の中のbeanを注入しますか?
1137 ワード
最近のプロジェクトではdubbのfilterを使って前処理の業務をしていますが、Filterインターフェースの種類を引き継いでいます.@Autowiredまたは@Resourceを通じてspring容器に注入できないオブジェクト、例えばTestServiceがあります.次の2つの方法で注入できます.
1.dubboはsetter方式で自動注入する.
自分で先にSprigUtilを実現することができます.
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");