1 .Spring 框架是一个什么框架?
Spring 是一个资源整合框架,其核心是资源整合,然后以一种更加科学的方式对外提供服
务,例如提高对象的应用效率,降低系统开销,提高代码的可维护性等等。其官方网址为
spring.io.
2 .Spring 框架中有哪些重要的模块?
Spring IOC , Spring AOP,Spring WEB,Spring Data 等
3 .Spring 框架是如何构建对象?
Spring 框架中所有 Bean 对象都是通过 BeanFactory 接口类型的工厂对象构建的,此工厂
底层会基于 Java 中的反射技术进行实现,首先获取类的字节码对象,然后基于字节码对象
获取构造方法对象,最后基于构造方法对象构建类的实例对象。
4 . 如何理解 spring IOC 设计?
IOC 是一种设计思想,我们称之为控制反转,本质上讲解的是对象控制权问题。基于这种设
计可以让初学者将对象的控制权转交给第三方,由第三方专业团队管理和应用对象。这样可
以更好的避免对象的非正确使用方式,进而更好改善对象在内存中的科学应用。这个 IOC 设
计从生活的角度可以理解为由股票操盘手负责帮你进行资金管理,由父母包办你的婚姻。再
简单总结一下的话, IOC 可以理解为饭来张口、衣来伸手。(可以让初级程序坐享其成,因
为初级程序员写的程序规范性不够,资源应用方式不够科学)
5 . 为什么要将对象交给 spring 管理?
Spring 为我们的对象赋予了很多个更加科学的特性 , 例如延迟加载(@Lazy) , 作用域 (@Scope),生命周期方法 (@PostConstruct/@PreDestory) 以及运行时的自动依赖注入 DI(降低耦合 , 提高程序的可维护性 ) 机制等,基于这些特性可以更好的提高对象的应用性能 以及程序的可扩展性。
DI( 依赖注入 - 兵马未动粮草先行 ) ,依赖注入之前首先需要依赖查找( DL ) - 按类型、名字
6 .Spring 框架中的 Bean 有什么特性?
Spring 框架为了更加科学的管理和应用 Bean 对象,为其设计相关特性,例如:懒加
载 (@Lazy) 、作用域 (@Scope) 以及生命周期方法。
7 .Spring 中用于定义 Bean 生命周期方法的注解?
1) @PostConstruct
2) @PreDestroy
8 .Spring 中用于实现依赖注入的注解?
1) @Autowired (描述属性,构造方法, set 方法,其它),默认优先按类型查找
2) @Resource (描述属性,构造方法, set 方法),默认优先按名称进行查找。
9 .@Autowired 注解有什么作用?
@Autowired 由 spring 框架定义,用于描述类中属性或相关方法 ( 例如构造方法 ) 。 Spring
框架在项目运行时假如发现由他管理的 Bean 对象中有使用 @Autowired 注解描述的属性或
方法,可以按照指定规则为属性赋值 (DI) 。其基本规则是:首先要检测容器中是否有与属性
或方法参数类型相匹配的对象,假如有并且只有一个则直接注入。其次,假如检测到有多个,
还会按照 @Autowired 描述的属性或方法参数名查找是否有名字匹配的对象,有则直接注入,
没有则抛出异常。最后,假如我们有明确要求,必须要注入类型为指定类型,名字为指定名
字的对象还可以使用 @Qualifier 注解对其属性或参数进行描述 ( 此注解必须配合
@Autowired 注解使用 ) 。
10 . @Qualifier 注解的作用?
@Qualifier 注解用于描述属性或方法参数,当有多个相同类型的 bean 却只有一个需要自

动装配时,将 @Qualifier 注解和 @Autowire 注解结合使用以消除这种混淆,指定需要装
配的确切的 bean 。
11 .@Component @Configuration 注解的异同点?
@Component 注解通常用于描述一般 bean 对象,比如具备一定通用性的对象。
@Configuration 注解通常用于描述 spring 工程中的配置类,是一个增强版的
@Component 注解,在配置类中定义一些由 @Bean 注解描述的方法,然后通过这些方法对一
些自己定义或第三方的 Bean 进行对象的创建和初始化。当我们使用这 @Configuration 注
解描述一个配置类时, Spring 框架底层会为这个 @Configuration 注解描述的配置类创建
一个 CGLIB 代理对象,然后由代理对象调用 @Bean 注解描述的方法,同时底层会检测方法
返回的 Bean 是否已创建,假如已创建则不再创建。使用 @Component 注解描述类时,系统
底层并不会为此类创建代理对象,只是创建当前类的对象,然后调用 @Bean 注解描述的方法,
创建和初始化 Bean ,方法每调用一次就会创建一个新的对象。
12 . Spring 中用于定义组件的注解?
1) @Component
2) @Service
3) @Controller
4) @Configuration
5) @Repository
6) @Bean
13 . Spring MVC 中描述方法的注解?
1) @RequestMapping
2) @PostMapping
3) @GetMapping
4) @DeleteMapping
5) @PutMapping
6) @PatchMapping
7) @ResponseBody
14 .如何理解 Spring 中的 AOP 设计?
AOP ( Aspect Orient Programming )是一种设计思想,是软件设计领域中的面向切面编
程,它是面向对象编程 (OOP) 的一种补充和完善。实际项目中我们通常将面向对象理解为一
个静态过程 ( 例如一个系统有多少个模块,一个模块有哪些对象,对象有哪些属性 ) ,面向切
面理解为一个动态过程(在对象运行时动态织入一些扩展功能或控制对象执行)
15 .Spring AOP 的应用场景有哪些?
1) 日志记录
2) 事务控制
3) 权限控制
4) 缓存应用
5) 异步操作
6) 限流熔断

Spring 框架分析相关推荐

  1. 浅谈Spring框架注解的用法分析

    1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是"singleton",除此之外还有proto ...

  2. 浅谈 Spring 框架注解的用法分析

    1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是"singleton",除此之外还有proto ...

  3. spring 全局变量_[Spring]-Spring框架-02-IOC容器

    Spring框架 IOC容器 理解IOC容器和DI依赖注入 IOC容器 Inverser Of Control反转控制 就是把原来在程序中创建HelloService对象的控制权限交给Spring管理 ...

  4. 阿里三面让我现场改造Spring框架,明天带他去爬山!

    作为一个Java程序员,提到开源框架,Spring无疑是绕不过去的门槛,相信大家对它都不陌生,或多或少都用过. 但是如果谈到改造Spring框架,实现它的自定义扩展,以及大厂面试必问的源码,很多人就会 ...

  5. spring学习12 -Spring 框架模块以及面试常见问题注解等

    以下为spring常见面试问题: 1.Spring 框架中都用到了哪些设计模式? Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式-在AOP和remoting中被用的比较 ...

  6. Spring 框架的设计理念与设计模式分析

    Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 图 1 .Spring 框架的总体架构图 从上图中可以看出 Spring ...

  7. Spring系列之Spring框架和SpringAOP集成过程分析(十)

    转载请注明出处:https://blog.csdn.net/zknxx/article/details/80724180 在开始这个系列之前大家先想一下我们是怎么在项目中使用SpringAOP的(这里 ...

  8. 实现基于Spring框架应用的权限控制系统(转)

    为什么80%的码农都做不了架构师?>>>    前注:当我摸到了通过filter拦截权限,通过AOP拦截方法,通过权限控制菜单的时候,猛然发现这一切的一切已经是别人已经发明好的轮子. ...

  9. Spring框架入门基础,不可多得的干货

    Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO.Hibernate 和 iBatis SQL Map.所有这些都遵从 Spri ...

最新文章

  1. 企业品牌竞争力研究(二):提高企业品牌竞争力的要素(创新SPR理论)
  2. python3.6.4安装教程-centos7中安装python3.6.4的教程
  3. SpringCloud Zuul(四)之工作原理
  4. select * from where 三个条件_VBA学习笔记70: Select语句基础
  5. 线程销毁_多线程(2)-Java高级知识(9)
  6. 13muduo_base库源码分析(四)
  7. Hadoop 参数配置优化
  8. 嘉楠科技多位高管退出,知情人称管理层夺权内斗
  9. webpack搭建pixi.js开发环境
  10. 经验 | 训练多任务学习(Multi-task Learning)方法总结
  11. 关于sd卡的读取权限
  12. 由于无法验证发布者 所以windows阻止此软件
  13. 前端js华为云obs断点续传上传
  14. 如何重新设置苹果id密码_苹果ID密码忘了怎么办?
  15. 100个冷笑话,越往后越冷(郁闷时专用……)
  16. c 打开静态html文件,静态网页可以直接被浏览器解析显示,下面
  17. virtual audio cable
  18. c语言简单编程题目及答案,经典练习C语言编程的题目及答案整理.pdf
  19. 几何公差之基准的定义和3-2-1原则
  20. C语言开发之CMakeList(其三)

热门文章

  1. 风控建模中的IV和WOE
  2. 基于J2EE架构的项目开发团队中的角色与职责
  3. json spirit_Spirit App:Web实时轻松动画
  4. 2019年数学建模A题 高压油管的压力控制
  5. Excel通过ODBC连接MySQL
  6. 机器人网络系统时延笔记(LAN+WLAN)
  7. MySQL数据库介绍及特点
  8. eclipse的使用简介
  9. 阿里云服务器实例忘记用户名密码
  10. hashCode:哈希值