`
jaesonchen
  • 浏览: 299876 次
  • 来自: ...
社区版块
存档分类
最新评论

Spring框架讲解-一个简单的实践

阅读更多
一,场景:编写一个用户管理的服务层,包括增加用户、删除用户和查询用户等等,而且用户信息以关系型数据库形式存储。
分析:
这是一个典型的应用服务,涉及到业务层(Business Objects Layer)、数据库访问层(DB Access)和存储层(EIS)。
采用典型的架构:BO+DAO
DAO采用Spring提供的JdbcTemplate来进行封装。

二,具体实现

1)用户类User
public class User{
private String username;
private String email;
private Date birthday;
public User(){}

相应的setter/getter方法。
}
这是一个简单的bean类,记录用户的信息。

2)数据库访问类:UserDao

public interface UserDao {
public void save(User user);
public void remove(String username);
public User searchByName(String username);
}
这是数据库访问的接口类,定义了对用户的数据库操作,其实现类是UserDaoJdbc

UserDaoJdbc类

public class UserDaoJdbc extends JdbcDaoSupport implements UserDao {
public UserDaoJdbc() {
super();
}
public void save(User user) {
getJdbcTemplate().update(
"insert into SAMPLE_USER values (?,?,?)",
new Object[] { user.getUsername(), user.getEmail(),
user.getBirthday() });
}
...
}
3)业务类UserManageService
public interface UserManageService {
public void saveUser(User user);
public void removeUser(String username);
public User getUserByName(String username);
}
这是用户的业务类接口,定义了和用户相关的一些业务操作,其实现类UserManageServiceImpl

实现类UserManageServiceImpl

public class UserManageServiceImpl implements UserManageService {

private UserDao udao;

public UserManageServiceImpl() {
super();
}

public void saveUser(User user) {
udao.save(user);
}
public UserDao getUdao() {
return udao;
}
public void setUdao(UserDao udao) {
this.udao = udao;
}
}

4)Spring bean描述文件配置

<beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@172.16.4.219:1521:orcl</value>
</property>
<property name="username">
<value>zhangbo</value>
</property>
<property name="password">
<value>password</value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userdao" class="sample.spring.dao.UserDaoJdbc">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userManageService" class="sample.spring.service.UserManageServiceImpl">
<property name="udao">
<ref bean="userdao"/>
</property>
</bean>
</beans>

5)数据中存储用户的表SAMPLE_USER
username varchar2(30) not null,
email varchar2(50) not null,
birthday date

6)通过单元测试来验证UserManageService中的操作:
public class UserManageServiceTest extends TestCase {

private UserManageService service;

private static Log logger = LogFactory.getLog(UserManageServiceTest.class);

protected void setUp() throws Exception {
super.setUp();
service = (UserManageService) SpringContextUtil
.getBean("userManageService");
}
public void testSaveAndSearchAndRemoveUser() throws Exception {
User user = new User();
user.setUsername("zhangsan");
user.setEmail("zhangsan@test.com");
user.setBirthday(new Date());
service.saveUser(user);
logger.debug("存入一个新用户:" + user);
User userFromDb = service.getUserByName("zhangsan");
assertNotNull(userFromDb);
assertEquals(userFromDb.getEmail(), "zhangsan@test.com");
logger.debug("从数据库中查到用户:" + userFromDb);
service.removeUser("zhangsan");
logger.debug("从数据库删除用户:" + userFromDb);
}
protected void tearDown() throws Exception {
super.tearDown();
}
}
分享到:
评论

相关推荐

    Spring框架进阶:成为Java技术大牛的秘密.zip

    通过学习Spring框架,读者可以提高开发效率、代码质量,成为一名出色的Java开发者。 适用人群:适用于Java编程初学者、小程序开发者以及对Spring框架感兴趣的技术人员。 使用场景及目标:本文旨在帮助读者掌握Spring...

    Eclipse RCP与Spring OSGi技术详解与最佳实践

    高级篇(第6-12章)系统讲解了Eclipse RCP应用开发的基础知识、Eclipse RCP软件产品各个组成部分的构建方法,以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP...

    [课堂课件讲解]Java微服务实践-Spring Boot 安全.pptx

    [课堂课件讲解]Java微服务实践-Spring Boot 安全.pptx

    spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践

    Spring Boot 是一个用于简化基于 Spring 框架的应用程序开发的工具。它通过提供预配置的项目模板、简化的配置选项以及一系列自动化功能,使得开发人员可以更加专注于业务逻辑的实现,而无需过多关心底层配置和集成...

    Spring 5 开发大全-第2部分

    自 Spring 诞生以来,以 Spring 技术栈为核心的企业级应用开发方式深入人心,已经成为 Java EE ...而且除了讲解 Spring 的理论知识外,还在每个知识点上辅以大量的代码案例,使理论可以联系实际,具备更强的可操作性。

    深入解析Spring IoC源码:核心机制与实践应用

    透过这些分析,本文不仅为Java开发者提供了对Spring IoC更深层次的理解,也为高效利用Spring框架提供了实践指导。适合拥有一定Spring框架基础的开发者阅读,特别是那些希望深入理解框架内部工作原理的高级开发人员。

    Spring 5 开发大全-第1部分.pdf(1-10章)

    自 Spring 诞生以来,以 Spring 技术栈为核心的企业级应用开发方式深入人心,已经成为 Java EE ...而且除了讲解 Spring 的理论知识外,还 在每个知识点上辅以大量的代码案例,使理论可以联系实际,具备更强的可操作性。

    spring-boot-best-practices-sample:Spring Boot 2.x最佳实践样本

    Spring Boot 2.x 最佳实践专栏简介 1.1 为什么写这个专栏? Spring的出现简化了Java企业级应用的开发,凭着最初的IOC依赖注入容器和注解,以及灵活的对象依赖配置方式,经过多年的发展,已经成为功能丰富,生态完整的...

    互联网轻量级SSM框架解密:Spring、Spring MVC、MyBatis源码深度剖析

    Spring MVC 源码剖析篇基于SpringMVC 3.0 版本,这个版本比较简单、核心清晰,便于读者理解透彻,这里主要讲解其中的设计模式及可插拔的设计思路。MyBatis 源码剖析篇基于MyBatis 3.4 版本,帮助读者对SQL 语言、...

    SSH(Struts1.0+Spring+Hibernate)框架集成笔记

    因为这些涉及了尤其是spring底层的好多类以及控制翻转(IOC)和面向切面(AOP)编程的思想,不过在讲述过程中我们尽量以实例来解释spring中的这些思想,不做空的理论上的讲解,在实践中理解spring框架的精髓。 本文只要是...

    互联网轻量级 ssm 框架解密 springspringmvcmybatis源码深度剖析

    Spring MVC 源码剖析篇基于SpringMVC 3.0 版本,这个版本比较简单、核心清晰,便于读者理解透彻,这里主要讲解其中的设计模式及可插拔的设计思路。MyBatis 源码剖析篇基于MyBatis 3.4 版本,帮助读者对SQL 语言、...

    毕业设计基于Vue+ SpringMVC+Spring+MyBatis在线问卷设计与实现【源码+lw+部署+讲解】

    内容概要:这个毕业设计项目基于Vue前端框架、Spring MVC、Spring框架和MyBatis持久层框架,旨在设计和实现一个在线问卷设计与实现系统。该系统允许用户创建、编辑和发布问卷调查,以及参与调查并查看结果。源码包括...

    深入解析Spring+MVC与Web+Flow.pdf

    《深入解析Spring MVCgn Web Flow》由spring框架的开发和维护者SpringSource公司组织编写,作者均为资深Spring工程师或咨询师。 Seth Ladd是资深Spring培训师,曾为NEC公司等许多国际性机构构建Web系统。Darren ...

    毕业设计基于Vue+ SpringMVC+Spring+MyBatis的乐优商城系统设计与实现【源码+lw+部署+讲解】

    内容概要:这个毕业设计项目基于Vue前端框架、Spring MVC、Spring框架和MyBatis持久层框架,旨在设计和实现一个名为乐优商城的电商系统。该系统包括了前端用户界面和后端管理界面,实现了商品浏览、购物车管理、订单...

    Spring 5 开发大全-第2部分.pdf(11章以后)

    自 Spring 诞生以来,以 Spring 技术栈为核心的企业级应用开发方式深入人心,已经成为 Java EE ...而且除了讲解 Spring 的理论知识外,还 在每个知识点上辅以大量的代码案例,使理论可以联系实际,具备更强的可操作性。

    基于spring+springmvc+hibernate的在线招标系统设计与实现【源码+lw+部署文档+讲解】

    内容概要:这个项目是一个基于Spring + Spring MVC + Hibernate的在线招标系统,旨在为用户提供一个方便快捷的招标流程管理平台。系统包括了招标信息发布、投标管理、中标结果确认等功能,旨在简化招标过程,提高...

    SpringBoot开发实战(理论基础)

    本课程是基于Spring、Spring MVC和Spring Boot框架的理论与实践相结合的课程,主要讲解Spring、Spring MVC和Spring Boot框架的基础知识和实际应用。 通过本课程的学习,应: 首先,了解Spring、Spring MVC和Spring ...

    SPRING攻略 第2版.pdf

    随着Spring框架最新版本——3.0版的发布,Spring平台已经发展成熟,成为Java、Java虚拟机、Groovy、NET或者Action-Script开发人员最强大、最具革命性的解决方案之一。 《Spring攻略(第2版)》是Spring平台的深入指南...

    (SSM、Spring Boot、Spring Security、MinIO、Vue)各种项目实践,并附上高质量文章讲解

    SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...

    精通Spring(书签)

     Spring 2.5是迄今为止完美的Java EE架构级框架,全面深入、多维度演绎Spring 2.5的各个方面,本书蕴含作者多年Java EE研发实践及经验。  凝聚Java魅力,成就开发专家  看清Java万花的本质,从复杂的表象中寻找...

Global site tag (gtag.js) - Google Analytics