spring
本文最后更新于139 天前,其中的信息可能已经过时,如有错误请发送邮件到3368129372@qq.com

spring

  1. 是什么?
    • 是一个生态,可以构建java应用所需的一切设施
    • 轻量开源容器框架
    • 解决逻辑层与其他层直接耦合问题

IOC

  1. 实现?

    • 工厂+反射(依赖注入)

      public class Main {
      public static void main(String[] args) {
          Bean bean = Main.getBean("");
      }
      
      public static Bean getBean(String beanPath){
          Bean bean=null;
          try{
              bean = (Bean) Class.forName(beanPath).newInstance();
          }catch (Exception e){
              e.printStackTrace();
          }
          return  bean;
      }
      }
  2. 加载过程
    • new ApplicationContext(或者其实现类)
    • 概念态(配置文件)转变为定义态(beanDefination)
    • 调用newInstance()获取其对象(纯净态,里面属性未赋值)
    • 依赖注入,成熟态

AOP

  1. 连接点(被增强的业务方法)
  2. 切面
  3. 通知(after、before、around)
  4. 切点

bean

  1. bean安全性
    单例bean一般是线程安全的(注入的是无状态的),但里面的成员变量不是
  2. beanFactory?
    非常顶层的核心接口,简单工厂,用于生产bean
  3. applicationContext?
    beanFacory的一个实现类,都可以作为容器。它做得更多!!创建bean的同时会帮我们把bean注册为beanDefinition,加载环境变量,实现多语言等等,主要用的这个来生产
  4. beanDefinition?
    bean的定义信息,包括类路径、是否单例、是否懒加载、是否是抽象的、是否自动装配,读取后交给BeanFactory
  5. Bean

周期
bean 的⽣命周期有五个阶段:

  1. 实例化:主要是扫描 spring 中的上下⽂和配置(解析和查找)bean 的⼀些扩展配置
  2. 属性赋值:在这个阶段调⽤ bean 的构造器进⾏实例的创建。setter。构造函数与xml文件实现,使用了BeanFactory与ApplicationText。(依赖注入)
  3. 先执行aware再执行@PostConstruct
  4. 初始化:Spring 会调⽤ Bean 实例的 init-method ⽅法,完成⼀些初始化的操作,例如建⽴数据库连接等。
  5. 使用:这个阶段中,将实例化的 bean 放⼊容器和 spring 的缓存中,此时开发者可以使⽤实例化的 bean
  6. 销毁:当 spring 的上下⽂关闭时,这些上下⽂的 bean 也会被销毁
    1. FactoryBean?
      一个特殊的bean。是一个接口,但是必须被一个bean实现
    2. 状态
      • 概念态
      • 定义态
      • 纯净态
      • 成熟态

缓存

三级缓存

可解决循环依赖问题,举例:
A<->B
一级缓存存完整对象,二级缓存存代理对象,三级缓存存bean的lambda表达式。A存储时会把完整对象存一级缓存,lambda表达式存三级缓存,并且未完成创建的BEAN会存在一个creatingSet里。B在试图引用A时发现A没创建完,因此用三级缓存的表达式创建对象或代理对象注入到B中,解决了循环依赖问题。

spring mvc

  • spring生态的一个组件
  • 简化servlet+jsp的开发模式
  • 把传统MVE框架里面的Controller控制器做了拆分,分成了前端控制器Dispatcherservlet和后端控制器Controller
  • model层拆分成service与数据访问层dao
  • 前端支持不同语言,比如velocity、jsp、FreeMark

其他

  1. 容器
    管理着某个对象的生命周期
感谢您的收看~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇