对比着学习Spring系统,边学习边记录边分享!

  • Spring、spring core间的关系和异同
  1. Spring 是Spring Framework的简称,就是开源、轻量级的开发框架,是一个生态系统,提供了一系列工具和组件。
  2. Spring core是Spring框架七大模块中的容器模块,是最基础的一部分。提供了控制反转(IOC)和依赖注入(DI) ; Core是发现、建立 和维护每个Bean之间的关系所需要一系列工具 
  • SSH、SSM、SpringBoot的关系与应用的不同
  1.  spring就像舞台,遇到不同的演员组合,就会有不同的戏。
  2. SSH:spring+struts+hibernate       
  3. SSM:spring+springMVC+mybatis
  4. SpringBoot:基于spring框架的脚手架工具,简化spring应用程序 的初始化配置和开发过程,提供自动化配置和约定优于配置的特性(大部份配置可以通过默认值和自动配置来完成)
  • 技术 栈变化
  1. spring   ——>基础,永远的春天
  2. struts ——> springMVC
  3. hibernate  <——>mybatis(视项目对性能敏感度高不高)
  4. SSH   ——> SSM
  5. springBoot
  • Hibernate、mybatis、JPA与的优劣和异同、以及集成的不同
  1. hibernate   ORM映射框架   ,支持自动生成数据库表 ,可以不用写sql语句实现对数据库的操作  ;可移植性高;缓存机制完善(二、三级缓存) ;可调优困难;封装多,性能负担成本高;
  2. mybatis   轻量级ORM映射框架,字段映射+sql语句,灵活度更高;移植性成本高(sql语句重写);易调优;缓存机制不佳。
  3. 都封装了JDBC的操作,
  4. JPA是一种ORM规范,提供规范和编辑API,具体实现交给具体厂商.hibernate除了是一个ORM框架,也是JPA的实现。所以各个厂商按JPA规范,实现了不同版本的JPA实现
  5. JPA提供JPQL,Hibernate提供了HQL,类似,但HQL特性更多
  6. Spring Data JPA:统一各厂商JPA的持久化操作,切换不同的JPA不用重写代码。在JPA规范基础上再封闭一套JPA应用框架。为开发者提供统一接口调用,具体实现就由各厂商JPA实现者实现了。
  7. JPA是ORM规范,spring Data JPA是对JPA的抽象层,Hibernate是对JPA实现
  • struts与springMVC的异同
  1. struts是类级别拦截,springMvc是方法拦截
  2. struts与springMVC都是方法独立,但springMVC数据也是独立的,变量不共享
  3. springMVC与spring无缝集成,安全性更高,配置量更小
  4. springMVC入口是servlet,struts入口是拦截器
  5.  struts处理每次请求就会创建一个Action(多例),springMVC是基于servlet,多次请求只会创建一个controller(单例)    
  6. struts有自己的拦截机制,   SpringMVC用的是AOP方式
  7. strtuts一个请求,一个Action,配置繁杂,由于共享类变量,无法注解实现。SpringMVC方法和数据独立,通过注解可以实现controller的映射关系。相同的是,配置其实都比较类似web.xml配置入口,springmvc-servlet或struts.xml进行路径映射。
  8. 整合:struts要做进行配置。springMVC与springMVC是无缝对接的
  • 传统servlet与springMVC
  1.   springMVC是对servlet的延伸:servlet+spring+mvc设计模式   
  • MVC与JAVA三层架构
  1.  三层架构 是软件架构:表示层、业务层、数据层。表示层:与用户的交互层;业务逻辑层:接收请求,并处理具体业务需求;数据层:Dao层封装数据库访问操作
  2. MVC是设计模式,SpringMVC是开发框架:  模型(Model,javaBean和dao)、视图(View)、控制器(Controller);视图:网页与用户交互页面,控制器:协调处理请求和协调V与M间交互,模型(持久化与数据库的交互层)
  3. MVC与三层架构关系:MVC是用于构建展现层(表示 层),如:SpringMVC+业务层+数据层
  • SpringMVC与MVC间的关系
  1. MVC是架构模式,把应用程序的不同方面分层的设计模式,模型(Model)、视图(View)、控制器(Controller)
  2. SpringMVC是Web框架,是基于MVC模式实现。
  3. 典型MVC:JSP+servlet+javaBean
  4. 解决要么前后端代码写在sevlet或前后端代码写在jsp,引入MVC前后端各司其职
  • bean是什么
  1. spring bean是spring的主角,通过Bean注入类的属性和参数,通过Bean实现类的实例化。
  2. spring bean本质是spring IOC容器管理的对象  ,spring中最小执行单位  
  3. java   bean 是符合规范的java类,有无参构造函数,私有属性可通过get set方法获取 ,实现序列化接口
  4. spring bean不一定是 java bean,他们两者是交集关系
  • servlet
  1.   全称:server applet ,通过HTTP接收和响应来自Web客户端的请求 ,用于和浏览器完成数据交互,是前后端衔接技术、Controller层技术
  2. servlet与tomcat关系 :servlet是tomcat的组件,servlet功能要依赖servlet-api.jar,由tomcat提供。tomcat根据web.xml文件初始化servletConfig、ServletContext对象,创建HttpServletRequest和HttpServletResponse对象,一并交给Servlet实例。
  3. xml通过<servlet>、<servlet-mapping>的映射,把http请求路径与servlet的方法关联起来
  4. 创建继承servlet,重写doGet,doPost
  5. 生命周期:实例化(在浏览器输入路径,其对应的servlet就会被创建,单例)、初始化(多次请求,执行一次)、提供服务(doGet、doPost)、销毁(web重启、tomcat关闭)、被回收(GC垃圾回收)
  6. Redirect(两次请求;新URL;数据不共享(新请求)):重定向,(告诉你要请求XX页面,前端请求了,服务端才给你发)前端 跳转

    forward(一次求;URL不变;数据共享):请求转发(后端 直接把需要的页面内容发你)

  • Http参数传递的演化
  1. servlet时代: h ttpServletRequest .getParameter("参数名") ;   h ttpServletR esponse.getWriter().write(sb.toString()); 
  2. struts时代: 自动调用Action变量的get set方法,类变量共享。
  3. springMVC 时代 :返回 new ModelAndView("页面名")  ;mav.addObject("变量名",变量),方法参数会默认添加到ModelAndView;传入:对象、参数传入
  4. springboot时代:
  5. 总结:传参方法
  • 对象传入(参数匹配注入)
  • 属性字段传入(int id)
  • 参数传入(@RequestParam)
  • 接收路径占位符的值(@PathVariable) :restful风格 
       总结:返回方法
  • 通过request返回: request.getRequestDispatcher( "/list.jsp" ).forward(request,response);
  • ModelAndView返回:适合要指定页面和多个参数返回 ,如果 return url,addObject会掉失,只可返回ModelAndView 。(springMVC)
  • Model:适合只封装数据+return url;  (springMVC)
  • 直接return 对象:@ResetController 直接返回对象数据;@Controller 返回页面。【适合用于前后端分离】
  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值