基于Java的Web应用开发技术已成为目前Web开发的主流技术,作为一名Java程序员,到底要掌握什么技术才能完成一个JavaWeb项目呢?

一起学起来吧~

先放一张技术栈思维导图:

 

国外的技术栈 java java项目技术栈_Apache

什么是技术栈?

开发一个普通管理系统,会用到:

SprinBoot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,这些技术合起来就可以称为技术栈。

大致分为:前端、后端、中间件、数据库和工具。

一、前端

 

国外的技术栈 java java项目技术栈_Apache_02

1、JSP

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。

JSP本质上是一个Servlet,主要用于实现JavaWeb应用程序的用户界面部分。

第一个 JSP 程序

out.println("Hello World!");

2、前端框架

DWZ、EasyUI、EXT、BootStrap、KendoUI都是基于基于HTML、CSS、JavaScript/jQuery的一些富文本客户端UI框架,在当时简直是后端开发人员的福音。

这些框架最大的特点就是官网上提供了各种组件的使用方法,后端人员只要套到JSP页面中,进行数据渲染即可。

这些UI框架风格基本已经固定,更适合开发一些管理类系统,都包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。

3、DWZ

是中国人自己开发的基于jQuery实现的Ajax RIA开源框架,设计目标是简单实用,快速开发,降低Ajax开发成本。

 

国外的技术栈 java java项目技术栈_Apache_03

4、EasyUI

Easyui是一种基于jQuery的用户界面插件集合,为创建现代化,互动,JavaScript应用程序,提供必要的功能。

使用Easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面,为网页开发的时间和规模。

 

国外的技术栈 java java项目技术栈_Java_04

5、BootStrap

Bootstrap,来自Twitter,是目前很受欢迎的前端框架。Bootstrap是基于 HTML、CSS、JavaScript的,它简洁灵活,使得Web开发更加快捷。

 

国外的技术栈 java java项目技术栈_HTML_05

6、HTML

前端框架都是基于HTML的,所以你需要掌握Css、JavaScript、jquery基础。

7、VUE框架

Vue是一种渐进式JavaScript框架,完美融合了第三方插件和UI组件库,它和jQuery最大的区别在于,Vue无需开发人员直接操作DOM节点,就可以改变页面渲染内容,在应用开发者具有一定的HTML、CSS、JavaScript的基础上,能够快速上手,开发出优雅、简洁的应用程序模块。

二、后端

 

国外的技术栈 java java项目技术栈_Java_06

1、Struts

Struts是Apache基金会的一个开源项目,广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。

一个是Stuts1 ,一个是Stuts2。技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配置action、form之类的,很麻烦,所以依赖性比较强;

而Stuts2是针对拦截器开发的,也就是所谓的AOP思想,可以配置多个action,用起来比较方便,但是因为请求之前的拦截器有一些注入的操作,速度相对Stuts1来说慢一点。

2、Spring

Spring框架是个轻量级的Java EE框架。所谓轻量级,是指不依赖于容器就能运行的。

Spring以IoC、AOP为主要思想,其中IoC,Inversion of Control 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。AOP,Aspect Oriented Programming,面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便地添加、删除某些功能。Servlet中的Filter便是一种AOP思想的实现。

Spring同时也是一个“一站式”框架,即Spring在JavaEE的三层架构[表现层(Web层)、业务逻辑层(Service层)、数据访问层(DAO层)]中,每一层均提供了不同的解决技术。

 

国外的技术栈 java java项目技术栈_HTML_07

3、持久层框架Mybatis

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。它是轻量级持久层框架,由ibatis演化而来。它自动连接数据库,将数据库的结果集封装到对象中POJO。

Mybatis它是轻量级持久层框架,由ibatis演化而来。它自动连接数据库,将数据库的结果集封装到对象中POJO。

 

国外的技术栈 java java项目技术栈_Apache_08

4、Spring Boot

Spring Boot基本上是Spring框架的扩展,它消除了设置Spring应用程序所需的XML配置,为更快,更高效的开发生态系统铺平了道路。

5、分布式/微服务Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

 

国外的技术栈 java java项目技术栈_Apache_09

6、安全框架Shiro

Apache Shiro是一个开源的轻量级的Java安全框架,它提供身份验证、授权、密码管理以及会话管理等功能。相对于Spring Security, Shiro框架更加直观、易用,同时也能提供健壮的安全性。

Shiro框架相比于Spring Security更加轻量级,但是它也提供了一些基础的,能满足日常开发所需的权限控制功能。

7、项目管理Maven

Maven是一个构建工具,这个构建工具能够帮助你更好的管理包的依赖、还能够为你实现项目的热部署、还能为你运行所有的测试用例、还能够为你项目的打包、发布、还能够实现项目的多模块构建。

8、服务器软件Tomcat

Tomcat是由Java开发且符合JavaEE的Servlet规范的JSP服务器,是Apache的扩展,其主要特性如下:

1、主要用于解析JSP/Servlet,一般JAVA程序语言都需要Tomcat环境支持;

2、支持HTML静态页,但总体运行效率没有Apache高;

3、内置了一个HTTP服务器用于支持静态内容,可以通过Tomcat的配置管理工具实现与Apache整合。

Apache服务器是由C语言实现的,专门用来提供HTTP服务,具有简单、速度快、性能稳定特征优势,主要特性如下:

1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;

2、不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等语言;

3、可扩展性强,可以通过插件支持PHP语言,特定情况下可与Tomcat实现连通;

4、是目前全球用户使用量最高的Web服务器。

三、中间件

 

国外的技术栈 java java项目技术栈_Apache_10

四、数据库

 

国外的技术栈 java java项目技术栈_Java_11

常见的数据管理系统主要有:Oracle、Mysql、SQL Server、Access、TiDB。

这几个数据库优缺点都比较明显,大家可以在网上查询下相关资料。