我的自动连接数据源在Spring中返回空,这是为什么? [英] My autowired DataSource is returning null in Spring, how come?

查看:27
本文介绍了我的自动连接数据源在Spring中返回空,这是为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试设置我的数据源以获取连接,但它在conn=dataSource.getConnection();上返回空值。以下是我的DAO中的相关代码:

@Autowired
    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }
@Override
    public Acronym findByAcronymId(int acronymId) {
        String sql = "SELECT * FROM acronym_table WHERE acronymId = ?";

        Connection conn = null;

        try {
            conn = dataSource.getConnection();

以下是数据库Bean:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id = "dataSource"
    class = "org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/db_name?useSSL=false" />
        <property name="username" value="username" />
        <property name="password" value="password" />
    </bean>

</beans>

以下是缩写Bean:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id = "acronymDAO" class ="com.user.dao.JdbcAcronymDAO">
        <property name = "dataSource" ref ="dataSource"/>
    </bean>



</beans>

推荐答案

尝试移动字段本身上的@Autowired批注,如下所示:

@Autowired
private DataSource dataSource;

或将其放在构造函数级别,而不是放在setter级别。

我认为数据源Bean不是自动连接的,因为您在setter级别使用它,而setter级别从未被调用。

这篇关于我的自动连接数据源在Spring中返回空,这是为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆