2017-12-20 27 views
0

Spring 5は、GenericApplicationContext#registerBeanを使用してプログラムによる登録を行います。残念なことに、このメソッドはClassしか受け付けず、ParameterizedTypeではなく、汎用の型付きのBeanを取得できます。Spring 5:プログラムで汎用Beanを登録します。

ジェネリックBeanの登録方法は他にありますか?

答えて

0

プログラムで豆を登録するためのいくつかのファクトリメソッドがあります。

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");  
     }  
    } 

} 
関連する問題