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容器配置 IOC容器数据源配置 <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <value>org.gjt.mm.mysql.Driver ...
在实际开发中,`DataSource`不仅仅用于数据库连接,还可以配合Spring的JdbcTemplate、NamedParameterJdbcTemplate或JPA等工具来执行SQL查询,实现数据的CRUD操作。通过Spring Data JPA,我们甚至可以进一步简化持久...
在IOC中,Spring容器负责管理对象的生命周期和装配,而不是由对象自己来决定。Spring通过读取配置文件或使用注解来了解对象及其依赖关系,然后根据这些信息创建和组装对象。 **数据源(Datasource)**是处理数据库...
本文将详细介绍Spring如何与Mybatis整合以及Spring的IOC(Inversion of Control,控制反转)机制。 **Spring整合Mybatis** 1. **配置Mybatis-Spring桥接器** 首先,我们需要引入Mybatis和Spring的相关依赖。在`...
在传统的Java应用中,对象通常自行创建依赖的对象,而在IOC中,这个责任由一个外部容器(即Spring的IOC容器)承担。这样,对象只需声明它需要哪些服务,而无需知道这些服务的具体实现。 **IOC配置** Spring提供XML...
2. **反射技术**:在Spring IOC中,反射用于根据注解信息动态地创建和初始化对象。当遇到`@Autowired`等注解时,Spring会使用反射查找并注入对应的依赖。 3. **Bean的生命周期管理**:Spring提供了各种注解来控制...
在Spring中,我们通常会配置一个`DataSource`,并通过`JdbcTemplate`或`NamedParameterJdbcTemplate`进行数据操作。此外,`@Configuration`和`@Bean`注解可用于创建数据库连接池,如Apache Commons DBCP或HikariCP。...
Spring 2.0 的配置是其核心特性之一,它引入了依赖注入(IOC)和面向切面编程(AOP)的概念,极大地简化了Java企业级应用的开发。然而,随着应用规模的扩大,配置文件的数量和复杂度也随之增加,特别是事务配置。在...
在"spring+mybatis配置"中,`pom.xml`会包含Spring和MyBatis的相关依赖,以及其它必要的库,如数据库驱动等。开发者需要在这里指定正确的版本号,确保所有组件的兼容性。例如,可能有以下依赖项: ```xml ...
在Spring框架中,配置文件是核心组成部分,它们用于定义bean的定义、依赖关系以及各种配置信息。本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...
总结来说,Spring配置JNDI数据源主要涉及两部分:一是应用服务器中JNDI资源的注册,二是Spring配置文件中通过JNDI查找并使用这些资源。这种方式的好处在于解耦,应用不再直接依赖具体的数据库连接配置,而是通过JNDI...
MyBatis与Spring整合的方式有多种,基本的整合需要在Spring配置文件中配置数据源(DataSource)和SqlSessionFactoryBean,从而让Spring容器管理MyBatis的核心组件。高级的整合方式还包括配置事务管理器...
Spring IoC(Inverse of Control,控制反转)是一种软件设计模式,它将传统的控制权从应用程序转移到框架中,使得应用程序更加灵活和可扩展。DI(Dependency Injection,依赖注入)是 IoC 的一种实现方式,它将组件...
2. 配置Spring的IoC容器:定义Bean,如DataSource、SqlSessionFactory、MapperScannerConfigurer等。 3. 配置Spring MVC:设置DispatcherServlet,配置HandlerMapping和HandlerAdapter。 4. 配置MyBatis:编写...
本文将详细介绍如何在Web应用中进行Spring的环境配置,并解释各个配置项的作用及意义。 #### 三、Spring环境配置的核心文件:web.xml `web.xml`是Web应用的部署描述符,用于配置Web应用的基本设置以及Spring框架...
Spring的配置主要在applicationContext.xml文件中,这里配置了DataSource、JdbcTemplate,以及可能的Service层和DAO层组件。DataSource是Spring管理数据库连接的关键,可以通过`<bean>`标签创建,并配置数据库连接的...
在Java企业级开发中,Spring和Hibernate是两...在实际项目中,还可以考虑使用注解配置或者Spring Boot等更现代的方式来简化配置。同时,别忘了根据项目需求,调整缓存策略、事务管理等高级特性,以提升性能和可扩展性。
通过以上步骤,我们就完成了Spring与iBatis的集成配置,包括了数据源、SqlSessionFactory、SqlSessionTemplate、Mapper接口的扫描以及事务管理。这样,我们就可以在Spring的管理下,利用iBatis进行高效、灵活的数据...
总的来说,Spring+Spring MVC+MyBatis的配置涉及到多个层次的配置和集成,包括Spring的IoC和AOP、Spring MVC的MVC架构以及MyBatis的数据库操作。这些组件共同构成了一个功能完备的Java Web应用程序。在实际开发中,...