很多朋友都问济宏同学,现在流行的Java到底是什么鬼?如何快速入门,快速上手?

济宏同学也在网上找了很多文章,但是没有一个文章能说得清楚。所以,济宏同学只好通过脑图方式,给小白们给一个Java现在最流行,且是唯一的Spring框架的学习基础。当然,现在还有国产的JFinal框架,大家可以自行百度脑补,不在本文之列。

首先,如果想快速入门Spring,需要从Spring的定义、框架、前台、后台,以及后台的单应用和分布式开发这些概念入手。

以下为Spring的脑图,大家可以按照以下顺序进行深入学习。

济宏在此文不会针对某个技术做很深入的讲解,只是给小白们一个总体的脉络。脑图中的每个节点,都是非常深入的内容,需要大家继续深入研究和学习。

需要电子版xmind文件的,请联系本人索取。

① Spring的定义

Spring是一个开源的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。

Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。

因此, Spring不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

② Spring的特性 IOC 控制反转 or DI(依赖注入)和 AOP 切面编程

划重点:这是Java小白们面试的必考内容。

IOC:

Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。

采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件(如XML)来指定。

直白点说,把所有对象都扔给Spring,你想用的时候直接拿来私有就行,不用再new一下了。

AOP:

通过预编译方式和运行期动态代理,实现在不修改源代码的情况下,给程序动态统一添加功能的技术。

直白点说,代码写完后,锦上添花的诸如日志记录、性能统计、安全控制、事务处理、异常处理的事儿,不用改源代码,直接用AOP就行。

③ Spring工作原理

废话不多说,脑图已经很清楚,把图片再高清放给大家,结合脑图的步骤,一看就懂的。

④ 框架

前端(非前台哦)

正好插一嘴,经常有面试的人前端和前台分不清楚。前端、后端,说的是开发框架。前台、后台,说的是具体的程序框架。一般,都叫前台页面(文员操作的界面)和后台页面(管理员或是IT操作的管理界面)。

以前比较流行的jQuery。记得8年前,济宏同学见到这玩意儿,兴奋得很。

现在比较流行的是React,Vue,Angular,后面都要加.js。

具体的优势和区别,可以看下图。但是,最好小白们自己要尝试用ide(Eclipse or Idea)去亲自到码云(https://gitee.com/)去下载几个项目玩玩。

济宏再废话一句,小白们没事可以多去码云转转,Github也挺好,不过小白们去码云,更加符合汉语的feel。

后端

其实没什么说的,就是MVC了。

单应用,用Spring Boot,分布式(微服务)用Spring Cloud或是Dubbo(据说阿里不更新了)。

对于单应用和分布式架构的选取,济宏同学想说一下自己的想法:

如果你的软件开发团队的开发水平不高,而且可调配的开发人员不多的情况下,济宏非常不推荐使用分布式架构。

如果是这个项目的确未来的交易量或是类似双十一这种数据量非常大的情况,那就花钱找市场上知名一点的开发公司来做。

否则,如果这个软件项目是企业内部使用,交易量不大的情况下,就用SpringBoot,做单应用。满足不了,直接MQ ,加刀片机等硬件往上堆。

分布式架构的特性,就是个三角形。记住三角形,你就知道分布式是啥了。

注册中心,现在常用的是Zookeeper,阿里的Nacos。

⑤ 前后端分离利器:nodejs

现今大公司的老项目,或多或少都会存在这样的一些问题 :

  • 前端代码越来越复杂
  • 前后端依旧高度耦合
  • 无法良好的支持跨终端

现在很多技术人员,会将NodeJS作为中间层,实现前后端分离。

我们使用Node层:

  • 转发数据,串接服务
  • 路由设计,控制逻辑
  • 渲染页面,体验优化
  • 中间层带来的性能问题,在异步ajax转成同步渲染过程中得到平衡

⑥ 发布

主流两个工具:Docker 和 k8s

Docker 是一个开源的应用容器引擎,基于Go语言,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。

k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容。

简而言之,Docker是大众跨平台的发布工具,k8s可以管理doker,实现集群式部署。

更多精彩内容请关注公众号:伟源科技

spring mvc后端代码实现弹出对话框_伟源|一图搞定Spring框架相关推荐

  1. spring mvc后端代码实现弹出对话框_Spring(3)——事务管理和MVC

    事务管理: 使用AspectJ的AOP配置管理事务 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  2. git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...

    最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一把全新的开发模式!虽然中间也碰到了一些问题,但整体的体验透露着未来感,因为整个过程都不需要使用我们最常用的IDEA,仅依靠浏览器就把一个Spri ...

  3. freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...

    不用说,Spring已经成为Java后端开发的事实上的行业标准.无数公司选择Spring作为基本开发框架.大多数Java后端程序员在日常工作中也会接触到Spring.因此,如何很好地使用Spring, ...

  4. MVC中执行成功弹出对话框

    Control中:ViewDate["Msg"]="添加成功"; View中:<td id="tdMsg" style="d ...

  5. python如何暂停脚本弹出对话框_如何在点击时暂停pyautogui脚本?

    我想让我的脚本Pyautogui暂停当用户点击并显示一个对话框或重新点击继续在最后一行暂停.在 我尝试了不同的测试,但没有成功.在 我主要用Queue测试当用户输入"Space"时 ...

  6. html弹窗确认取消公告代码,js 弹出确认与取消对话框的四种方法

    1,js弹出删除确认框 复制代码 代码示例: 弹出窗口 2,js删除前确认 复制代码 代码示例: function delete_confirm(e) { if (event.srcelement.o ...

  7. php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...

    asp.net弹出窗口代码大全 //关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write(""); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 th ...

  8. php网页,想弹出对话框, 消息框 简单代码

    php网页,想弹出对话框, 消息框 简单代码 <?php echo "<script language=\"JavaScript\">alert(\&q ...

  9. HTML点击按钮弹出对话框(仅代码)

    HTML点击按钮弹出对话框的代码(整个网页): <!doctype html> <html> <head><title>无标题文档</title& ...

最新文章

  1. 集成学习之Bagging
  2. 有趣的 Mysql 存储引擎
  3. C++:录入班级数学成绩,计算最大值、平均值、不及格人数
  4. 亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构
  5. 河北体检系统诚信企业推荐_海南膜结构停车棚加工厂诚信企业推荐
  6. 集群-如何理解集群?
  7. 【BZOJ1079】【codevs2428】着色方案,DP
  8. expec不管异常 try_JUnit测试异常
  9. 2008服务器操作系统安装,Windows server2008服务器安装图文教程
  10. Linux 系统下对目录扩容的方法
  11. 使用Python Seaborn和Pandas进行数据可视化
  12. VS2008环境下开发的某些程序在其他机器运行提示“由于应用程序配置不正确,应用程序未能启动”的问题(IIS)...
  13. FFplay命令分析-vf
  14. qemu启动openEuler Embedded镜像
  15. 一个喜欢搜罗软件的哥们
  16. MATLAB小技巧整理-那些你必须得知道的matlab技巧
  17. 移动硬盘分区后数据还能恢复吗?
  18. 虚拟机安装mysql数据库
  19. 松尾环 matlab,猝发式直扩信号数字化接收机载波同步技术研究
  20. 图像分类指标以及理解记忆

热门文章

  1. js实现前端根据部对象属性对对象数组进行排序
  2. Ubuntu移除mysql后重新安装
  3. 微信小程序组件 自定义单选
  4. 在eclispe的类中快速打出main方法
  5. Python数据分析与展示[第二周]
  6. windows phone7 学习笔记06——数据绑定
  7. 源码安装Tomcat及配置
  8. CentOS下SNMP的安装与使用
  9. win10 1909更新后无法上网三种解决方法
  10. 史上最高效Shell四剑客实操案例