- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目中有以下数据库配置类,我尝试为两个数据源之一配置多个 jdbctemplate 和一个命名 jdbc 模板:
@Configuration
public class DatabaseConfiguration {
@Bean(name = "abcDataSource")
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource abcDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcABC")
@Autowired
public JdbcTemplate abcJdbcTemplate(@Qualifier("abcDataSource") DataSource datasource) {
return new JdbcTemplate(datasource);
}
@Bean(name = "namedJdbcABC")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("abcDataSource") DataSource datasource) {
return new NamedParameterJdbcTemplate(datasource);
}
@Bean(name = "shDataSource")
@ConfigurationProperties(prefix = "spring.shdatasource")
public DataSource shDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcSh")
@Autowired
public JdbcTemplate shJdbcTemplate(@Qualifier("shDataSource") DataSource datasource) {
return new JdbcTemplate(datasource);
}
我似乎已经在 yaml 文件中正确配置了所有内容:
spring:
profiles:
active: dev
output.ansi.enabled: always
shdatasource:
driverClassName: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@sh.database.url:1521:sid
username: test
password: test
datasource:
driverClassName: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@abc.db.url:1521:oll
username: test
password: test
但我收到错误:
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“somedao”的bean时出错:通过字段“namedParameterJdbcTemplate”表达的依赖关系不满足;
由以下原因引起:org.springframework.beans.BeanInstantiationException:无法实例化[javax.sql.DataSource]:工厂方法“abcDataSource”抛出异常;嵌套异常是java.lang.IllegalStateException:找不到支持的数据源类型
如果我配置错误,有人可以告诉我吗?
最佳答案
这样做对我有用:
@Configuration
public class DatabaseConfiguration {
@Bean
@Primary
@ConfigurationProperties("spring.datasource")
public DataSourceProperties abcDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "abcDataSource")
@Primary
@ConfigurationProperties("spring.datasource")
public DataSource abcDataSource() {
return abcDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@ConfigurationProperties("spring.shDataSource")
public DataSourceProperties shDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "shDataSource")
@ConfigurationProperties("spring.shDataSource")
public DataSource shDataSource() {
return shDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean(name = "jdbcABC")
@DependsOn("abcDataSource")
public JdbcTemplate abcJdbcTemplate(@Qualifier("abcDataSource") DataSource abcDataSource) {
return new JdbcTemplate(abcDataSource);
}
@Bean(name = "namedJdbcABC")
@DependsOn("abcDataSource")
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(@Qualifier("abcDataSource") DataSource abcDataSource) {
return new NamedParameterJdbcTemplate(abcDataSource);
}
@Bean(name = "jdbcSh")
@DependsOn("shDataSource")
public JdbcTemplate shJdbcTemplate(@Qualifier("shDataSource") DataSource shDataSource) {
return new JdbcTemplate(shDataSource);
}
}
然后,在我的主类中我注入(inject)了我的bean:
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
@Qualifier("abcDataSource")
DataSource abcDataSource;
@Autowired
@Qualifier("shDataSource")
DataSource shDataSource;
@Autowired
@Qualifier("jdbcABC")
JdbcTemplate abcJdbcTemplate;
@Autowired
@Qualifier("namedJdbcABC")
NamedParameterJdbcTemplate namedParameterJdbcTemplate;
@Autowired
@Qualifier("jdbcSh")
JdbcTemplate shJdbcTemplate;
@Override
public void run(String... strings) throws Exception {
System.out.println(abcDataSource.toString());
System.out.println(shDataSource.toString());
System.out.println(abcJdbcTemplate.toString());
System.out.println(namedParameterJdbcTemplate.toString());
System.out.println(shJdbcTemplate.toString());
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
它按预期工作。
关于java - 使用spring配置多个数据源,包括namedparameterjdbctemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613381/
我们使用的是 Spring 2.6,我们在系统中使用 jdbcTemplate 和 NamedparameterJdbcTemplate,配置如下。 j
我编写了一个方法来使用 NamedParameterJdbcTemplate 检索条目列表: public final Map findAll(final Collection keys) {
我正在尝试在我的 springs 应用程序中查询 sql。现在,如果我的代码包含类似的内容 - String sql="select abc,def from alphabets where char
我正在使用 Java 中的 NamedParameterJdbcTemplate 运行一个简单的 mysql 查询。 问题是我的 java 查询正在为 count 字段返回二进制值,即 1 代表所有非
我正在处理一个问题,该问题涉及编写一个查询以从数据库中获取几千条记录。我将使用的查询将在 WHERE 条件中包含 2 个 IN 子句。 据我所知,这可能是有限的,请纠正我,对于这个用例,我不能使用 j
我正在使用超酷的 jdbcTemplate(更具体地说是 NamedParameterJdbcTemplate)来运行带有 IN 子句的查询。然而,我希望查询的列表是一个枚举,因此我收到错误:“转换中
我是 Spring 新手,正在尝试编写一个使用 NamedParameterJdbcTemplate 的简单测试方法。这是: public String test() { String que
是否有办法利用 NamedParameterJdbcTemplate 而不是使用 SpringJdbcMigration 实现中的标准 JdbcTemplate 创建飞路迁移类? 我需要运行一个升级,
有没有办法设置 Spring 的 NamedParameterJdbcTemplate 对象的批量大小? 我在我的项目中遇到了一些 OutOfMemory 问题,但我能够通过在较小块的循环中调用 Na
在 Spring 的 NamedParameterJdbcTemplate 中。我如何使用 Spring 3.1.x 版查询执行“Select * from Student”以返回列表而不提供任何参数
我正在开发一个需要对 Oracle 数据库进行 JDBC 调用的项目。我已经设置了 UCP 池来与 SpringJDBC 一起使用。我有一个相当简单的查询,我正在执行如下... 从表中选择 *,其中
我想更改 NamedParameterJdbcTemplate 的结果集行为。 (禁用结果集缓存) 例如,使用 postgres jdbc 驱动程序,您可以像这样更改它: conn =
有没有办法从NamedParameterJdbcTemplate返回Optional? 我的查询有时会返回空。所以我想要一种漂亮的方法来检查是否为空。我不想对 EmptyResultDataAcces
我的代码是这样的: NamedParameterJdbcTemplate stmt; String sql = "INSERT INTO ....."; // named = ...; ... st
我正在尝试使用带有 NamedParameterJdbcTemplate 的映射参数调用存储过程(Spring 3.0),但由于某些奇怪的原因,某些值没有传递给存储过程(Oracle 11.2)! 相
在 Spring 的引用文档中,类型“NamedParameterTemplate”被引用为进行批量更新的简单方法: http://docs.spring.io/spring/docs/current
我在 Spring 中使用 NamedParameterJDBCTemplate 并尝试仅选择少数列而不是所有列。但我面临一个错误 - org.SpringFramework.BadSqlGramma
尝试更新表中的多个列值。 我缺少什么,一点帮助! dao 方法就像... dao 类 Plan 的所有字段都填充了适当的数据。 public void updatePlan(Plan plan) {
我正在使用 Spring 框架。使用 NamedParameterJdbcTemplate 时如何设置查询超时?我注意到 JdbcTemplate 有一个 setQueryTimeout(int qu
我在 TomCat 服务器上部署了一个 Spring MVC 项目,但我一直遇到与数据库的连接问题。几个小时后,当用户尝试登录时,他们将遇到 500 错误和此消息: HTTP Status 500 -
我是一名优秀的程序员,十分优秀!