手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  域名注册  非法  seo
当前位置 : 主页>程序设计>Java技术>列表

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

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

一,场景:编写一个用户管理的服务层,包括增加用户、删除用户和查询用户等等,而且用户信息以关系型数据库形式存储。
分析:
这是一个典型的应用服务,涉及到业务层(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();
}
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册