搭建eclipse+tomcat+maven+shiro+springmvc+jpa项目(一):技术选型及架构文档

一、Java语言

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

1  TIOBE编程语言排行榜

从图1中我们可以看出,Java一直稳居第一,它具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序Web应用程序分布式系统嵌入式系统应用程序等。在全球云计算和移动互联网的产业环境下,Java具备了显著优势和广阔前景。因此,本系统我们使用Java语言来开发。

  • Mysql数据库

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2 DB-Engines数据库排行榜

从图2可以看出,MySQL是最流行的数据库管理系统之一。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。本项目属于小型网站,因此使用MySQL进行数据库开发。

  • 技术架构
  1. 项目构建工具:Maven
    1. Maven的优点

Maven是跨平台的项目管理工具主要服务于基于Java平台的项目构建,依赖管理和项目信息管理Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。使用Maven能很好地帮我们管理项目,解决依赖冲突。

    1. Maven工程的目录约定

3 Maven项目结构

  1. 代码管理工具:SVN

SVN是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本

图4 SVN

  1. 应用服务器:Tomcat

Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务。

图5 Tomcat结构图

  1. 开发工具:Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。它是Java集成开发工具。它可以极大地提升我们的开发效率。可以自动编译,检查错误。在公司中,很多Java工程师都将Eclise作为首选开发工具 ,因为它是免费开源的,尽管eclipse有些功能没有,但是你可以下载一些插件让其支持,这足以说明它的扩展性是相当的强!

图6  Eclipse

  1. ORM框架:Spring Data JPA

5.1 基本介绍

SpringData : Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据库的访问变得方便快捷。SpringData 项目所支持 NoSQL 存储:

MongoDB (文档数据库

Neo4j(图形数据库)

Redis(键/值存储)

Hbase(列族数据库)

SpringData 项目所支持的关系数据存储技术:

  • JDBC
  • JPA

   5.2 开发步骤

Spring Data JPA 进行持久层(即Dao)开发一般分三个步骤:

1声明持久层的接口,该接口继承 Repository(或Repository的子接口,其中定义了一些常用的增删改查,以及分页相关的方法)。

2在接口中声明需要的业务方法。Spring Data 将根据给定的策略生成实现代码。

3在 Spring 配置文件中增加一行声明,让 Spring 为声明的接口创建代理对象。配置了 <jpa:repositories> 后,Spring 初始化容器时将会扫描 base-package 指定的包目录及其子目录,为继承 Repository 或其子接口的接口创建代理对象,并将代理对象注册为 Spring Bean,业务层便可以通过 Spring 自动封装的特性来直接使用该对象。

     5.3 优点:

    我们一般按照三层结构来看的话,Service层做业务逻辑处理,Dao层和数据库打交道。那么ORM框架本身提供的功能有什么呢?答案是基本的CRUD,所有的基础CRUD都提供,我们使用起来感觉很方便,业务逻辑层面的处理ORM是没有提供的,如果使用原生的框架,业务逻辑代码我们一般会自定义,会自己去写SQL语句,然后执行。在这个时候,Spring-data-jpa的威力就体现出来了,ORM提供的能力他都提供,ORM框架没有提供的业务逻辑功能Spring-data-jpa也提供,全方位的解决用户的需求。

  1. 权限管理:Shiro

shiro是apache提供的强大而灵活的开源安全框架,它主要用来处理身份认证,授权,企业会话管理和加密。可以使用多数据源如同时使用oracle、mysql。单点登录(sso)支持remember me服务与spring security区别,个人觉得二者的主要区别是:

1、shiro灵活性强,易学易扩展。同时,不仅可以在web中使用,可以工作在任务环境内中。

2、acegi灵活性较差,比较难懂,同时与spring整合性好。

如果对权限要求比较高的项目,使用shiro,主要原因是可以很容易按业务需求进行扩展。

  1. 项目部署

使用maven install命令生成war包,拷贝到tomcat的webapps目录下,启动tomcat服务器。

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_35528312/article/details/84260795