• 怎样理解ssh 、ssm 、spring 、springmvc 、spring boot 、spring cloud
  • ssh :SSH是一个缩写,是struts+spring+hibernate三个框架整合在一起.
  • ssm :SSM其实指的是3个框架,分别代表了不同的含义,SSM是一个缩写,是Spring+SpingMVC+mybatis三个框架整合。SSM框架,是三层结合所成的框架,分别是,Spring,SpringMVC,MyBatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC代表了Model,View,Controller接收外部请求,进行分发和处理。Mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
  • spring :Spring目的就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置 内部通过反射去动态的组装对象) 要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。spring的定义不管是从官方仍是市面上已经不少可以清晰明了的作出解释了。我姑且简单定义它为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器。Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。
  • springIoC :IoC:IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”。
    概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系  
    核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean   简单理解:它是动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。
  • IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦
  • IOC的别名:依赖注入(DI) 他的这个答案,实际上给出了实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
  • 举一个生活中的例子,来帮助理解依赖注入的过程。例如:USB接口和USB设备,电脑主机就从外置硬盘上读取文件,挂接外部设备的权力由我作主,即控制权归我,至于USB接口挂接的是什么设备,电脑主机是决定不了,它只能被动的接受。这就是常见的一个依赖注入的例子,这个过程中,“我”就相当于ioc容器
  • AOP(Aspect-Oriented Programming): 面向方面编程 
  • 代理的两种方式:静态代理: a.针对每个具体类分别编写代理类;  b. 针对一个接口编写一个代理类;
  • 动态代理:针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
  • AOP(Aspect Oriented Programming),是面向切面编程的技术。AOP基于IoC基础,是对OOP的有益补充。
  • 通用逻辑则使用AOP技术进行横向切入,由专人去处理这些通用逻辑,会使得任务简单明了,提高开发和调试的效率。
  • 实现aop的两种方式:a.基于XML配置 ,切面在applicationContext.xml中的配置。b.基于注解配置 ,在applicationContext.xml中配置
  • springmvc :SpingMVC是基于Servlet封装的 Web 开发框架,SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。SpringMVC 是类似于 Struts2 的一个 MVC 框架,在实际开发中,接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示,但是上手难度却比 Struts2 简单。而且由于 Struts2 所暴露出来的安全问题,SpringMVC 已经成为了大多数企业优先选择的框架。
  • 业内常见的mvc模式的开发框架有Struts1,Struts2等 spring做为专业的开发web项目的开源框架,springMvc为内部的一个模块环节,一样采起mvc设计模式。 因此在使用spring开发web项目时,做为核心环节的MVC可使用struts1/struts2/springmvc
  • MVC和三层架构的区别 :
  • M 即Model(模型层),主要负责处理业务逻辑以及数据库的交互
  • V 即View(视图层),主要负责显示数据和提交数据
  • C 即Controller(控制层),主要是永作辅助捕获请求并控制请求转发
  • 三层
  • UI界面层、BLL业务逻辑层、DAL数据访问层
     
  • 三层是基于业务逻辑来分的,而mvc是基于页面来分的
  • MVC模式是一种复合设计模式,一种解决方案
  • 三层是种软件架构,通过接口实现编程
  • 三层模式是体系结构模式,MVC是设计模式
  • 三层模式又可归于部署模式,MVC可归于表示模式
  • spring boot :spring boot 是基于是Spring的扩展,解决了Spring 中XML文件配置还内嵌了容器,使用spring整合基础框架做为项目架构时,大多数初级人员在搭建项目时花费了不少时间也未必能搭建明白。 spring-boot就是为了解决开发人员这个痛点而诞生的,说白了就是把之前的手动配置的过程自动化封装了,提供默认的配置。Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。你们以为挺好用,因而按照这种模式搞了一个 MVC 框架(一些用 Spring 解耦的组件),用开发 web 应用( SpringMVC )。而后有发现每次开发都要搞不少依赖,写不少样板代码很麻烦,因而搞了一些懒人整合包( starter ),这套就是 Spring Boot 。
  • Spring Boot其实不是什么新的框架,它默认配置了不少框架的使用方式,就像 maven整合了全部的jar包,Spring Boot整合了全部的框架。
  • Spring Boot的核心思想就是约定大于配置,一切自动完成。采用 Spring Boot能够大大的简化你的开发模式,全部你想集成的经常使用框架,它都有对应的组件支持。
  • spring cloud :springcloud是基于springboot构建的微服务架构,Spring Boot是 Spring的一套快速配置脚手架,能够基于 Spring Boot快速开发单个微服务, SpringCloud是一个基于 Spring Boot实现的云应用开发工具; Spring Boot专一于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架;
  • 上来直接学习spring boot,springcloud可能不容易理解,
  • 要先学习Servlet,Spring,SpingMVC,SpringJDBC,hibernate,mybatis,spring boot,springcloud,struts和struts2基本上没人用了,可以用于扩展,感兴趣的可以学习一下.