我有一个SpringBoot
应用程序,它使用@Component
注释来创建bean,而不是旧的基于XML的applicationContext
文件。
我需要使用一个使用基于XML的bean的库。我需要这些bean在我的应用程序中初始化并可用,否则我最终会重写相当多的代码。
我已经尝试使用@ComponentScan来查找它们,但正如预期的那样,由于类没有用@Component注释,因此无法找到它们。我尝试过使用@ImportResource,如这里所述,但没有成功。
所以问题是,当我的应用程序不使用XMLapplicationContext
文件时,如何在jar依赖项中实例化bean(这些bean是以XML样式定义的),然后在我的应用程序中使用它们?
注:
我需要导入的库非常旧,让它使用组件注释的可能性几乎为0。无论我改变什么,都必须在我的项目中。
我知道开始使用applicationContexts
可能会奏效,但我真的不想使用基于XML的bean。
下面是SpringBootApplication类,以防它可能有用:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyApp extends SpringBootServletInitializer {
public static void main(final String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
您可以让Spring Boot组件扫描直接在其包中查找这些JAR,如下所示:
@ComponentScan(basePackages = {"org.thirdparty.thirdpartyjar"})
我相信这个问题/答案与你的类似。
我认为应该使用ClassPathXmlApplicationContext将JAR文件中的类作为Springbean加载。您可能需要正确地计算bean的依赖项,并将它们作为属性添加到主bean中。否则,可能会出现一些运行时异常。
示例代码:-
ApplicationContext context
= new ClassPathXmlApplicationContext(
"classpathxmlapplicationcontext-example.xml");
BeanClassName bean = context.getBean("beanName", BeanClassName.class);
我有一个控制器 服务接口 我想在我的控制器中使用@autowired来使用该服务,但当我运行应用程序时,我得到以下错误 org.springframework.beans.factory.beanCreationException:创建名为“demo application”的bean时出错:注入autowired依赖项失败;嵌套异常为org.SpringFramework.Beans.Facto
我有以下类 : 我想按如下方式使用它: 因此,通过扩展已经注入依赖项的超类,我希望在其子类中访问它。 我尝试了许多不同的方法,甚至将超类作为组件: 但是,<code>仍然是这样。fetchApi为,即使在超类中也是如此。
Apache ShardingSphere 在数据库治理模块使用 SPI 方式载入数据到配置中心和注册中心,进行实例熔断和数据库禁用。 目前,Apache ShardingSphere 内部支持 ZooKeeper,Etcd等常用的配置中心/注册中心。 此外,开发者可以使用其他第三方组件,并通过 SPI 的方式注入到 Apache ShardingSphere,从而使用该配置中心和注册中心,实现数
问题内容: 我在理解以下代码为何不起作用时遇到问题。 我有以下项目结构: 哪里 和 哪里 我将所有内容初始化为: 一旦编译发生,我得到以下错误: 错误:(11,1)错误:com.test.CComponent(未作用域)可能未引用作用域绑定:@Provides @Singleton com.test.XXX com.test.CCModule.provideXXX() 我的目标是让一个组件从其他组
我尝试过在IntelliJ的project structure下通过库添加JAR,并只在根目录下的libs文件夹中添加JAR。首先,我提供了绝对路径,但后来我将其更改为${basedir},因为绝对路径没有映射为docker容器上的卷。有什么方法可以将外部jar与项目jar打包,以便在docker容器中使用它?
SOFARPC 使用了一些三方开源组件,他们分别是: 一些主要依赖: Netty under Apache License 2.0 SLF4j under the MIT License SOFA Bolt under Apache License 2.0 Javassist under Apache License 2.0 Resteasy under Apache License 2.0 SO