笔记-小马哥 Spring编程思想笔记

小马哥 Spring编程思想笔记-第一章

  1. Spring 特性总览

    1. 核心特性
      1. IOC 容器(IoC Container)

      2. Spring 事件(Events)

      3. 资源管理(Resources)

      4. 国际化(i18n)

      5. 校验(Validation)

      6. 数据绑定(Data Binding)

      7. 类型转换(Type Conversion)

      8. Spring 表达式(Spring Express Language)

      9. 面向切面编程(AOP)

    2. 数据存储(Data Access)
      1. JDBC
      2. 事务抽象(Transactions)
      3. D AO支持(DAO Support)
      4. O/R映射 (O/R Mapping)
      5. XML 编列(XML Marshalling)
    3. Web 技术
      1. Web Servlet 技术栈
      1. Spring MVC
      2. bSocket
      3. SockJS
      2. Web Reactive 技术栈
      1. Spring WebFlux
      2. WebClient
      3. ebSocket
    4. 技术整合(Integration)
      1. 远程调用(Remoting)
      2. Java消息服务(JMS)
      3. Java连接架构(JCA)
      4. Java管理扩展(JMX)
      5. Java邮件客户端(Email)
      6. 本地任务(Tasks)
      7. 本地调度(Scheduling)
      8. 缓存抽象(Caching)
      9. Spring测试(Testing)
    5. 测试(Testing)
      1. 模拟对象(Mock Objects)
      2. TestContext 框架(TestContext Framework)
      3. Spring MVC 测试(Spring MVC Test)
      4. Web 测试客户端 (WebTestClient)
  2. Spring 模块化设计

    1. spring-aop
    2. spring-aspects
    3. spring-context-indexer
    4. spring-context-support
    5. spring-context
    6. spring-core
    7. spring-expression
    8. spring-instrument
    9. spring-jcl
    10. spring-jdbc
    11. spring-jms
    12. spring-messaging
    13. spring-orm
    14. spring-oxm
    15. spring-test
    16. spring-tx
    17. spring-web
    18. spring-webflux
    19. spring-webmvc
    20. spring-websocket
  3. Spring 编程模型

    1. 面向对象编程
      1. 契约接口: Aware、BeanPostProcessor…
      2. 设计模式: 观察者模式、组合模式、模板模式…
      3. 对象继承: Abstract*类
    2. 面向切面编程
      1. 动态代理: JdkDynamicAopProxy
      2. 字节码提升: ASM、CGLib、AspectJ…
    3. 面向元编程
      1. 注解: 模式注解(@Component、@Service、@Respository)
      2. 配置: Environment抽象、PropertySources、BeanDefinition
      3. 泛型: GenericTypeResolver、ResolvableType…
    4. 函数驱动
      1. 函数接口: ApplicationEventPublisher
      2. Reactive: Spring WebFlux
    5. 模块驱动
      1. Maven Artifaces
      2. OSGI Bundles
      3. Java 9 Automatic Modules
      4. Spring @Enable*
  4. Spring 核心价值

    1. 生态系统
      Spring Boot
      Spring cloud
      Spring Security
      Spring Data
      其他
    2. API抽象设计
      AOP抽象
      事务抽象
      Environment抽象
      生命周期
    3. 编程模型
      面向对象编程
      面向切面编程
      面向元编程
      面向模块编程
      面向函数编程
    4. 设计思想
      OOP(Object-Oriented Programming)
      IoC/DI
      DDD(Domain-Driven Development)
      TDD(Test-Driven Development)
      EDP(Event-Driven Programing)
      FP(Functional Programing)
    5. 设计模式
      1. 专属模式
        前缀模式
        Enable模式
        Configurable模式
      2. 后缀模式
        处理器模式
        Processor
        Resolver
        Handler
        意识模式
        Aware
        配置器模式
        Configuror
        选择器模式
      3. 传统GoF23
        1. 创建模式
          抽象工厂(Abstract Factory)
          构造器(Builder)
          工厂方法(Factory Method)
          原型(Prototype)
          单体(Singleton)
        2. 结构模式
          适配器(Adapter)
          桥连(Bridge)
          组合(Composite)
          装饰器(Decorator)
          门面(Facade)
          轻量级(Flyweight)
          代理(Proxy)
        3. 行为模式
          责任链(Chain of responsibility)
          命令(Command)
          拦截器(Interpreter)
          迭代器(Iterator)
          调解者(Mediator)
          备忘(Memento)
          观察者(Observer)
          状态(State)
          策略(Strategy)
          模板方法(Template Method)
  5. 面试题精选

    1. 什么是 Spring Framework?
      Spring使创建Java企业应用程序变得容易。它提供了在企业环境中使用Java语言所需的一切,支持将Groovy和Kotlin作为JVM上的替代语言,并具有根据应用程序的需要创建多种体系结构的灵活性。

    2. Spring Framework 有哪些核心模块?

      1. spring-core: Spring基础API模块,如资源管理,泛型处理
      2. spring-beans: Spring Bean相关,如依赖查找,依赖注入
      3. spring-aop: Spring AOP处理,如动态代理,AOP字节码提升
      4. spring-context: 时间 驱动,注解驱动,模块驱动
      5. spring-expression: Spring表达式语言模块
      6. Spring Framework的优势和不足是什么?
  6. 重新认识IoC

    1. IoC容器的职责

      1. 通用职责
      2. 依赖处理
        依赖查找
        依赖注入
      3. 生命周期管理
        容器
        托管的资源(Java Beans或其他资源)
      4. 配置
        容器
        外部化配置
        托管的资源(Java Beans或其他资源)
    2. IoC容器的实现

      1. 特性
        依赖查找
        生命周期管理
        配置元信息
        事件
        自定义
        资源管理
        持久化
      2. 规范
        JavaBeans
        BeanContext
        轻量级IoC容器
  7. 面试题精选

    1. 什么是IoC?
      简单的说 IoC是反转控制,类似于好莱坞原则,主要有依赖查找和依赖注入实现
    2. 依赖查找和依赖注入的区别
      依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准API实现.而依赖注入则是手动或者自动依赖绑定的方式,无需依赖特定的容器和API
    3. Spring作为IoC容器有什么优势
      ​ 典型的IoC管理,依赖查找和依赖注入
      ​ AOP抽象
      ​ 事务抽象
      ​ 事件机制
      ​ SPI扩展
      ​ 强大的第三方整合
      ​ 易测试性
      ​ 更好的面向对象
  8. OOP与AOP区别

    1. 与OOP对比,传统的OOP开发中的代码逻辑是自上而下,在这些自上而下的过程会产生写横切性的问题,而这些横切性的问题又与我们主业务逻辑关系不大,会散落在代码的各个地方,造成难以维护.
    2. AOP的编程思想就是把这些横切性的问题和主业务逻辑进行分离,从而起到解耦的目的.
  9. AOP底层实现原理

    1. Java动态代理
    2. CGLIB
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值