一般的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开发,想转行的

一般的java项目后台都有什么技术?相关推荐

  1. 一套完整java项目 后台+管理+前端

    分享一套完整的项目: 一.项目功能 此项目是一套完整的小商场系统,主要包括商场后台系统.前端管理页面,管理后台系统.是不是很完善呀.作者对于项目有着详细的介绍,从技术栈到系统的搭建. 从用户登陆,商品 ...

  2. Java项目:后台管理系统脚手架项目(java+SpringBoot+FreeMarker+mysql+JSP)

    源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBoot框架开发的后台管理系统脚手架项目.之所以称为脚手架项目,是因为这个项目复用性很强,如果以后有其他 ...

  3. 优秀的 Java 项目代码都是如何分层的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/ej56f 1.背景 2.如何进 ...

  4. 一般的Java项目需要JVM调优吗?

    一般是不需要的,JVM调优是最后的手段. 1.调优原则 JVM调优听起来很高大上,但是要认识到,JVM调优应该是Java性能优化的最后一颗子弹. 比较认可廖雪峰老师的观点,要认识到JVM调优不是常规手 ...

  5. java输出打印到文件_log4j简单使用java项目--后台打印以及输出到文件

    1,导入log4j-1.2.15.jar 2,在src下面新建log4j.properties 其内容为 ### 设置### log4j.rootLogger = debug,stdout,D,E # ...

  6. Java项目:SpringBoot美容院后台管理系统

    作者主页:源码空间站2022 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目为美容院后台管理系统, 操作员包含以下功能:操作员登陆,操作员首页,会员列表 ...

  7. Java项目:SSM宠物商城带后台管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录: ...

  8. Java项目:微信小程序商城+后台管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本项目为小程序商城系统前后台,前台为普通会员用户登录,后台为管理员登录: 程序功能: ...

  9. Java项目:SSM酒吧后台管理系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 管理员角色包含以下功能: 管理员登录,桌位信息查看,查看账单,日常维护,酒水库存管理等 ...

  10. Java项目开始前必要的七大准备工作,少一步你都得重头开始写

    万事开头难,有一个好的开始整个流程走下来才会更轻松,没有一个好的开始很容易整个崩盘,最后只能重头再来 我们通常说的Java项目也都是JavaWeb,J2ee项目;现在说的是JavaWeb. 最简单的办 ...

最新文章

  1. linux释放内存脚本
  2. liunx使用ssh免密登录
  3. jQuery Mobile手机网站案例
  4. cocos 时间函数需要什么引用_2021国家公务员考试时间是什么时候 国考备考时间需要多久...
  5. 功能到位 + 颜值爆表的开源任务管理工具
  6. Windows编译OpenSSL
  7. AJAX ASP/PHP 请求实例
  8. Qt学习笔记之MySQL数据库
  9. Spring 核心容器类BeanFactory
  10. BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈
  11. RabbitMQ快速安装配置指南
  12. 0基础怎么学python10010基础怎么学python_0基础学python全套python教程
  13. Python---查找序列的最长递增子序列
  14. Java生成指定范围随机数的方法
  15. 【BZOJ1965】【codevs1446】洗牌,快速幂+扩展欧几里德
  16. 转 如何通过ildasm/ilasm修改assembly的IL代码
  17. 分享CodeIgniter上传图片成功的全过程
  18. 施耐德 m340 编程手册_施耐德推出开放自动化平台,开启“软件驱动自动化”时代...
  19. 计算机音乐有哪些优势,谈谈用电脑听无损音乐的好处
  20. 安徽大别山农家乐包吃住

热门文章

  1. 计算机怎么格式化硬盘,电脑格式化硬盘 电脑格式化硬盘要怎么操作
  2. java茌首字母_获取输入字符的首字母(中文为拼音首字母)
  3. ArcGIS使用模型构建器批量剪裁影像
  4. PTA---约分最简分式 (10 分)
  5. 人力资源管理系统课程设计
  6. Fedora34/35/36 软件闪退解决
  7. C语言程序设计摘抄笔记1
  8. windows7 使用激活工具激活系统出现的问题汇总
  9. 每日一题之 hiho1542 无根树变有根树
  10. C++中的仿函数(functors)和仿函数适配器(adapter function)