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