美文网首页
Spring 框架中的Spring FrameWork

Spring 框架中的Spring FrameWork

作者: 扶光_ | 来源:发表于2023-11-14 11:15 被阅读0次

spring官网
spring不仅只是一个技术,发展到现在sping有完整的家族体系,提供了若干个项目,每个项目可以完成特定的功能,称为spring全家桶
90%以上的企业技术选型
优势

  • 简化开发复杂性
    IOC
    AOP
    事务处理
  • 框架整合,高效整合其他技术
    Mybatis
    Mybatis-plus
    struts
    struts2
    hibernate

一,Spring FrameWork

是sping全家桶中最基础的项目,是其他项目的根基

1.1 spring FrameWork系统架构

系统架构

1.2 IOC核心思想

之前java代码写的项目耦合度偏高
使用对象时,在程序中不主动使用new产生对象,转换为由外部提供对象 这就是IOC(控制反转)
对象的创建控制权由内部代码转移到外部,这种思想交控制反转,目的就是解耦

Spring把这个控制反转的思想做到了,进行了实现
spring在内部提供了一个容器叫IOC容器,用来充当ioc思想中的“外部”
ioc容器负责对象的创建初始化等,被创建的的对象再ioc容器里被称为bean
DI依赖注入,两个bean中存在依赖关系,ioc容器直接帮你把他两绑好,这个过程叫作依赖注入

总结:充分解耦
1 使用ioc容器管理bean(IoC)
2 在IoC容器内有依赖关系的bean进行绑定

管理service和dao(Mapper)包

二,Spring 的使用

首先要导入第三方spring framework的包

<!--    sping framwork-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
image.png image.png
  • DI基本使用
image.png 删除业务层创建的new对象

配置server与dao关系


配置关系

2.1 bean的基础配置

  • 1 bean取别名
    在bean标签中可以使用name属性来进行别名设置。

  • scope定义bean作用范围
    默认单例 (所有对象用这一个实例并且,这个唯一的Bean实例会被储存到缓存当中)
    prototype 非单例(会每次都重新生成一个新的对象实例给请求方)
    控制我们bean创建的数量的

spring报错从最后一行看 ,依次往上解决

2.2 构造方法实例化bean

<bean id="brandDao" class="实现类路径"/>
bean本质上就是对象,创建bean使用构造方法完成
spring在给我们创建bean的时候调用的是无参的构造方法

2.3 静态工厂bean实例化

<bean id="orderDao" class="factory.orderFactory" factory-method="调用工厂的那个方法来进行创建"/>

2.4 实例工厂初始化bean

<bean id="UserFactory" class="factory.userDaoFactory" />
<bean id="userDao" factory-bean="UserFactory" factory-method="getUserDao" />

2.5FactoryBean 使用最多方法创建

image.png

2.6 Bean的生命周期

bean从创建到销毁的整体过程


经历的阶段

三,Bean依赖注入方式

  • 1 setter注入
    简单类型


    image.png

引用类型

  • 2 构造器注入
    简单类型
    引用类型


    image.png
  • 3 依赖自动装配
    只能用于引用类型依赖注入
    容器根据bean所依赖的资源自动查找并注入到bean中的过程称为自动装配

  • 根据类型装配(主要用这个)
    <bean id="bookservice" class="com.it.impl" autowire="byType"/>

  • 根据名称装配
    <bean id="bookservice" class="com.it.impl" autowire="byName"/>

  • 4 集合注入
    数组 list set map properties


    注入

四,容器

创建容器(两种)
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
获取bean(三种)
BookDao bd = (BookDao)ctx.getBean("bd")
BookDao bd = ctx.getBean("bd",BookDao.class)
BookDao bd = ctx.getBean(BookDao.class)

五,注解开发

简化代码

5.1注解开发定义bean

注解开发定义bean image.png

5.2 纯注解开发

image.png image.png

5.3 bean的管理

image.png

六,AOP

面向切面编程,就是一种编程思想,在不惊动原始设计的基础上为其进行功能加强

  • 连接点 程序执行中的任意位置,
  • 切入点:匹配连接点的式子


    切入点
  • 通知:在切入点执行的操作,共性功能
  • 通知类:定义通知的类
  • 切面:通知与切入点的关系

AOP通知类型

aop通知抽取了共性的功能,根据功能位置不同,最终运行代码要加到合理的位置上

  • 前置通知

  • 后置通知

  • 环绕通知


    环绕通知
  • 返回后通知

  • 抛出异常后通知

Aop获取数据

  • 获取原始参数
    joinpoint:所有通知类型都可以
    proceedJoinPoint:环绕通知
  • 获取原始返回值
    返回后通知
    环绕通知
  • 获取原始异常
    抛出异常后通知
    环绕通知

用例,比如在百度网盘分享链接和提取码时,当用户点开链接输入密码时多输入的空格进行处理,可以用环绕通知拿到参数进行处理trim()

七,事务

列如,银行转账
保证一系列的数据库操作同成功同失败
在接口中打一个注解@transitonal

image.png

spring事务属性
@transitonal(timeout=-1)


image.png

处理事务 要求有些操作不加入事务中去
@transitonal(propagation=propagation.REQUIRE_NEW)

image.png

相关文章

  • 【笔记】Java Web 之Spring 框架简介

    Spring FrameWork 概念 Spring FrameWork(Spring 框架) 是一个Java应...

  • Spring Framework 概览

    翻译 Spring Framework Reference Documentation,有增删改Spring 框架...

  • Spring Boot 体验

    Spring 的各个框架(Spring Framework、Spring Session等)早已在Java 生态系...

  • Spring框架中的异步执行

    一、Spring框架中的异步执行 在Spring Framework中分别使用TaskExecutor和TaskS...

  • 每日进度2

    Spring框架学习 11月28日 Spring Framework Overview Spring是开发java...

  • 69道spring问题

    1.什么是spring? Spring是Enterprise Java开源开发框架Spring Framework...

  • 第一章 Spring概述

    Spring概述 ##Spring框架是什么? Spring Framework轻量级、一站式、开发框架 轻量级是...

  • 五大spring

    5个常用的spring框架 ▌1.spring framework 也就是我们经常说的spring框架,包括了io...

  • Spring 框架

    一、Spring 概述 1、什么是 Spring 框架? 2、Spring FrameWork 版本历史 3、Sp...

  • Spring生态介绍

    1、Spring Framework(Core):Spring项目的核心。Spring Framework中包含了...

网友评论

      本文标题:Spring 框架中的Spring FrameWork

      本文链接:https://www.haomeiwen.com/subject/tseoidtx.html