前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring-概述-速览

spring-概述-速览

作者头像
Java架构师必看
发布2021-05-14 16:45:21
3740
发布2021-05-14 16:45:21
举报
文章被收录于专栏:Java架构师必看Java架构师必看

spring

spring是javaEE开源的轻量级别的框架,可以解决企业开发中遇到的难题,能够让编程变得简单,核心组件IOC容器和AOP面向切面编程

  1. IOC控制反转:把整个对象创建的过程,统一交给我们的SpringIOC容器进行管理来实现管理,底层使用反射+工厂模式
  2. Aop面向切面编程:对我们功能(方法)前后实现增强,比如打印日志,事务原理,权限管理,底层是基于动态代理模式实现的 减少到我们代码冗余的问题

优势:

  • 方法的解耦,简化开发
  • AOp技术支持
  • 提供声明事务支持
  • Junit单元测试
  • 方便整合其他框架
  • 降低了 JavaEEAPI开发的难度
在这里插入图片描述
在这里插入图片描述

介绍:::::::

Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); Spring Core:核心类库,所有功能都依赖于该类库,提供IOC和DI服务; Spring AOP:AOP服务; Spring Web:提供了基本的面向Web的综合特性,提供对常见框架如Struts2的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器; Spring MVC:提供面向Web应用的Model-View-Controller,即MVC实现。 Spring DAO:对JDBC的抽象封装,简化了数据访问异常的处理,并能统一管理JDBC事务; Spring ORM:对现有的ORM框架的支持;

Spring配置bean 容器注入:

注解或者xml方式: bean实际上就是一个对象

加载到我们的Spring配置文件

根据bean的id获取到对象

bean的id不能重复 bean的id命名一般为类的首字母小写 class类路径

SpringIOC容器原理:

IOC容器中非常核心的接口: BeanFactory bean对象 Factory工厂

IOC容器基本概念

IOC容器基本概念::控制反转: 降低计算机代码的冗余度

把对象的创建对象与使用统一交给我们的Spring来进行管理 不需要开发者自己去new对象

创建对象的方式由哪些:

  • 单独的new方式----耦合度太高 每次单独new对象,没有实现统一的管理对象,如果后期需要userDao的名称信息发布的情况下,需要改变的引用的地方比较多,耦合度太高
  • 工厂模式–降低我们的耦合度 概念:统一管理和维护我们每个对象创建与使用的过程 不需自己new对象
  • 反射模式

Iocr容器底层实现的技术

:反射技术, 工厂模式 .解析XML

  1. 使用解析XML技术.解析Spring.xml配置文件
  2. 获取<bean\ id=’’ class=’’/> 类的完整路径地址
  3. 使用到反射技术初始化对象
  4. 使用工厂模式封装初始化对象

IOC核心接口

  1. IOC容器接口
  2. IOC容器底层基于反射 +工厂实现的
  3. Spring体系中提供了两种IOC容器的实现方案 _______3.1 BeanFactory不是提供给给开发人员的 主要提供给我们Spring内部自己实现 加载配置文件的时候不会根据配置文件的内容创建对象,当我们真正徐娅使用该对象的时候才会创建对象 ___3.2 ApplicationFactory是提供给我们开发人员使用的,对于我们传统的BeanFactory实现非常多的扩 展 功能,ApplicationFactory属性BeanFactory接口下的子接口 加载配置文件的时候,会根据配置文件的内容创建对象,并且缓存起来 javaweb项目的时候, 使用ApplicationFactory 刚启动的时候,程序卡,后面就好了, [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-onKBiowC-1617851036643)(file:///
在这里插入图片描述
在这里插入图片描述

ApplicationFactory主要实现的类: ClassPathXmlApplicationContext:对应类路径下的XML格式的配置文件 FileSystemXmlApplicationContext: 对应文件系统中的xml格式的配置文件

在这里插入图片描述
在这里插入图片描述

SpringBean的注入方式:

创建对象和set注入属性

SpringBean管理方式

什么是bean管理了?
  1. Spring创建对象(使用反射技术实现)
  2. Spring对我们对象注入属性
Bean管理方式有哪些
  1. 基于XML方式管理bean对象 需要创建一个bean配置文件,需要在该配置文件中,定义一个bean标签 <bean\ id='' class=''/> id: 不允许重复 bean id bean的id命名一般为类的首字母小写 class: 当前该类完整路径(类名+包名称)组合,底层使用反射技术初始化对象,默认的情况下,执行无参构造
  2. 基于注解的方式管理bean对象(Springboot)
SpringBean的注入方式:

基于XML方式注入属性

依赖注入:对象的属性注入值:(Spring实现)

  1. 第一种实现方式: 基于对象属性Set方法实现
  2. 第二中::: 基于有参数构造函数实现
  3. p标签 wei’属性注入值 最终还是set方法
bean属性: 特殊符号做<<>>
  1. 特殊符号
  2. cdata 字面量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注入内部Bean
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
级联赋值

注入属性要使用 set get方法

在这里插入图片描述
在这里插入图片描述

注入集合类型的属性

list array map

IOC操作Bean的管理

Spring 中bean的类型由两种,分别为普通Bean和工厂bean类型(Factory bean)

Factory bean 与普通bean的区别

普通bean : 在配置文件中定义什么类型,就必须返回类型保证一致

Factory bean: 在配置文件中定义什么类型,可以与返回类型不一致

SpringBean的作用域

什么是作用域

设定bean作用域是为单例还是多例

作用域单例与多例有什么区别

  1. 单列的作用域: 每次在调用getBean获取对象都是为了同一个对象
  2. 多例的作用域: 每次在调用getbean方法获取对象都是一个新的对象

注意: 在Spring默认情况下,bean的作用域就是单例, 节约服务器内存

单例:

在同一个JVM中,该bean对象只会创建一次

多例:

在同一个JVM中,该bean对象会创建多次 占内存

设置scope="prototype" 设置为多例

在这里插入图片描述
在这里插入图片描述

SpringBean的声明周期

声明周期: bean的后置处理器

简单分为: 实例化----> 属性赋值 —> bena类中init方法–> 使用该对象–> 容器关闭

  1. 反射技术初始化对象(默认 无参构造函数) 对象已经初始化完成了
  2. 给该对象中的属性 赋值–反射技术的实现

==========Bean后置处理器 在init方法之前执行

3 调用Bean设定init的方法

========Bean后置处理器 在init方法之后执行

4 正常使用到该Bean对象

5 容器关闭—该对象就会被撤销执行 该对象Bean对象中 销毁方法

生命周期: 后置处理器

可以配置多个 (Order值 越小 越优先先加载)

  1. 反射技术初始化对象(无参构造函数)
在这里插入图片描述
在这里插入图片描述

反射技术给对象中的属性赋值 反射技术调用init方法 反射技术销毁的方法

本文来源面相薪水编程,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • spring
    • 优势:
      • Spring配置bean 容器注入:
        • SpringIOC容器原理:
          • IOC容器基本概念
          • 创建对象的方式由哪些:
          • Iocr容器底层实现的技术
          • IOC核心接口
        • SpringBean的注入方式:
          • SpringBean管理方式
          • 注入集合类型的属性
          • SpringBean的作用域
          • SpringBean的声明周期
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档