一般的java项目后台都有什么技术?

一般的java项目后台都有什么技术,比如Spring MVC,shiro 还有什么技术?

最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的“大局观”,也以便于同学们更有针对性地学习。

当然,这里所用到的例子项目是非常初级,简单的项目。

首先我们从网站的 架构 谈起。

一般来说,我们将网站分为 前端和后端 。 前端主要负责页面的展示,后端则是业务逻辑的实现。 由于html5的兴起,前端领域已经越来越火热,前端技术发展极快,今天我们不做过多介绍,因为现在的互联网公司,前端工程师和Java工程师是完全不同的两种技术岗位。所以我们还是以Java的角度去看待一个项目。在前端没有那么火的前几年,或者说在经典的Java Web的开发模式中,我们使用Jsp技术来作为展现层的实现,其实也就是所谓的前端。

当然只懂得Jsp是不够的还需要懂html,css,js,ajax等一些前端的基础技术,Jsp技术在其中扮演外层包装的角色。那么后端呢?后端是由于一些实现了业务逻辑Java代码和数据库组成。说到这,就可以推出Web开发中经典的MVC模式,Model-View-Controller。View,,就是指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。

在后端代码中,为了保证代码的整洁,易读性,一般会采用分层的办法,自顶向下分为controller层,service层,dao层,数据层或者叫持久层(直接与数据库打交道)。有时候,为了达到解耦的目的,会在上述基层中间加入响应的接口层,以使得接口与实现分离。在更加大型的网站中,会出现更加复杂的架构,比如dao层与数据层之间要有缓存层,或者访问压力增大后,需要使用集群,负载均衡等高级技术,但在这里,我们就不深入讨论复杂架构了。

所以以上我们看到,一个Web 项目前端需要表现层,后端有controller层,service层,dao层,持久层。在表现层,除了刚才提到的html,css,js,ajax,jsp等基础知识,在实际开发中,我们还会用到许多框架技术,比如tiles,velocity,freemarker等模板技术来简化表现层的开发。在持久层,除了jdbc外,还有Mybatis,Hibernate等框架来提高开发效率。

在Java Web中最耀眼的当属Spring了,Spring作为一个贯穿整个项目的框架,为项目开发带来依赖注入,面向切面编程的功能。除了这些,我们还需要熟练掌握一种关系型数据库的使用,如MySQL,Oracle等,当然更好地话还需要掌握一种非关系型数据库,MongoDB,Redis。

掌握了以上知识点,恭喜你,你已经可以开始写Java Web项目了。

但是只会写而不会部署,我们的项目仍然不能拿出来用。所以说到这里,我们的项目代码已经写好,接下来该怎么办呢?当然是需要找一个容器来运行我们的代码。这里的容器是当然不是指Java里的数据类型,而是指应用服务器,此处要特别区分应用服务器与Web服务器,至于Web服务器是什么,稍后会介绍。(如果有同学不是很清楚服务器的概念,可以先看下一段,再回来看)目前,市面主要流行的应用服务器有Tomcat,Jetty,JBoss等。

很多人会问我们为什么需要应用服务器?顾名思义,应用服务器就是用来运行我们的应用代码的。这里需要特别提到的是,Java Web用到了像Jsp,servlet这样的动态web技术,而这些技术的代码是必须运行中应用服务器中的。所以当我们写好应用代码后,需要把自己的应用部署到应用服务器上。应用部署好后,那么用户们该怎么访问呢?直接访问应用服务器吗?这个时候就需要web服务器出场了。在互联网上,最强大的应用层协议当属http协议了,人们访问网站就是通过http协议来进行访问的,而Web服务器就是支持http协议的服务器,所以就叫http服务器。

Web服务器接收http请求,然后再将请求转交给应用服务器。有人会问用户直接访问应用服务器不好吗?为什么要给web服务器,然后再到应用服务器?从功能实现上来说,是可以的。许多应用服务器,比如Tomcat是具有web服务器的功能,所以直接访问也可以。但是由于在实际的生产环境中,由于负载均衡,cdn加速等原因,我们还是需要在应用服务器的前端再加一个web服务器来提高访问效率,常用的有Nginx,Apache这样的服务器。

之前老是在讲这个服务器,那个服务器,不知道有没有同学听懵了。其实服务器这个概念,我们应该在真正接触计算机专业领域之前早就听说过,比如以前打游戏觉得卡的时候大家都时不时会用到服务器这个词汇。但是我真正理解并研究服务器是在学习tomcat, jetty之后才开始的。那么服务器到底什么呢?服务器这个概念其实很简单,就是一台电脑,那它和我们日常用的电脑有什么区别?

第一,它一般没有显示器,它只有主机。第二,它的操作系统不同于我们常用的windows , Mac OS。更多的是*nix系统。第三,它运行了一些服务器端软件。比如说,我们上文提到的Tomcat , Jetty , Nginx,Apache,其实这些都是服务器软件,只是主机运行了这些软件,所以有时候大家就混淆了叫法。所以所谓的数据库服务器,大家也知道了,其实就是运行了数据库的主机。说到服务器,我们所需要掌握的重点知识就是服务器操作系统,也就是*nix系统,比如CentOS , Ubuntu等。

说到这里,其实一个简单的完整的Java Web项目就差不多了。我们简单回顾一下,首先,我们需要利用各种框架和开发技术写出应用代码。接下来,我们需要一个台安装了*nix系统的主机,在上面安装好Web服务器软件,应用服务器软件,再把我们的应用代码部署到应用服务器上。现在我们只需要获取到主机的IP地址,就能够远程访问应用了。

知识点列表:

开发:

1. 视图层技术——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker

2. 持久层技术——MyBatis,Hibernate

3. Spring , Spring MVC

4. 项目构建工具Maven

5. 日志Log4j

6. 版本控制 Git

数据库技术:

1. SQL语句

2. 参数调优

操作系统:

1. 熟练掌握一种Linux系统,原理,Shell命令

服务器技术:

1. 熟练使用并理解一个应用服务器技术的原理(Tomcat)

2. 熟练使用并理解一个Web服务器技术的原理(Nginx)

附加:

缓存技术:

1. 熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)

非关系型数据库

2. 熟练使用并理解一种非关系型数据库(MongoDB)

中间件技术:

1. JMS:activeMQ和kafka

2. RPC: Dubbo

设计模式:

1. 了解并能够使用几种最主要的设计模式

网络:

1. 熟练使用并理解一个网络开发技术(Netty)

2. 熟悉http,TCP协议

Java虚拟机:

1. 熟悉jvm运行原理,内存分布

2. jvm参数调优

有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及开发工具包,【戳我进入】学习裙。

注:加群要求

1、大学学习的是Java相关专业,毕业后面试受挫,找不到对口工作可以

2、在公司待久了,现在过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的

3、参加过线下培训后,知识点掌握不够深刻,就业困难,想继续深造

4、已经在Java相关部门上班的在职人员,对自身职业规划不清晰,混日子的

5、有一定的C语言基础,接触过java开发,想转行的

已标记关键词 清除标记
<div style="font-size:14px;"> 课程简介 </div> <div style="font-size:14px;"> 这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。 </div> <div style="font-size:14px;"> <br /> </div> <div style="font-size:14px;"> 适用人群 </div> <div style="font-size:14px;"> 刚刚毕业的学生 </div> <div style="font-size:14px;"> 想提高职场竞争力 </div> <div style="font-size:14px;"> 想学从零开发SpringBoot项目 </div> <div style="font-size:14px;"> 想提升SpringBoot项目开发技术 </div> <div style="font-size:14px;"> 想学习SpringBoot项目架构技术 </div> <div style="font-size:14px;"> 想学习企业级项目开发技术 </div> <div style="font-size:14px;"> 就是想学习SpringBoot开发 </div> <div style="font-size:14px;"> <br /> </div> <div style="font-size:14px;"> 能学到什么 </div> <div style="font-size:14px;"> 从0开发一个类似企业级项目 </div> <div style="font-size:14px;"> 学会能做出市面上90%通用API </div> <div style="font-size:14px;"> 快速增加1到2年实际开发经验 </div> <div style="font-size:14px;"> 刚毕业学完后能找到满意的工作 </div> <p style="font-size:14px;"> 已经工作学完后最高涨薪30% </p> <p style="font-size:14px;"> <br /> </p> <p style="font-size:14px;"> <br /> </p> <div style="font-size:14px;"> 课程信息 </div> <div style="font-size:14px;"> 全课程目前是82章,155小时,每节视频都经过精心剪辑。 </div> <p style="font-size:14px;"> 在线学习分辨率最高1080P </p> <p style="font-size:14px;"> <br /> </p> <p style="font-size:14px;"> <br /> </p> <div style="font-size:14px;"> 课程知识点 </div> <div style="font-size:14px;"> 1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制 </div> <div style="font-size:14px;"> 12~16章:搭建开发环境,快速入门SpringBoot框架 </div> <div style="font-size:14px;"> 17~20章:快速入门MySQL数据库 </div> <div style="font-size:14px;"> 21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置 </div> <div style="font-size:14px;"> 31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能 </div> <div style="font-size:14px;"> 42~48章:阿里云OSS,话题,MyBatis-plus,应用监控 </div> <div style="font-size:14px;"> 49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存 </div> <div style="font-size:14px;"> 54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索 </div> <div style="font-size:14px;"> 59~61章:商城,集成支付宝SDK,支付宝支付 </div> <div style="font-size:14px;"> 62~64章:常用哈希和加密算法,接口加密和签名 </div> <div style="font-size:14px;"> 65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档 </div> <div style="font-size:14px;"> 68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书 </div> <div style="font-size:14px;"> 70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析 </div> <div style="font-size:14px;"> 74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS </div> <div style="font-size:14px;"> 81~82章:增强和重构项目,课程总结,后续学习计划 </div>
相关推荐
<span style="color:#404040;">本教程特点:</span><br /><span style="color:#404040;">1.更适合零基础学员:</span><br /><span style="color:#404040;">·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白</span><br /><span style="color:#404040;">·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千斤</span><br /><br /><span style="color:#404040;">2.课程内容推陈出新:</span><br /><span style="color:#404040;">·</span><strong>基于JDK 11</strong><span style="color:#404040;">,将Java8、Java9、Java10、Java11新特性一网打尽</span><br /><span style="color:#404040;">·课程中,</span><strong>Eclipse</strong><span style="color:#404040;">和</span><strong>IDEA</strong><span style="color:#404040;">这两种企业一线开发环境都使用到了</span><br /><br /><span style="color:#404040;">3.技术讲解更深入、更全面:</span><br /><span style="color:#404040;">·课程共30天,715个知识视频小节,涉及主流Java使用的方方面面,全而不冗余</span><br /><span style="color:#404040;">·全程内容涵盖</span><strong>数据结构、设计模式、JVM</strong><span style="color:#404040;">内存结构等深度技术</span><br /><span style="color:#404040;">·企业级笔试面试题目深入源码级讲解,拒绝死记硬背</span><br /><br /><span style="color:#404040;">4.代码量更大、案例更丰富、更贴近实战:</span><br /><span style="color:#404040;">·Java语言基础阶段:</span><strong>12720</strong><span style="color:#404040;">行代码,Java语言高级阶段:</span><strong>11684</strong><span style="color:#404040;">行代码</span><br /><span style="color:#404040;">·课堂实战项目</span><strong>3套</strong><span style="color:#404040;">,课后实战项目</span><strong>2套</strong><br /><span style="color:#404040;">·近百道企业面试真题精讲精练、极具实战性</span>
<p> <span style="color:#333333;"><strong></strong></span> </p> <span style="font-size:24px;">一、简介</span> <p> <span style="font-size:12px;"></span> </p> <p> <span style="font-size:16px;">通过这个课程带大家从零开发一款功能全面的后台管理系统,包括项目搭建、功能实现到最后的Linux系统部署全过程。本课程使用SpringMVC + Spring + Mybatis作为主体框架,使用AdminLTE作为前端框架,使用主流关系型数据库Mysql作为存储数据库,使用非关系型数据库Redis作为缓存数据库,并集成SpringSecuriy安全框架做权限的动态管理,集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。</span> </p> <p> <br /> </p> <p> <span style="font-size:24px;"><strong>二、学习目标</strong></span> </p> <p> <span style="font-size:16px;">通过本课程的学习带大家掌握SSM框架的开发流程,并熟练使用SpringSecurity做为安全框架进行权限管理,整合相关优秀的开源框架进行功能开发。还在项目中带大家学习前端相关的Jquery、Bootstrap等知识。课程结束之后希望大家能做到独立进行开发项目的目的,增强解决问题的能力,具备功能落地实现的能力。</span> </p> <p> <span style="font-size:16px;"><span style="font-size:24px;"><strong>三、课程涉及知识点</strong></span></span> </p> <p> <span style="font-size:16px;"></span> </p> <ul> <li> SpringMVC源码分析 </li> <li> Mybatis源码分析 </li> <li> 通用Mapper </li> <li> Mysql数据库 </li> <li> Redis缓存实现 </li> <li> ActiveMQ消息中间件 </li> <li> SpringSecurity鉴权 </li> <li> Swagger2接口文档生成 </li> <li> 自定义注解 </li> <li> AOP切面编程 </li> <li> 自定义过滤器 </li> <li> Logback日志整合 </li> <li> Druid性能监控 </li> <li> Linux系统 </li> <li> Nginx反向代理 </li> <li> Ajax异步请求技术 </li> <li> Jquery基本使用 </li> <li> AdminLTE前端框架 </li> <li> Chart图表-线状图和饼状图 </li> <li> 百度地图定位城市 </li> <li> BootStrap前端框架 </li> <li> BootStrap-Table插件 </li> <li> BootStrap-Treeview插件 </li> <li> Markdown编辑器 </li> <li> 403、404、500错误页面配置 </li> <li> 数据库事务 </li> <li> 消息提示插件toastr.js </li> <li> 图片上传插件bootstrap fileinput </li> <li> 数字滚动效果 </li> <li> pv/uv流量统计 </li> <li> ... </li> </ul> <p> <br /> </p> <p> <span style="font-size:16px;"><span style="font-size:24px;"><strong>四、</strong></span><span style="font-size:24px;"><strong>课程部分内容截图如下</strong></span><span style="font-size:24px;"><strong></strong></span></span> </p> <p> <span style="font-size:18px;"><span style="font-size:18px;"><strong>1、首页</strong></span></span> </p> <p> <span style="font-size:16px;"><span style="font-size:24px;"><strong><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTE1MTJfMTM5LnBuZw?x-oss-process=image/format,png" /></span></strong></span></span> </p> <p> <span style="font-size:24px;"><span style="font-size:24px;"><strong><span style="font-size:24px;">2、菜单管理</span></strong></span></span> </p> <p> <span style="font-size:24px;"><span style="font-size:24px;"><strong><span style="font-size:24px;"><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTE3MjBfNzE5LnBuZw?x-oss-process=image/format,png" /></span><br /> </span></strong></span></span> </p> <p> <span></span> </p> <p> <span><span style="font-size:24px;"><strong>3、图床管理</strong></span><span style="font-size:24px;"><strong></strong></span><br /> </span> </p> <p> <span><span style="font-size:24px;"><strong><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTIwMTJfNjYwLnBuZw?x-oss-process=image/format,png" /><span></span></span><span></span><br /> </strong></span></span> </p> <p> <span><span style="font-size:24px;"><strong>4、图标管理<br /> </strong></span></span> </p> <p> <span><span style="font-size:24px;"><strong><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTIxMDBfMTcucG5n?x-oss-process=image/format,png" /><span></span></span><span></span></strong></span></span> </p> <p> <span><span style="font-size:24px;"><strong>5、留言反馈管理<br /> </strong></span></span> </p> <p> <span><span style="font-size:24px;"><strong><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MjEvMjAxOTA5MjExMDEwMTJfMzQ2LnBuZw?x-oss-process=image/format,png" /><span></span></span><span></span></strong></span></span> </p> <p> <span><span style="font-size:24px;"><strong>6、druid监控<br /> </strong></span></span> </p> <p> <span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTIzMzVfNTgwLnBuZw?x-oss-process=image/format,png" /></span> </p> <p> <br /> </p> <p> <span style="font-size:24px;"><strong></strong></span><span style="font-size:24px;"><strong>7、登录日志</strong></span><span style="font-size:24px;"><strong></strong></span> </p> <p> <span style="font-size:24px;"><strong><span></span><span><img alt="" src="https://imgconvert.csdnimg.cn/aHR0cDovL3d3dy5kcmVhbWxhbmQud2FuZy9pbWFnZXMvaW1hZ2UvMjAxOTA5MTkvMjAxOTA5MTkxMTI0MzJfOTQyLnBuZw?x-oss-process=image/format,png" /><span></span></span><span></span><br /> </strong></span> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页