Java-Spring 学习笔记

Java-Spring 学习笔记

学习目标:了解原理和编程思想,具备阅读相关源码的能力

Java 和 Spring 的关系

  • Spring 利用Java 的特性
  • 实现可IOC容器
  • 整合了更多的标准和生态
  • 是最流行的企业级Java编程框架

Spring Framework包含什么

  • Java增强:注解、事件、资源
  • IoC核心:依赖注入、Spring Bean、BeanFactory、应用上下文
  • 扩展工具:国际化、占位符、类型转换、数据绑定、检验

IOC 反向控制

  • 是好莱坞原则的一种编程原则「你不要给我打电话/我会给你打电话」
  • 核心思想是,数据主动调用业务逻辑,而不是业务根据需要去寻找数据。

MVC 编程模式

  • 经典、传统、相对落后
  • V 是前端界面
  • C 根据V上面的交互操作确定调用哪些M,根据M的返回情况控制V的变化
  • M 是可以被复用的数据调取、数据计算等业务处理模块

DI依赖注入

  • IOC的实现方式之一
  • 把有依赖关系的类放到容器中,然后解析出这些类的实例,实现解耦
  • a依赖b,但a不控制b的创建和销毁,只能使用b,那么b的控制权交给a之外处理,这叫控制反转(IOC),而a要依赖b,必然要使用b的instance
  • 注入方式
    • 通过a的接口,把b传入;
    • 通过a的构造,把b传入;
    • 通过设置a的属性,把b传入;

Tomcat和Undertow

  • Tomcat 重量,功能多
  • Undertow 轻量,性能好

POJO 简单的Java 对象

  • 只有getter setter 的类
  • 没有业务逻辑
  • 也叫作普通Java Bean
  • Java Beans 产生的初衷是为了解决IDE组件复用的问题

DI注入实战

  • 官方推荐构造器注入,但是注入对象3个以下
  • Setter注入无法处理注入对象处理顺序的问题

Event 事件实战

  • 实现Listener接口
  • 使用注解

Annotations 注解

  • 用于保存程序相关的配置信息
  • 和XML相比,注解是一种松散的配置方法
  • 可以选择注解配置信息使用的阶段:编译时、运行时
  • 可以选择注解的对象:类型、构造器、类、字段、方法、注解
  • 注解的注解叫做元注解
  • 模式注解-component
  • 模式注解用于注解扫描、候选对象
  • 组合注解-多个注解合成一个

Bean 生命周期

  • 元信息:配置 解析 注册 加载
  • 实例化、赋值、回调
  • 初始化
  • 销毁、回收

Environment 抽象

  • 占位符处理 ${xxxx}

Spring AOP 面向切面编程

  • 字节码
    • 反射 ClassLoader 获取类的信息
    • ASM
  • 动态代理
    • 目的是,在不修改原有流程和代码的前提下,实现对原有类的能力扩展
    • 使用代理对象代替普通对象
    • 通过重写代理的invoke方法实现拦截
  • 筛选判断
    • 类的名称
    • 方法类型
    • 注解
    • 异常
  • 特点
    • 运行时拦截,不涉及编译时的拦截,不修改字节码
    • 仅支持方法纬度的切入点
    • 可以使用AspectJ来扩展AOP编程

Spring Boot 介绍

  • 用于快速、敏捷地开发新一代基于Spring框架的应用程序。
  • 使开发人员不再需要定义样板化的配置。
  • 集成了大量常用的第三方库配置(例如Redis,Jpa RabbitMQ,Quartz等等),几乎可以零配置的开箱即用。

Spring Boot 补充

  1. 创建独立的spring应用程序
  2. 直接内嵌tomcat、jetty和undertow
  3. 提供了固定化的“starter”配置,以简化构建配置
  4. 尽可能的自动配置spring和第三方库
  5. 提供产品级的功能,如:安全指标、运行状况监测和外部化配置等
  6. 绝对不会生成代码,并且不需要XML配置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值