webdn
 
  首页     免费截图     VIP会员区     广告Banner     技术文档     网站模板  
网站截图,网站每日新 !
虚拟主机 域名注册


 

Spring框架实例讲解

【摘 要】本文介绍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();
??? }
}




  | 
点击这里给我发消息 | 关于WebDN  |  站点地图  |  联系我们  |  WebDN 会员  |  支付方式  |  友情链接  |  隐私政策
© 2004-2008 WebDN.com 版权所有. 沪ICP备05040479号