博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM面试总结
阅读量:2392 次
发布时间:2019-05-10

本文共 2915 字,大约阅读时间需要 9 分钟。

文章目录

在这里插入图片描述

Spring

Spring中的两大核心?

相当于把每个bean与bean之间的关系交给第 三方容器进行管理.

1、IOC(Inversion of Control )或DI(Dependency Injection)       IOC控制权反转(转移)          原来:我的Service需要调用DAO,Service就需要创建DAO          Spring:Spring发现你Service依赖于dao,就给你注入.       核心原理:就是配置文件+[反射](工厂也可以)+容器(map)  2、AOP:面向切面编程       核心原理:使用动态代理的设计模式在执行方法前后或出现异常做加入相关逻辑。
我们主要使用AOP来做:  1、事务处理  2、权限判断  3、日志  4、....

Spring中Bean的⽣命周期?

在这里插入图片描述

[1]通过构造器或工厂方法创建bean实例[2]为bean的属性设置值和对其他bean的引用[3]调用bean的初始化方法[4]bean可以使用了[5]当容器关闭时,调用bean的销毁方法

Spring框架五种不同的作用域?

  • singleton:在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在。
  • prototype:一个bean可以定义多个实例。
  • request:每次HTTP请求都会创建一个新的Bean。该作用域仅适用于WebApplicationContext环境。
  • session:一个HTTP Session定义一个Bean。该作用域仅适用于WebApplicationContext环境。
  • globalSession:同一个全局HTTP Session定义一个Bean。该作用域同样仅适用于WebApplicationContext环境。
    bean默认的scope属性是"singleton"。

spring的依赖注⼊有哪⼏种⽅式?

在Spring容器中为⼀个bean配置依赖注⼊有四种⽅式:

  1. 使⽤属性的setter⽅法注⼊ 这是最常⽤的⽅式;
  2. 使⽤构造器注⼊;
  3. 使⽤Filed注⼊(⽤于注解⽅式).
  4. 静态、实例⼯⼚的⽅法注⼊

Spring的底层实现机制是什么?

使用Demo4j(解析XML)+Java反射机制

Demo4j 其实就是解析XML。使用反射机制实例化bean。

SpringAOP用到了什么代理?

JDK动态代理:对实现了接口的类生成代理

CGLib代理机制:对类生成代理

动态代理与静态代理区别?

静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。

动态代理:在程序运行时,运用反射机制动态创建而成。

Spring有哪些注解?

@Autowired(按类型注入)

@Service(标示为注入为服务层)
@Resource(按名称注入)
@Controller(标识控制器bean id)
@RequestMapping(表示映射URL路径)

Spring注入的过程

Autowired(按类型注入)

Resource(按名称注入)
这两个注解做了什么?为什么能够注入这个Bean?

Spring事务7传播属性5隔离级别?

  1. ISOLATION(隔离)_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.
    另外四个与JDBC的隔离级别相对应
1、幻读:事务1读取记录时事务2增加了记录并提交,事务1再次读取时可以看到事务2新增的记录;2、不可重复读:事务1读取记录时,事务2更新了记录并提交,事务1再次读取时可以看到事务2修改后的记录;3、脏读:事务1更新了记录,但没有提交,事务2读取了更新后的⾏,然后事务T1回滚,现在T2读取⽆效。

Spring中BeanFactory和FactoryBean有什么区别?

a. BeanFactory,以Factory结尾,表示它是⼀个⼯⼚类(接⼝),⽤于管理Bean的⼀个⼯⼚。在Spring中,BeanFactory是IOC容器的核⼼接⼝,它的职责包括:实例化、定位、配置应⽤程序中的对象及建⽴这些对象间的依赖。b. FactoryBean以Bean结尾,表示它是⼀个Bean,不同于普通Bean的是:它是实现了FactoryBean接⼝的Bean,[根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,⽽不是FactoryBean本身],如果要获取FactoryBean对象,请在id前⾯加⼀个&符号来获取。

BeanFactory和ApplicationContext有什么区别?

相同点:两者都是通过xml配置文件加载bean,ApplicationContext和BeanFacotry相比,提供了更多的扩展功能。不同点:BeanFactory是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext。

Spring Context初始化流程

在这里插入图片描述

AOP开发:

  1. 导⼊aop依赖包:
org.springframework
spring-aspects
4.3.12.RELEASE
  1. 创建切⾯类:

  2. 将切⾯类和⽬标类都加⼊到容器中,并开启基于注解的aop动态代理

  3. 测试:

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfAOP MathCalculator calculator = applicationContext.getBean(MathCalculator.class); calculator.div(1, 0);

SpringMVC的执行流程

在这里插入图片描述

在这里插入图片描述
快速记忆技巧:

核心控制器捕获请求、查找Handler、执行Handler、选择ViewResolver,通过ViewResolver渲染视图并返回

ORM?

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术

(mybatis)与Hibernate有什么不同?

iybatis:提供了将结果集自动封装称为实体对象和对象的集合的功能.ibatis可以出来复杂语句,而hibernate不能。

Hibername的好处:Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,并执行并返回java结果。

springboot的启动过程:

转载地址:http://ntxab.baihongyu.com/

你可能感兴趣的文章
miniz compared to other real-time and high-ratio compressors
查看>>
Random number for GPU
查看>>
SSR
查看>>
引擎核心架构
查看>>
[转]关于现代CPU,程序员应当更新的知识
查看>>
游戏设计架构的一种方法
查看>>
FMOD音频引擎简单使用
查看>>
通过一个例子学习Kubernetes里的PersistentVolumeClaim的用法
查看>>
容器,Docker, Kubernetes和Kyma,以及Kyma对SAP的意义
查看>>
推荐一个yaml文件转json文件的在线工具
查看>>
如何查找Authorization object在哪些ABAP代码里使用到
查看>>
使用SAP C4C rule editor动态控制UI上某个按钮是否显示
查看>>
ABAP正则表达式 vs SPLIT INTO
查看>>
使用JDBC操作SAP云平台上的HANA数据库
查看>>
如何提高后台服务应用问题的排查效率?日志 VS 远程调试
查看>>
另一种方式实现事务码SE16里的结果集修改
查看>>
机器学习在销售报价单的产品推荐场景中的作用
查看>>
CRM中间件里的发布-订阅者模式
查看>>
为什么有的系统的事务码BSP_WD_CMPWB看不见Enhance Component这个按钮
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>