0 0

spring获取数据源dataSource为空null0

先上代码:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
    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-3.2.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.2.xsd
	http://www.springframework.org/schema/mvc
	http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx-3.2.xsd" >

    <mvc:annotation-driven /> 
    
    <context:annotation-config/>
    
    <context:component-scan base-package="com.memo.controller" />
    <context:component-scan base-package="com.memo.dao" />

	<mvc:resources mapping="/img/**" location="/images/" />  
	<mvc:resources mapping="/js/**" location="/javascript/" />  
	<mvc:resources mapping="/css/**" location="/css/" /> 
	<mvc:resources mapping="/html/**" location="/html/" /> 
	
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <property name="driverClassName">  
            <value>com.mysql.jdbc.Driver</value>  
        </property>  
        <property name="url">  
            <value>jdbc:mysql://127.0.0.1:3306/memo</value>  
        </property>  
        <property name="username">  
            <value>root</value>  
        </property>  
        <property name="password">  
            <value>123456</value>  
        </property>  
    </bean>  
    
	<bean id="dataBean" class="com.memo.dao.ConnectionFactory">  
        <property name="dataSource">  
            <ref bean="dataSource"/>  
        </property>  
    </bean>  
	 


    <!-- 视图解析器,在请求时模型视图名称添加前后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix"><value>/html/</value></property>
        <property name="suffix"><value>.jsp</value></property>
    </bean>
    
	
</beans>

 dao中的一个Test.java类:

private static final Logger log =  Logger.getLogger(ConnectionFactory.class);
	
	private DataSource dataSource;  
    
    public void setDataSource(DataSource dataSource) {  
        this.dataSource = dataSource;  
    }  
    public DataSource getDataSource(){
    	return this.dataSource;
    }
	
	public void query()throws Exception{
		log.info("dataSource:"+dataSource);
		Connection conn = dataSource.getConnection();
		System.out.println("conn:"+conn);
	}
	public static void main(String[] args) throws Exception{
		new ConnectionFactory().query();
	}

 这个Test类中一直不能获取dataSource,dataSource为空,但是如果不用配置文件,直接在Test类中新建dataSource设置参数如:

dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/memo");
dataSource.setUsername("root");
dataSource.setPassword("123456");
Connection conn = dataSource.getConnection();

就可以获得dataSource,请各位帮帮我,这个问题是什么引起的,该怎么解决,谢谢!

jar包截图:

 

2014年5月04日 23:51
  • 大小: 371.7 KB

1个答案 按时间排序 按投票排序

0 0

你的Test类中的dataSource应该需要从ConnectionFactory这个类中获取的。
因为你xml中只对ConnectionFactory这个类中的dataSource进行了注入,所以你Test中的dataSource是null。
而且你的Test类中log写的也不对
private static final Logger log =  Logger.getLogger(Test.class);。

2014年5月07日 09:49

相关推荐

    spring boot多数据源配置

    在Spring Boot应用中,多数据源配置是一项关键的技术,它允许我们同时管理多个数据库,比如主库和从库,或者不同类型的数据库。本教程将详细阐述如何在Spring Boot项目中实现这一功能,从数据源配置、实体管理到...

    SpringBoot配置多数据源实现动态切换数据源

    SpringBoot实现多数据源主要依靠Spring的`@Configuration`和`@DataSourceConfiguration`注解,以及Spring JDBC的`DataSource`接口。下面是一个基本的配置示例: ```java @Configuration public class ...

    基于注解和Spring的多数据源配置和使用

    在Spring中,多数据源配置通常涉及以下几个关键步骤: 1. **数据源配置**:创建多个DataSource对象,每个对象对应一个数据库连接。可以使用`org.springframework.jdbc.datasource.DriverManagerDataSource`或`...

    Spring 动态切换数据源

    【Spring 动态切换数据源】是一种在Spring框架中实现的应用程序能够在运行时根据需求动态选择数据源的技术。这种功能对于多数据库环境或者需要对不同数据源执行操作的系统非常有用,例如数据聚合、报表生成等场景。 ...

    Spring Boot 2.0多数据源配置方法实例详解

    在配置读数据库的数据源时,我们需要创建一个名为 `datasource-reader` 的 Bean,用于读取数据。该 Bean 的配置包括数据库的 URL、用户名、密码、驱动类名等信息。例如: ``` datasource-reader: type: ...

    【预习资料】Spring Boot 多数据源动态配置1

    在Spring Boot应用中,多数据源的动态配置是一项重要的任务,尤其对于那些需要处理多个数据库的应用来说。在本文中,我们将深入探讨如何实现这一功能,包括依赖管理、数据库创建、数据源配置以及测试代码的编写。 ...

    Spring3.2.3+Quartz2.2 整合配置

    # 数据源配置 org.quartz.dataSource.myDS.jndiURL=jdbc:mysql://localhost:3306/quartzdb org.quartz.dataSource.myDS.user=root org.quartz.dataSource.myDS.password=root ``` 接下来,在Spring的配置文件(如`...

    SpringBoot整合Oracle数据库使用双数据源

    这里,`@Primary`注解用于标记主数据源,Spring会默认使用这个数据源。`@ConfigurationProperties`允许我们将YAML配置直接映射到DataSource对象。 然后,我们需要创建两个数据源的事务管理器,并指定对应的数据源:...

    SpringBoot多数据源配置(方式二:在代码中动态切换需要使用哪个数据源).docx

    在实际的Spring Boot项目开发过程中,通常我们会为项目配置一个主要的数据源,以便于项目的正常运行与数据库交互。但在某些复杂的业务场景下,比如需要同时操作两个或多个数据库(如本地数据库与第三方系统的数据库...

    Spring(AbstractRoutingDataSource)实现动态数据源切换示例

    【Spring 动态数据源切换】使用 `AbstractRoutingDataSource` 的详细实现在处理多数据库环境时,Spring 提供了一个强大的工具 `AbstractRoutingDataSource`,它允许我们根据特定条件动态地切换数据源。本文将深入...

    详解基于spring多数据源动态调用及其事务处理

    在基于Spring的多数据源动态调用机制中,我们需要在Dao层中提供一个DataSource选择器,来确定到底是调用哪个数据源。我们可以通过在Dao层中提供一个公共父类,保持有多个数据源的连接。例如,我们可以使用iBatis保持...

    java设置Sping的dataSource的参数信息

    2. **Spring中的数据源ID**:在Spring容器中,数据源的ID被设置为`dataSource`,并且其实现类为`org.apache.commons.dbcp.BasicDataSource`。 ### 四、结论 通过以上介绍,我们可以看出,使用Java代码动态地设置...

    spring多数据源配置实现方法实例分析

    在实际开发中,我们经常会遇到多数据源配置的问题,而Spring框架提供了多种方式来实现多数据源配置。今天,我们将从实例出发,探索Spring多数据源配置实现方法的实例分析。 多数据源配置的必要性 在实际开发中,...

    详解Spring关于@Resource注入为null解决办法

    在使用 Spring 框架时,经常会在 DAO 层使用 @Repository 注解标注的类,来注入数据源对象。例如: @Repository public class UserDaoImpl implements UserDao { @Resource ComboPooledDataSource dataSource; ....

    SpringBoot如何在运行时动态添加数据源

    在上面的代码中,我们使用了 ThreadLocal 来存储当前的数据源,并提供了 setDataSource() 和 getDataSource() 两个方法来设置和获取当前的数据源。在 determineTargetDataSource() 方法中,我们返回当前的数据源。 ...

    多数据源的动态切换.docx

    6. **Spring配置**:在Spring配置文件中配置多个数据源以及动态数据源的实现类。 - 数据库配置示例: ```xml &lt;bean id="masterDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource...

    Spring學習筆記DEMO代碼(二)

    压缩包文件名为“Spring_0600_DataSource”,这表明重点是Spring中的数据源管理,即如何配置和使用Spring来管理数据库连接。在Spring中,数据源是应用程序与数据库交互的关键组件,它负责创建、管理和回收数据库连接...

    spring 配置jndi

    下面我们将深入探讨如何在Spring中配置JNDI数据源。 首先,了解JNDI的基本概念。JNDI是一个接口,提供了在命名和目录服务中查找和管理对象的API。在Java应用服务器中,JNDI通常用于查找数据源,这些数据源已经预先...

    springboot 多数据源的实现(最简单的整合方式)

    因此,本文将介绍 SpringBoot 多数据源的实现最简单的整合方式,通过引入依赖 fastdep-datasource 并在 application.yml 文件中配置数据源信息来实现多数据源。 实现步骤: 1. 引入依赖:在 Maven 或 Gradle 文件...

    mybatsi+AOP+注解生成动态数据源

    在这样的场景下,**动态数据源**的概念就显得尤为重要了。本文将详细介绍如何使用MyBatis框架结合面向切面编程(AOP)和注解来实现动态数据源的管理。 #### 环境搭建与依赖配置 在实现动态数据源之前,我们需要...

Global site tag (gtag.js) - Google Analytics