`

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 3.0整理汇总

    总之,Spring_MVC 3.0提供了一套完整且高效的Web应用程序开发框架,通过其丰富的接口和组件,开发者可以轻松地构建出高性能、可维护的应用。学习和掌握Spring_MVC的核心概念和实践技巧,对于提升开发效率和代码质量...

    spring_mvc.zip_spring_spring mvc_springmvc_springmvc架构

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建控制器层,实现模型-视图-控制器(MVC)的设计模式。这个“spring_mvc.zip”压缩包很可能是为了帮助初学者快速入门...

    精通Spring_Web_MVC优秀框架.pdf

    ### Spring Web MVC 框架核心知识点解析 #### 一、Spring Web MVC 概述 - **Spring Web MVC** 是...通过上述内容的学习,可以全面掌握Spring Web MVC框架的核心开发知识,为构建高质量的Web应用程序打下坚实的基础。

    spring_mvc代码_spring_mvc代码实例_

    Spring MVC 是 Spring 框架的一个模块,专为构建 Web 应用程序提供了一种模型-视图-控制器(MVC)架构。它简化了Java Web应用开发,将业务逻辑、数据处理和用户界面分离,使得开发者可以更专注于业务逻辑,而无需...

    the-mvc-spring-and-web-study.rar_Java spring mvc_The Web_mvc_spr

    Spring MVC是Spring框架的一个重要组件,用于构建可伸缩、高性能的Web应用程序。它采用了Model-View-Controller(MVC)设计模式,分离了业务逻辑、数据展示和用户交互,使得开发更模块化,易于维护。 描述中提到的...

    开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp

    Spring MVC是Spring框架的一个核心组件,主要用于构建Web应用程序。这个资源可能包含了从基础到进阶的Spring MVC应用开发知识,以及朱冰(可能是作者或讲师)对Spring MVC的理解和实践经验。 描述中的"朱冰-...

    为java_web项目添加spring_MVC框架(JSTL表达式)

    Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序,提供模型-视图-控制器(MVC)架构模式的支持,而JSTL则是一种标准的标签库,用于简化JSP页面的编程。 在Java Web项目中引入Spring MVC框架,首先需要...

    spring_mvc.zip_Spring学生_spring mvc_springmvc 学生_springmvc 系统

    Spring MVC 是一个基于 Spring 框架的模型-视图-控制器(MVC)架构,它简化了在 Java Web 应用中的开发工作。在"spring_mvc.zip"中,我们可以看到一个针对学生管理系统的实例代码,这将帮助我们深入理解如何使用 ...

    spring_mvc_webflow案例

    Spring MVC WebFlow是一个强大的工具,用于构建高度交互式的、流程驱动的Web应用程序。它扩展了Spring MVC框架,提供了对复杂用户界面流程管理的支持。在这个案例中,我们将深入探讨Spring MVC WebFlow的XML配置版本...

    Spring_MVC_3.0实战指南

    《Spring_MVC_3.0实战指南》是一本专注于Spring MVC 3.0技术的实践教程,旨在帮助开发者深入...通过阅读并实践书中的示例,你可以更好地理解和应用Spring MVC的强大功能,为你的项目构建出高效、稳定的Web应用程序。

    _Spring_mvc.zip_spring mvc

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专注于构建Web应用程序的后端控制器。这个压缩包 "_Spring_mvc.zip" 内含的可能是某个课程或项目中的源代码,用于教学或实践如何使用Spring MVC...

    Spring_MVC_实战教程

    Spring MVC 是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller(MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本实战教程将深入讲解Spring MVC的关键组件和工作流程,帮助开发者更...

    Spring_MVC_MYBatis企业应用实战

    Spring MVC作为Spring框架的一部分,是用于构建Web应用程序的模型-视图-控制器(MVC)架构,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。这两者的结合,为企业级应用提供了高效且...

    Spring_Mvc

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于处理Web应用的模型-视图-控制器(MVC)结构。在本文中,我们将深入探讨Spring MVC的基本概念、核心组件以及如何实现一个简单...

    深入浅出学Spring_Web_MVC

    Spring Web MVC 是一个功能强大且灵活的Web框架,它不仅能够帮助开发者构建高质量的Web应用程序,还能够与其他Spring生态系统中的组件无缝集成。通过本教程的学习,你可以系统地掌握Spring Web MVC的核心知识和技术...

    spring_mvc-学习

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。在Spring MVC中,开发者可以利用模型-视图-控制器(MVC)架构模式来分离业务逻辑、数据处理和...

    spring_mvc_response

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专门用于构建 MVC(Model-View-Controller)架构的 Web 应用程序。本压缩包文件"spring_mvc_response"可能包含了一系列关于 Spring ...

    spring_mvc框架搭建demo

    通过这个“spring_mvc框架搭建demo”,你可以学习到如何从零开始构建一个简单的Spring MVC应用,理解每个部分的作用,并逐步掌握Spring MVC的核心概念和技术。这不仅有助于你提升技能,也有助于你在实际项目中灵活...

    Spring_MVC详解学习

    首先,Spring框架提供了一套构建Web应用程序的全功能MVC模块,该模块支持多种视图技术,包括但不限于JSP、Velocity、Tiles、iText和POI。Spring MVC的灵活性表现在它不会强迫使用特定的视图技术,开发者可以根据实际...

Global site tag (gtag.js) - Google Analytics