Spring5提供了使用GenericApplicationContext#registerBean的编程注册。不幸的是,为了能够检索泛型类型化bean,该方法只接受Class而不接受ParameterizedType。
有没有其他方法可以注册泛型bean?
发布于 2017-12-24 21:58:13
有几个工厂方法可用于以编程方式注册bean。
您还可以从ConfigurableApplicationContext中使用ConfigurableBeanFactory,并使用registerSingleton来注册类类型的bean。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext=SpringApplication.run(Application.class, args);
ConfigurableBeanFactory beanFactory=applicationContext.getBeanFactory();
beanFactory.registerSingleton("testBean", new Application().new TestClass<String>());
TestClass<String> testObj=applicationContext.getBean(TestClass.class);
testObj.testMethod("hello");
}
public class TestClass<T>{
public void testMethod(T t) {
System.out.println("Test Method");
}
}
}https://stackoverflow.com/questions/47915493
复制相似问题