`

Spring_MVC(1)构建简单web应用

阅读更多
Java代码 复制代码
  1. /**  
  2.  * 2010-1-23  
  3.  */  
  4. package org.zlex.spring.service;   
  5.   
  6. /**  
  7.  *   
  8.  * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>  
  9.  * @version 1.0  
  10.  * @since 1.0  
  11.  */  
  12. public interface AccountService {   
  13.   
  14.     /**  
  15.      * 验证用户身份  
  16.      *   
  17.      * @param username  
  18.      * @param password  
  19.      * @return  
  20.      */  
  21.     boolean verify(String username, String password);   
  22.   
  23. }  
/**
 * 2010-1-23
 */
package org.zlex.spring.service;

/**
 * 
 * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
 * @version 1.0
 * @since 1.0
 */
public interface AccountService {

	/**
	 * 验证用户身份
	 * 
	 * @param username
	 * @param password
	 * @return
	 */
	boolean verify(String username, String password);

}


接口不需要任何Spring注解相关的东西,它就是一个简单的接口!
重要的部分在于实现层,如下所示:
AccountServiceImpl.java

Java代码 复制代码
  1. /**  
  2.  * 2010-1-23  
  3.  */  
  4. package org.zlex.spring.service.impl;   
  5.   
  6. import org.springframework.beans.factory.annotation.Autowired;   
  7. import org.springframework.stereotype.Service;   
  8. import org.springframework.transaction.annotation.Transactional;   
  9. import org.zlex.spring.dao.AccountDao;   
  10. import org.zlex.spring.domain.Account;   
  11. import org.zlex.spring.service.AccountService;   
  12.   
  13. /**  
  14.  *   
  15.  * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>  
  16.  * @version 1.0  
  17.  * @since 1.0  
  18.  */  
  19. @Service  
  20. @Transactional  
  21. public class AccountServiceImpl implements AccountService {   
  22.   
  23.     @Autowired  
  24.     private AccountDao accountDao;   
  25.   
  26.     /*  
  27.      * (non-Javadoc)  
  28.      *   
  29.      * @see org.zlex.spring.service.AccountService#verify(java.lang.String,  
  30.      * java.lang.String)  
  31.      */  
  32.     @Override  
  33.     public boolean verify(String username, String password) {   
  34.   
  35.         Account account = accountDao.read(username);   
  36.   
  37.         if (password.equals(account.getPassword())) {   
  38.             return true;   
  39.         } else {   
  40.             return false;   
  41.         }   
  42.     }   
  43.   
  44. }  
/**
 * 2010-1-23
 */
package org.zlex.spring.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.zlex.spring.dao.AccountDao;
import org.zlex.spring.domain.Account;
import org.zlex.spring.service.AccountService;

/**
 * 
 * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
 * @version 1.0
 * @since 1.0
 */
@Service
@Transactional
public class AccountServiceImpl implements AccountService {

	@Autowired
	private AccountDao accountDao;

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.zlex.spring.service.AccountService#verify(java.lang.String,
	 * java.lang.String)
	 */
	@Override
	public boolean verify(String username, String password) {

		Account account = accountDao.read(username);

		if (password.equals(account.getPassword())) {
			return true;
		} else {
			return false;
		}
	}

}


注意以下内容:

Java代码 复制代码
  1. @Service  
  2. @Transactional  
@Service
@Transactional


注解@Service用于标识这是一个Service层实现,@Transactional用于控制事务,将事务定位在业务层,这是非常务实的做法!
接下来,我们来看持久层:AccountDao和AccountDaoImpl类
AccountDao.java

Java代码 复制代码
  1. /**  
  2.  * 2010-1-23  
  3.  */  
  4. package org.zlex.spring.dao;   
  5.   
  6. import org.zlex.spring.domain.Account;   
  7.   
  8. /**  
  9.  *   
  10.  * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>  
  11.  * @version 1.0  
  12.  * @since 1.0  
  13.  */  
  14. public interface AccountDao {   
  15.   
  16.     /**  
  17.      * 读取用户信息  
  18.      *   
  19.      * @param username  
  20.      * @return  
  21.      */  
  22.     Account read(String username);   
  23.   
  24. }  
/**
 * 2010-1-23
 */
package org.zlex.spring.dao;

import org.zlex.spring.domain.Account;

/**
 * 
 * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
 * @version 1.0
 * @since 1.0
 */
public interface AccountDao {

	/**
	 * 读取用户信息
	 * 
	 * @param username
	 * @return
	 */
	Account read(String username);

}


这个接口就是简单的数据提取,无需任何Spring注解有关的东西!
再看其实现类:
AccountDaoImpl.java

Java代码 复制代码
  1. /**  
  2.  * 2010-1-23  
  3.  */  
  4. package org.zlex.spring.dao.impl;   
  5.   
  6. import org.springframework.stereotype.Repository;   
  7. import org.zlex.spring.dao.AccountDao;   
  8. import org.zlex.spring.domain.Account;   
  9.   
  10. /**  
  11.  *   
  12.  * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>  
  13.  * @version 1.0  
  14.  * @since 1.0  
  15.  */  
  16. @Repository  
  17. public class AccountDaoImpl implements AccountDao {   
  18.   
  19.     /* (non-Javadoc)  
  20.      * @see org.zlex.spring.dao.AccountDao#read(java.lang.String)  
  21.      */  
  22.     @Override  
  23.     public Account read(String username) {   
  24.         
  25.         return new Account(username,"wolf");   
  26.     }   
  27.   
  28. }  
/**
 * 2010-1-23
 */
package org.zlex.spring.dao.impl;

import org.springframework.stereotype.Repository;
import org.zlex.spring.dao.AccountDao;
import org.zlex.spring.domain.Account;

/**
 * 
 * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
 * @version 1.0
 * @since 1.0
 */
@Repository
public class AccountDaoImpl implements AccountDao {

	/* (non-Javadoc)
	 * @see org.zlex.spring.dao.AccountDao#read(java.lang.String)
	 */
	@Override
	public Account read(String username) {
	 
		return new Account(username,"wolf");
	}

}


这里只需要注意注解:

Java代码 复制代码
  1. @Repository  
@Repository


意为持久层,Dao实现这层我没有过于细致的介绍通过注解调用ORM或是JDBC来完成实现,这些内容后续细述!
这里我们没有提到注解@Component,共有4种“组件”式注解:

引用
 
@Component:可装载组件 
@Repository:持久层组件 
@Service:服务层组件 
@Controller:控制层组件


这样spring容器就完成了控制层、业务层和持久层的构建。
启动应用,访问http://localhost:8080/spring/account.do?username=snow&password=wolf
观察控制台,如果得到包含“true”的输出,本次构建就成功了!
 

分享到:
评论
2 楼 liutao1600 2013-05-07  
学习了~~~
1 楼 tamsiuloong 2010-06-28  
@Component:可装载组件 
@Repository:持久层组件 
@Service:服务层组件 
@Controller:控制层组件
原来是这样啊,我到现在也不太接受注解的方式。可能是对他的陌生,也可能是喜欢pojo

相关推荐

    spring_mvc所有jar

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

    Spring MVC3构建Web应用详解

    Spring MVC3构建Web应用详解

    spring_MVC.zip

    利用Java EE技术参考Spring MVC Web框架,设计并实现类似的框架,并利用该框架构建一个简单的Web应用。 SpringMVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。...

    Spring+MVC3构建Web应用详解

    Spring+MVC3构建Web应用详解

    精通Spring MVC 4

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring MVC4中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了...

    使用Spring MVC构建Web应用程序1

    使用Spring MVC构建Web应用程序1

    Spring MVC

    使用Spring_MVC3构建Web应用详细教程

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

    Seth Ladd是资深Spring培训师,曾为NEC公司等许多国际性机构构建Web系统。Darren Davison和StevenDevijver都曾是Spring核心开发人员,在Spring源代码和文档中可以很容易地找到他们的名字。而Colin Yates、Keith ...

    使用Spring MVC3构建Web应用详细教程

    本文将指导大家如何使用Spring MVC3去构建一个Web应用。在Spring MVC中,所有的用户请求都会被派发到控制器模块,控制器然后再根据业务逻辑去调用数据访问层获得数据,最后通过JSP视图返回。

    构建metro nic、mybatis、spring mvc的高性能web应用

    构建metro nic、mybatis、spring mvc的高性能web应用

    构建metro nic + mybatis + spring mvc的高性能web应用

    构建metro nic + mybatis + spring mvc的高性能web应用;有任何不懂的技术问题都可以联系我共同讨论

    spring框架的MVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且...

    使用Spring MVC和JSP构建的全栈RSS阅读器Web应用程序(95分以上课程大作业).zip

    SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,...

    构建MetroNic+Mybatis+ Spring MVC的高性能web应用

    是一个通用JavaWeb项目框架,使用Java、Web等一系列技术,搭建开发高性能、高可拓展性、高可维护性,高安全性的web项目;...前端使用MetroNic模板,后端架构:Spring + Spring MVC + Mybatis + Apache Shiro。

    SSM_Redis_Template:基于Maven的模板,使用Spring + Spring MVC + mybatis + spring-data-redis框架。 它可以用于快速构建新的Java Web Appliaction。

    基于maven的Java web项目框架模板,使用spring + spring_mvc + mybatis + spring-data-redis等框架各种配置文件都已写好的并实现了一个简单的登陆注册功能可用于在IDEA上快速构建网络项目或入门学习 更多spring_mvc...

    maven-3.5.0多工程构建(spring4mvc分子项目)

    maven-3.5.0多工程构建(spring4mvc分子项目) 使用maven构建多模块项目。在一个项目中使用多个模块的一个方法是将模块... maven maven3.5.0 多工程构建 spring4mvc 子项目 maven构建项目 多模块项目 maven构建WEB项目

    spring mvc 框架示例

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且...

    搭建Spring4+Spring MVC web工程的最佳实践 源码.zip

    Spring是个非常非常非常优秀的java框架,主要是用它的IOC容器帮我们依赖注入和管理一些程序中的Bean组件,实现低耦合关联,最终提高系统可扩展性和可维护性,用它来辅助我们构建web工程将会感觉非常非常非常地愉悦。...

Global site tag (gtag.js) - Google Analytics