将手动创建的对象加载到spring上下文
我使用将手动创建的对象加载到spring上下文,spring,spring-boot,Spring,Spring Boot,我使用new操作符创建了一个对象。在Spring中,有没有办法在Spring应用程序上下文中加载这个对象 我做了一些研究,但找不到有效的解决办法。提前感谢。您可以使用Spring的@Configuration类并在其中定义@Bean方法。在该方法中,创建自定义的新对象,并确保返回该对象 @Bean public YourType methodName() { //code here.. return new YourType(); } 将其放入@Configuration类和r
new
操作符创建了一个对象。在Spring中,有没有办法在Spring应用程序上下文中加载这个对象
我做了一些研究,但找不到有效的解决办法。提前感谢。您可以使用Spring的
@Configuration
类并在其中定义@Bean
方法。在该方法中,创建自定义的新对象,并确保返回该对象
@Bean
public YourType methodName() {
//code here..
return new YourType();
}
将其放入@Configuration
类和return new YourType()返回的对象中代码>将注册到您的Spring上下文中。
- 若您在Spring应用程序启动后创建一个对象,并且希望将其注册为Spring的bean,那个么您可以这样做。也就是说,只有在运行时,您才会知道如何创建该对象,或者该对象是由您无法控制的外部框架创建的。我只是不记得那些框架了,有些框架使用了这个工具
感谢您的评论,但在我的例子中,我在运行时从外部文件夹加载类,并使用Jar类加载器创建对象,即我已经创建了对象。我可以把这个对象放在spring上下文中吗?这有什么区别?只需将您从新操作符创建的对象返回到带有@Bean注释的方法中即可。无论您如何获取对象,您是否从REST/XML解压对象,是否通过网络、文件I/O或其他方式接收对象。。这就是为什么我明确地将示例类命名为YourType
。它可以是你想要的任何东西。谢谢。这就是我要找的。
//Get hold of application context, you can autowire it
ConfigurableApplicationContext context;
ServiceX servicex = //This object was created outside spring framework.
//Register it with spring
context.getBeanFactory().registerSingleton("servicex", servicex);
//Above bean is now available as part of spring application context.