<!-- Datasource configuration -->
<beans:bean id="dataSource" name="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
<beans:property name="url" value="" />
<beans:property name="username" value="" />
<beans:property name="password" value="" />
</beans:bean>
@ImportResource(dispatcher-servlet.xml)
@Bean
@Primary
public EmbeddedDatabase dataSource() {
EmbeddedDatabaseBuilder databaseBuilder = new EmbeddedDatabaseBuilder();
databaseBuilder.setName("testDB");
databaseBuilder.setType(EmbeddedDatabaseType.H2);
return databaseBuilder.build();
}
@ContextConfiguration(classes = config.class)
@WebAppConfiguration
// Test
[信息]用不同的定义重写bean“data source”的bean定义:替换[Root bean:class[null];scope=;abstract=false;lazyinit=false;autowiremode=3;dependencycheck=0;autowirecandide=true;primary=true;factorymethodname=config;factorymethodname=dataSource;initmethodname=null;destroymethodname=(inefenced);在...中定义[Generic andidate=true;primary=false;factorybeanname=null;factorymethodname=null;initmethodname=null;destroymethodname=null;在URL[dispatcher-servlet.xml]中定义]
似乎忽略了@primary
注释。
为什么?解决办法是什么?
我不确定混合不同的配置类型是个好主意。如果我读到这种配置,我可能会挣扎,相信我,我实际上做了很多。
但是,作为您问题的答案,XML优先于注释。因此,尝试在XML中声明bean,或者只在应用程序中使用注释。
您可以尝试使用@qualifier
注释。也许像这样:
@Bean
@Qualifier("my_qualifier")
public EmbeddedDatabase dataSource() {
EmbeddedDatabaseBuilder databaseBuilder = new EmbeddedDatabaseBuilder();
databaseBuilder.setName("testDB");
databaseBuilder.setType(EmbeddedDatabaseType.H2);
return databaseBuilder.build();
}
并使用以下方法注入:
@Autowired
@Qualifier("my_qualifier")
EmbeddedDatabase database;
但我仍然不确定它是否有效。
附言。如果尚未设置自动批注扫描,则应将其添加到XML中。从你提到的评论来看,它是过时的,但它不是。
<context:component-scan base-package="your.base.package" />
我按照本教程在Java中配置Spring批处理作业。它通过使用一个接口为多个数据源做准备,然后由每个数据源实现该接口。 这是我目前所掌握的: PostgreSQLConfig.java jobconfig.java 通过对我的MySQLConfig使用注释,我希望使用MySQLConfig bean。相反,我得到的是:
在这件事上有困难。。。 使用XLS,一切都能100%正常工作(我在我的ASP.NET应用程序上使用NPOI): 需求发生了变化,新的Excel模板使用了XLSX的功能,因此它现在是<代码>模板。xlsx。我一直在使用NPOI 2.0,我看到它支持XLSX(使用XSSF而不是HSSF)。我这样更改了代码(这里只显示了差异-其他内容都是一样的): 在工作簿的第行抛出异常。写入(ms) : 我可能做错了
我的配置如下所示: 在应用程序上下文启动期间,我会在日志中收到如下内容: [INFO][]重写bean“ReconficationJob”的bean定义:替换[Generic bean:class[org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean];scope=;abstract=false;lazyIni
我试图在测试配置中使用@primary声明的测试期间覆盖Spring bean。一个声明位于src/main/java路径中,另一个声明位于src/test/java路径中。 从日志来看: o.s.b.f.s.DefaultListableBeanFactory-用不同的定义重写bean“SQS ConnectionFactory”的bean定义:替换[根bean:class[null];scop
我从以下来源下载了应用程序https://github.com/springframeworkguru/spring5-mvc-rest/tree/vendor-api,但Mapstruct遇到了问题。 我认为在Intellij注释中@mapper不为mapper创建bean。我没有改变John GitHub的代码。你知道吗?我试图将生成的路径源更改为目标,但这没有帮助,谢谢你的帮助。
在JavaEE6中,有一个内置的bean类型可供注入,如