2020 - 面试刷题 ING(Spring知识点)

前面的文章介绍java基础知识,那这里就介绍下框架的知识点

技术不断发展,服务开发速度要求不断提高,服务的可用性不断被强调,框架也在不断的迭代,我了解的框架从最开始的struts 到二代,然后到spring ,spring也在不断发展,spring-MVC  , spring boot , springColud. 市面上框架有很多,我们就国内比较流行的spring展开分析。

Spring基础知识

  1. spring有哪些模块?CORE / CONTEXT / DAO / ORM / AOP / WEB / WEB-MVC
  2. 讲述一下springboot自动装配? - 通过少量注解或简单配置就能使用第三方组件的功能
  3. Spring自动装配原理?Spring Boot的自动装配原理_YING—country的博客-CSDN博客_springboot自动装配原理 
    •  通过@EnableAutoConfiguration 开启自动装配
    • 通过SpringFactoriesLoader 扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到 Spring 容器
    • 通过 @Condition 来进行按需加载配置类
  4. spring.factories中这么多配置每次启动都要全部加载吗?不会,会根据conditionOnXXX进行过滤
  5. Spring 的bean初始化流程
    从spring启动开始分析
    
    1.先扫描所有BeanDefination--RootBD/GenericBD, 根据Order优先级决定初始化顺序
    2.组装好所有的 BeeanPostProcessor ,为后续bean 处理做好准备
    3.getBean() ---(抽象类/非单例/懒加载-不需要进行Bean实例化)--doCreateBean
        3.1 先创建 bean 空实例
        3.2 放置到一个三级缓存中 - 进行bean的提前暴露
        3.3 循环 beanPostProcessor 的 before 扫描对应注解进行增强
        3.4 执行populate 进行DI 依赖注入 - 比如 propertyValue 基础配置信息注入 /  Autowire引用注入(引用注入会出发getBean()操作,如果为空等于新一轮的bean初始化) 
        3.5 执行initializeBean ,进行@PostContract 方法调用 / initializingBean接口方法调用 / init-method方法调用,普通方法初始化
        3.5 执行 beanPostProcessor 的 after 扫描对应注解进行增强
        3.6 getAdvicesAndAdvisorsForBean 进行AOP增强
    4.返回初始化的bean实例
  6. 自定义一个注解,这其实是java自己能干的活 -  @Interface - (@Target/@Tetention/@Documented/@Inherited)  - 通过Class对象.getAnnotation()方法来使用,最好的例子是springAOP注解和spring入参规则匹配

参考文章:

   Spring常见面试题总结(超详细回答)_张维鹏的博客-CSDN博客_spring面试题

===============================答案分享

Spring

  1. spring常用注解:

    1. 先从spring入口分析: @SpringBootApplication

      1. springBootConfiguration | EnableAutoConfig | CompentScan

      2. 还有最重要的@Condition |@ConditionOnBean |@ConditionOnMissBean

    2. 配置类 : @Configuration | @Import |@Recourse | @Fliter

    3. 各类Enable开启 : @EnableTranscational | @EnableAspectJ | @EnableSpringSecurity

    4. @Bean | @Compent| @Service |@Entity | @Mapper | @Repository | @Controller | @RestController | @RequestMapper | @AdvicerException | @GET |POST|PUT| DELETE|PATCH|@Request |@Response

  2. IOC 控制反转:由spring来管理bean的生命周期-beanFactory

  3. DI 依赖注入 :属性注入由spring完成

  4. AOP面向切面:将通用功能抽离,类似事物管理,日志管理,权限管理,异常管理

  5. spring的事物管理,transcationTemplate, try/cache/finally - undo|redo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值