迭代特性

小马哥 Spring编程思想笔记

Spring Framework

1. 课前准备
2. 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. DAO支持(DAO Support)
    4. O/R映射 (O/R Mapping)
    5. XML 编列(XML Marshalling)
  3. Web 技术
    1. Web Servlet 技术栈
      1. Spring MVC
      2. WebSocket
      3. SockJS
    2. Web Reactive 技术栈
      1. Spring WebFlux
      2. WebClient
      3. WebSocket
  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)
3. Spring 版本特性
Spring Framework版本Java标准版Java企业版
1.x1.3+J2EE 1.3+
2.x1.4.2+J2EE 1.3+
3.x5+J2EE1.4 和 Java EE 5
4.x6+Java EE6 和7
5.x8+Java EE7
4. 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
5. Spring 对Java语言特性运用
  1. Java 5语法特性

语法特性Spring支持版本代表实现
注解(Annotation)1.2+@Transactional
枚举(Enumeration)1.2+Propagation
for-each 语法3.0+AbstractApplicationContext
自动装箱(AutoBoxing)3.0+
泛型(Generic)3.0+ApplicationListener
  • Java 6 语法特性

  • 语法特性Spring 支持版本代表实现
    接口 @Override4.0+
  • Java 7语法特性

  • 语法特性Spring 支持版本代表实现
    Diamond语法5.0+DefaultListableBeanFactory
    try-with-resources 语法5.0+ResourceBundleMessageSource
  • Java 8语法特性

  • 语法特性Spring 支持版本代表实现
    Lambda语法5.0+PropertyEditorRegistrySupport
    6. Spring 对JDK API 实践
    1. 小于(<) Java 5 API

    API类型Spring 支持版本代表实现
    反射(Reflection)1.0+MethodMatcher
    Java Beans1.0+CachedIntrospectionResults
    动态代理(Dynamic Proxy)1.0+JdkDynamicAopProxy
  • Java 5 API

  • API类型Spring 支持版本代表实现
    XML处理(DOM,SAX…)1.0+XmlBeanDefinitionReader
    Java管理扩展(JMX)1.2+@ManagedResource
    Instrumentation2.0+InstrumentationSavingAgent
    并发框架(J.C.U)3.0+TreadPoolTaskScheduler
    格式化(Formatter)3.0+DateFormatter
    1. Java 6 API

    API类型Spring 支持版本代表实现
    JDBC4.0(JSR221)1.0+jdbcTemplate
    Common Annotations(JSR 250)2.5+CommonAnnotationBeanPostProcessor
    JAXB2.0(JSR222)3.0+Jaxb2Marshaller
    Scripting in JVM(JSR269)4.2+StandardScriptFactory
    可插拔注解处理API(JSR269)5.0+@Indexed
    Java Compiler API(JSR199)5.0+TestCompiler(单元测试)
  • Java 7 API

  • API类型Spring 支持版本代表实现
    Fork/Join框架(JSR166)3.1+ForkJoinPoolFactoryBean
    NIO2(JSR203)4.0+PathResource
  • Java 8 API

  • API类型Spring 支持版本代表实现
    Date and Time API(JSR310)4.0+DateTimeContext
    可重复Annotations(JSR337)4.0+@PropertySources
    Stream API(JSR335)4.2+StreamConverter
    ConpletableFuture(J.U.C)4.2+CompletableToListenableFutureAdapter
    7. Spring 对 Java EE API 整合
    1. Java EE Web技术相关

    JSR规范Spring 支持版本代表实现
    Servlet+JSP(JSR035)1.0+DispatcherServlet
    JSTL(JSR052)1.0+JstlView
    JavaServer Faces(JSR127)1.1+FacesContextUtils
    PortLet(JSR168)2.0-4.2DispatcherPortlet
    SOPA(JSR067)2.5+SoapFaultException
    WebServices(JSR109)2.5+CommonAnnotationBeanPostProcessor
    Websocket(JSR356)4.0+WebSocketHandler
  • Java EE 数据存储相关

  • JSR规范Spring 支持版本代表实现
    JDO(JSR12)1.0-4.2JdoTemplate
    JTA(JSR907)1.0+JtaTransactionManager
    JPA(EJB3.0 JSR220的成员)2.0+JpaTransactionManager
    Java Caching API(JSR107)3.2+JCacheCache
  • Java EE Bean技术相关

  • JSR规范Spring 支持版本代表实现
    JMS(JSR914)1.1+JmsTemplate
    EJB2.0(JSR19)1.0+AbstractStatefulSessionBean
    Dependency Injection for Java(JSR 330)2.5+AutowiredAnnotationBeanPostProcessor
    Bean Validation(JSR303)3.0+LocalValidatorFactoryBean
  • 资源相关

    1. JSR官方网址: https://jcp.org
    2. 小马哥JSP收藏: https://github.com/mercyblitz/jsr
    3. Spring官方文档根路径: https://docs.spring.io/spring/docs/
  • 8. 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*
    9. Spring 核心价值
    1. 生态系统
      1. Spring Boot
      2. Spring cloud
      3. Spring Security
      4. Spring Data
      5. 其他
    2. API抽象设计
      1. AOP抽象
      2. 事务抽象
      3. Environment抽象
      4. 生命周期
    3. 编程模型
      1. 面向对象编程
      2. 面向切面编程
      3. 面向元编程
      4. 面向模块编程
      5. 面向函数编程
    4. 设计思想
      1. OOP(Object-Oriented Programming)
      2. IoC/DI
      3. DDD(Domain-Driven Development)
      4. TDD(Test-Driven Development)
      5. EDP(Event-Driven Programing)
      6. FP(Functional Programing)
    5. 设计模式
      1. 专属模式
        1. 前缀模式
          1. Enable模式
          2. Configurable模式
        2. 后缀模式
          1. 处理器模式
            1. Processor
            2. Resolver
            3. Handler
          2. 意识模式
            1. Aware
          3. 配置器模式
            1. Configuror
          4. 选择器模式
            1. org.springframework.context.annotation.ImportSelector
      2. 传统GoF23
        1. 创建模式
          1. 抽象工厂(Abstract Factory)
          2. 构造器(Builder)
          3. 工厂方法(Factory Method)
          4. 原型(Prototype)
          5. 单体(Singleton)
        2. 结构模式
          1. 适配器(Adapter)
          2. 桥连(Bridge)
          3. 组合(Composite)
          4. 装饰器(Decorator)
          5. 门面(Facade)
          6. 轻量级(Flyweight)
          7. 代理(Proxy)
        3. 行为模式
          1. 责任链(Chain of responsibility)
          2. 命令(Command)
          3. 拦截器(Interpreter)
          4. 迭代器(Iterator)
          5. 调解者(Mediator)
          6. 备忘(Memento)
          7. 观察者(Observer)
          8. 状态(State)
          9. 策略(Strategy)
          10. 模板方法(Template Method)
    6. 用户基础
      1. Spring用户
        1. Spring Framework
        2. Spring Boot
        3. Spring Cloud
      2. 传统用户
        1. Java SE
        2. Java EE
    10. 面试题精选
    1. 什么是 Spring Framework?

      Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languages on the JVM, and with the flexibility to create many kinds of architectures depending on an applications’s needs.

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

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

      spring-core: Spring基础API模块,如资源管理,泛型处理

      spring-beans: Spring Bean相关,如依赖查找,依赖注入

      spring-aop: Spring AOP处理,如动态代理,AOP字节码提升

      spring-context: 时间 驱动,注解驱动,模块驱动

      spring-expression: Spring表达式语言模块

    3. Spring Framework的优势和不足是什么?

      ???

    11. 重新认识IoC
    1. IoC发展简介

    2. IoC主要实现策略

    3. IoC容器的职责

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

      1. Java SE
        1. Java Beans
        2. Java ServiceLoader SPI
        3. JNDI(Java Naming and Directory Interface)
      2. Java EE
        1. EJB(Enterprise Java Beans)
        2. Servlet
      3. 开源
        1. Apache Avalon
        2. PicoContainer
        3. Google Guice
        4. Spring Framework
    5. 传统IoC容器实现

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

    7. 依赖查找VS依赖注入

      优劣对比

    类型依赖处理实现便利性代码侵入性API依赖性可读性
    依赖查找主动获取相对繁琐侵入业务逻辑依赖容器API良好
    依赖注入被动提供相对便利低侵入性不依赖容器API一般
  • 构造器注入VS Setter注入

  • 面试题精选

    1. 什么是IoC?

      简单的说 IoC是反转控制,类似于好莱坞原则,主要有依赖查找和依赖注入实现

    2. 依赖查找和依赖注入的区别

      依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准API实现.而依赖注入则是手动或者自动依赖绑定的方式,无需依赖特定的容器和API

    3. Spring作为IoC容器有什么优势

      典型的IoC管理,依赖查找和依赖注入

      AOP抽象

      事务抽象

      事件机制

      SPI扩展

      强大的第三方整合

      易测试性

      更好的面向对象

  • AOP

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

    AOP 具体用以下哪种代理 取决于条件
    (具体条件查看源码org.springframework.aop.framework.DefaultAopProxyFactory#createAopProxy)
    Java动态代理
    CGLIB

                                    </div><div><div></div></div>
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                                </div>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值