春天云与RDS,你好世界

时间:2015-08-21 08:43:28

标签: amazon-web-services spring-boot spring-cloud rds

我是Spring Cloud的新手,想写一个简单的#34; hello world" RDS计划。

我的配置存储在xml配置中,如下所示。

<aws-context:context-credentials>
    ...
</aws-context:context-credentials>
<aws-context:context-region region="ap-southeast-1" />

<jdbc:data-source db-instance-identifier="amazonrds"
    password="${password}" read-replica-support="false">
    <jdbc:pool-attributes initialSize="1"
        defaultCatalog="Records" testOnBorrow="true" validationQuery="SELECT 1" />
</jdbc:data-source>

我有一个简单的DB服务类,其内容如下所示。

@Service
public class JdbcRecordService implements RecordService {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public JdbcRecordService(DataSource datasource) {
        this.jdbcTemplate = new JdbcTemplate(datasource);
    }

    @Override
    @Transactional(readOnly = true)
    public List<Record> all() {
        return this.jdbcTemplate.query("SELECT * FROM Records", new RowMapper<Record>() {
            @Override
            public Record mapRow(ResultSet resultSet, int rowNum) throws SQLException {
                return new Record(resultSet.getString("Name"), resultSet.getString("Value"));
            }
        });
    }

    @Override
    @Transactional
    public void store(Record record) {
        this.jdbcTemplate.update("INSERT INTO Records(Name, Value) VALUES (?,?)", record.getKey(), record.getValue());
    }
}

Application类就是这样。

@SpringBootApplication
@EnableAutoConfiguration
@Configuration
@ComponentScan
@ImportResource("classpath:aws-config.xml")
public class SpringBootAwsApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootAwsApplication.class, args);
    }
}

我知道我在这里缺少一些连接器,但我无法弄清楚它是什么。目前,它在构建时会抛出此错误。

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdbcRecordService' defined in file [C:\Users\codev\gitlab\springaws\target\classes\base\rds\JdbcRecordService.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.apache.tomcat.jdbc.pool.DataSource]: : No qualifying bean of type [org.apache.tomcat.jdbc.pool.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.apache.tomcat.jdbc.pool.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

它基本上说,没有bean候选者可以使用DataSource参数自动装配构造。我在这里缺少什么?

编辑:我的问题只是通过重新排序我的POM.xml中的依赖来解决。我仍然不知道哪个特定的依赖冲突导致了这个问题,但只是将aws-java-sdk移动到依赖列表的顶部修复了我的问题。

0 个答案:

没有答案
相关问题