猿问

没有类型为“org.springframework.jdbc.core.JdbcTemplate”

我正在https://developer.ibm.com/tutorials/spring-with-db2-via-jdbc/上运行tutorial.example, 但无法让它工作,我不断收到以下错误,并且不确定如何修复。

没有“org.springframework.jdbc.core.JdbcTemplate”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}'

教程中没有提到与设置 bean 相关的内容,所以我不确定我是否应该中断它来修复它,或者我只是犯了一个错误。

我的应用程序类 -

@SpringBootApplication

public class SBApplication {

    public static void main(String[] args) {

        SpringApplication.run(SBApplication.class, args);

    }

 }

休息控制器示例 -


package application.rest.v1;


import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.http.HttpStatus;

import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;

import java.util.List;

import main.java.application.jdbc.*;


@RestController

public class Example {

    @Autowired

    JdbcTemplate jdbcTemplate;


    @RequestMapping("test")

    public @ResponseBody ResponseEntity<String> example() {

        List<String> list = new ArrayList<>();

        list.add("Table data...");

        jdbcTemplate.query(

                "SELECT * FROM things", new Object[]{},

                (rs,rowNum) -> new Things(rs.getLong("id"), rs.getString("name")))

                .forEach(thing -> list.add(thing.toString()));

        return new ResponseEntity<String>(list.toString(), HttpStatus.OK);

    }

}

application.properties -


spring.datasource.url=jdbc:imdb://xxxx.xxx.xxxx/xxxx

spring.datasource.username=xxxxxxx

spring.datasource.password=xxxx

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

另外,我没有连接到教程中建议的 DB2 实例,而是连接到我自己的实例。


哆啦的时光机
浏览 148回答 1
1回答

一只甜甜圈

我相信您缺少应该JdbcTemplate在配置中配置的部分。当您使用 时,您可以通过类上的注释spring boot来实现它。@Configuration您的典型配置如下所示@Configurationpublic class WebAppConfig {&nbsp; &nbsp; @Bean(name = "appDataSource")&nbsp; &nbsp; @Primary&nbsp; &nbsp; @ConfigurationProperties(prefix = "spring.datasource")&nbsp; &nbsp; public DataSource dataSource() {&nbsp; &nbsp; &nbsp; &nbsp; return DataSourceBuilder.create().build();&nbsp; &nbsp; }&nbsp; &nbsp; @Bean(name = "applicationJdbcTemplate")&nbsp; &nbsp; public JdbcTemplate applicationDataConnection(){&nbsp; &nbsp; &nbsp; &nbsp; return new JdbcTemplate(dataSource());&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答