zoukankan      html  css  js  c++  java
  • Spring常见面试题

    1. 什么是SpringIOC
    SpringIOC指的是控制反转,应用程序对象的创建,配置,维护,依赖交给了SpringIOC容器统一进行管理,从而实现松耦合。


    2. 说一下SpringIOC的实现原理
    使用反射机制+xml技术


    3. 什么是SpringAOP
    AOP,即面向切面编程。作为OOP的一种补充技术,传统的OOP是自伤而下的逻辑开发。而AOP是利用一种横切技术,将一个项目一刀切下来,剖开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为 “Aspect” , 即切面。所谓“切面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。可用于权限认证、日志、事务处理。

    4. AOP应用场景
    场景一: 记录日志
    场景二: 监控方法运行时间 (监控性能)
    场景三: 权限控制
    场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )
    场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )


    5. AOP的实现原理
    Spring中AOP的有两种实现方式:
    1、JDK动态代理 :通过接口创建动态类的实例,而不能对类创建动态代理,需要获得目标类的接口信息,生成一个实现了代理接口的动态代理类,再通过反射机制获得动态代理类的构造函数,利用构造函数实例化动态代理类。再调用具体方法前调用invokeHandel方法来处理。
    2、Cglib动态代理:是一个代码生成的类库,可以在运行时动态的生成指定类的一个子类对象,并覆盖其中特定方法并添加增强代码,从而实现AOP。CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final,那么它是无法使用CGLIB做动态代理的。

  • 相关阅读:
    webpack
    一 java包管理
    docker 保存本地容器 推送镜像
    virtualBox 安装linux系统 网络设置小记
    centos6.5编译安装nginx[整理二]
    go基本使用
    docker基础命令使用
    centos 安装docker
    docker 删除容器及镜像
    PHP Thread Safe和Non ThreadSafe
  • 原文地址:https://www.cnblogs.com/Eugene-Jin/p/12222755.html
Copyright © 2011-2022 走看看