`

spring中dataSource的配置以及配合IOC的使用

 
阅读更多

bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	
	<context:component-scan base-package="com.test"></context:component-scan>
	
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	    <property name="url" value="jdbc:oracle:thin:@localhost:1521:oralsb"/>
	    <property name="username" value="scott"/>
	    <property name="password" value="tiger"/>
	</bean>
	
</beans>

 

模型类

User.java

package com.test.model;

public class User {

	private int id;
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

 

接口

UserDAO.java

package com.test.dao;

import com.test.model.User;

public interface UserDAO {
	public void save(User user);
}

 

实现接口类

UserDAOImpl.java

 

package com.test.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.springframework.stereotype.Component;

import com.test.dao.UserDAO;
import com.test.model.User;

@Component("userDAOImpl")
public class UserDAOImpl implements UserDAO {

	private DataSource dataSource;

	public DataSource getDataSource() {
		return dataSource;
	}

	@Resource(name = "dataSource")
	public void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
	}

	public void save(User user) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		try {
			conn = dataSource.getConnection();
			String sql = "insert into user1 values (?, ?)";
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, user.getId());
			pstmt.setString(2, user.getName());
			pstmt.execute();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}
}

 

服务类

UserService.java

package com.test.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.test.dao.UserDAO;
import com.test.model.User;

@Component("userService")
public class UserService {
	private UserDAO userDAO;

	public void add(User user) {
		userDAO.save(user);
	}

	public UserDAO getUserDAO() {
		return userDAO;
	}

	// 这里会找注解Component的值为:userDAOImpl的那个类
	@Resource(name="userDAOImpl")
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

}

 

Junit测试类

UserServiceTest.java

package com.test.service;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.test.model.User;

public class UserServiceTest {

	@Test
	public void testAdd() throws Exception {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
		UserService service = (UserService) applicationContext.getBean("userService");
		User u = new User();
		u.setId(1);
		u.setName("张三");
		service.add(u);
	}

}

 

分享到:
评论

相关推荐

    spring Ioc容器配置

    spring Ioc容器配置 IOC容器数据源配置 &lt;!-- 配置数据源 --&gt; &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt; &lt;value&gt;org.gjt.mm.mysql.Driver ...

    SpringBoot框架Datasource注入

    在实际开发中,`DataSource`不仅仅用于数据库连接,还可以配合Spring的JdbcTemplate、NamedParameterJdbcTemplate或JPA等工具来执行SQL查询,实现数据的CRUD操作。通过Spring Data JPA,我们甚至可以进一步简化持久...

    干净的spring初始化工程,包含ioc,di,datasource,但是不包含aop

    在IOC中,Spring容器负责管理对象的生命周期和装配,而不是由对象自己来决定。Spring通过读取配置文件或使用注解来了解对象及其依赖关系,然后根据这些信息创建和组装对象。 **数据源(Datasource)**是处理数据库...

    Spring整合Mybatis+SpringIOC

    本文将详细介绍Spring如何与Mybatis整合以及Spring的IOC(Inversion of Control,控制反转)机制。 **Spring整合Mybatis** 1. **配置Mybatis-Spring桥接器** 首先,我们需要引入Mybatis和Spring的相关依赖。在`...

    springIOC与AOP配置

    在传统的Java应用中,对象通常自行创建依赖的对象,而在IOC中,这个责任由一个外部容器(即Spring的IOC容器)承担。这样,对象只需声明它需要哪些服务,而无需知道这些服务的具体实现。 **IOC配置** Spring提供XML...

    手写SpringIOC注解实现版本

    2. **反射技术**:在Spring IOC中,反射用于根据注解信息动态地创建和初始化对象。当遇到`@Autowired`等注解时,Spring会使用反射查找并注入对应的依赖。 3. **Bean的生命周期管理**:Spring提供了各种注解来控制...

    spring基础配置,运行ok

    在Spring中,我们通常会配置一个`DataSource`,并通过`JdbcTemplate`或`NamedParameterJdbcTemplate`进行数据操作。此外,`@Configuration`和`@Bean`注解可用于创建数据库连接池,如Apache Commons DBCP或HikariCP。...

    Spring2.0的配置

    Spring 2.0 的配置是其核心特性之一,它引入了依赖注入(IOC)和面向切面编程(AOP)的概念,极大地简化了Java企业级应用的开发。然而,随着应用规模的扩大,配置文件的数量和复杂度也随之增加,特别是事务配置。在...

    spring+mybaits配置

    在"spring+mybatis配置"中,`pom.xml`会包含Spring和MyBatis的相关依赖,以及其它必要的库,如数据库驱动等。开发者需要在这里指定正确的版本号,确保所有组件的兼容性。例如,可能有以下依赖项: ```xml ...

    spring 配置文件 归类

    在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...

    spring配置JNDI数据源

    总结来说,Spring配置JNDI数据源主要涉及两部分:一是应用服务器中JNDI资源的注册,二是Spring配置文件中通过JNDI查找并使用这些资源。这种方式的好处在于解耦,应用不再直接依赖具体的数据库连接配置,而是通过JNDI...

    spring学习(aop ioc代理模式的理解以及整合mybatis进行开发使用)

    MyBatis与Spring整合的方式有多种,基本的整合需要在Spring配置文件中配置数据源(DataSource)和SqlSessionFactoryBean,从而让Spring容器管理MyBatis的核心组件。高级的整合方式还包括配置事务管理器...

    SpringIoC和DI注解开发.pdf

    Spring IoC(Inverse of Control,控制反转)是一种软件设计模式,它将传统的控制权从应用程序转移到框架中,使得应用程序更加灵活和可扩展。DI(Dependency Injection,依赖注入)是 IoC 的一种实现方式,它将组件...

    SpringMVC+Spring+MyBatis jar包和配置文件

    2. 配置Spring的IoC容器:定义Bean,如DataSource、SqlSessionFactory、MapperScannerConfigurer等。 3. 配置Spring MVC:设置DispatcherServlet,配置HandlerMapping和HandlerAdapter。 4. 配置MyBatis:编写...

    Spring环境配置

    本文将详细介绍如何在Web应用中进行Spring的环境配置,并解释各个配置项的作用及意义。 #### 三、Spring环境配置的核心文件:web.xml `web.xml`是Web应用的部署描述符,用于配置Web应用的基本设置以及Spring框架...

    Stuts2+Spring+JDBC的配置

    Spring的配置主要在applicationContext.xml文件中,这里配置了DataSource、JdbcTemplate,以及可能的Service层和DAO层组件。DataSource是Spring管理数据库连接的关键,可以通过`&lt;bean&gt;`标签创建,并配置数据库连接的...

    Spring-hibernate结合使用全xml配置方式

    在Java企业级开发中,Spring和Hibernate是两...在实际项目中,还可以考虑使用注解配置或者Spring Boot等更现代的方式来简化配置。同时,别忘了根据项目需求,调整缓存策略、事务管理等高级特性,以提升性能和可扩展性。

    spring ibatis 配置(包括事务管理)

    通过以上步骤,我们就完成了Spring与iBatis的集成配置,包括了数据源、SqlSessionFactory、SqlSessionTemplate、Mapper接口的扫描以及事务管理。这样,我们就可以在Spring的管理下,利用iBatis进行高效、灵活的数据...

    spring+spring mvc+mybatis配置Demo

    总的来说,Spring+Spring MVC+MyBatis的配置涉及到多个层次的配置和集成,包括Spring的IoC和AOP、Spring MVC的MVC架构以及MyBatis的数据库操作。这些组件共同构成了一个功能完备的Java Web应用程序。在实际开发中,...

Global site tag (gtag.js) - Google Analytics