栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021SC@SDUSC-SDUDOC-blog03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021SC@SDUSC-SDUDOC-blog03

2021SC@SDUSC

这是一篇D同学讲授、Z同学的后端学习笔记。
SUDDOC用到springboot,之前只套用过此架构并未思考总结过其逻辑。向D同学学习!

Spring 有两个核心部分: IOC 和 AOP

  • IOC 控制反转:框架帮忙创建对象并且管理对象
  • AOP 面向切面,不修改源代码进行功能增强
IOC

IOC可以理解为spring的一个核心,Spring所倡导的开发方式就是,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。Don’t call us,we’ll call you.

所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过依赖注入实现的。

IoC模式把耦合从代码中移出去,放到统一的XML 文件中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,就是所谓“依赖注入”。

IOC操作 Bean管理
  1. 什么是Bean管理

    (0)Bean管理指的是两个操作:

    (1)Spring创建对象

    (2)Spring注入属性

  2. Bean管理操作有两种方式

    (1)基于XML

    (2)基于注解

基于XML方式创建对象

  1. 在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以是新对象的创建
  2. 在bean标签里有很多属性,基本属性有:
    • id:给这个bean取一个唯一标识,可以用getBean直接获取标识对应对象
    • class:要创建的类的全路径(包+类名)
    • name:和id基本一样,但是name属性中可以加特殊符号,是早期的属性,现在不用。
  3. 在创建对象时候,默认执行无参构造函数
基于XML 基于XML方式注入属性
  1. DI:依赖注入,即注入属性

    DI是IOC中的一种方式,

    1. set方法

      
          
          
          
      
      
    2. 有参构造器

      
          
          
      
      
用XML注入其他类型属性
  1. null

    
    	
    
    
  2. 特殊符号

    • 转义
    • 放入CDATA中
    
    	
            >]]>
        
    
    
  3. 注入属性 - 外部bean

    将一个用配置文件配置的对象注入到另一个配置文件配置的对象中。

    (1)创建两个类:Service类和dao类

    (2)在service中调用dao里面的方法

    (3)在spring配置文件中进行配置

    
            
            
        
    
        
    
  4. 注入属性 - 内部bean

    (1)一对多关系:部门和员工

    (2)在实体类之间表示一对多关系

    (3)在Spring配置文件中进行配置

    
        
        
        
        
        
            
                
            
        
    
    
  5. 注入属性-级联赋值

    
        
        
        
        
        
    
    
    
        
    
    
  6. 注入集合属性

    (1)注入数组类型属性

    (2)注入List类型属性

    (3)注入Map集合类型属性

    
        
            
                java
                NoSQL
            
        
        
            
                dyy
                冰弦
            
        
        
            
                
                
            
        
        
            
                java
                dart
            
        
    
    
  7. 集合类型中设置对象类型的值

    
        
            
            
        
    
    
        
            
            
        
    
    
    ...
    
    
        
    
    
        
    
    
  8. 集合注入部分提取出来

    (1)在spring配置文件中引入名称空间util

    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
    
    

    (2)使用util

    
        
    
    
    
        三体1
        三体2
    
    
IOC 操作 Bean (FactoryBean)

Spring有两种bean,一种是上面用的普通bean,另外一种是工厂bean

  • 普通bean:xml中定义的类型就是返回类型
  • 工厂bean:xml中顶一个bean类型可以和返回类型不一样

工厂bean:

  1. 创建一个类,让这个类作为工厂bean,并且实现接口FactoryBean
  2. 实现接口里面的方法,在实现的方法中定义返回的bean类型
Bean的作用域

1、在Spring里面,设置创建bean实例是一个单实例还是多实例。

2、在Spring里面,在默认情况下,创建的Bean是一个单实例对象。

3、如何设置单实例还是多实例。


    






原型模式下,当调用getBean时才会创建新的对象。

Bean的生命周期

1、生命周期

(1)从对象创建到对象销毁的过程

Bean生命周期
  1. 通过构造器创建Bean实例(无参数构造)
  2. 为bean的属性设置值和对其他bean引用(调用set方法)
  3. 调用bean的初始化的方法(需要进行配置)
  4. bean可以使用
  5. 当容器关闭时,调用bean的销毁的方法(需要进行配置销毁的方法)

配置后置处理器(和一般配置Bean一致):


自动装配
  1. 什么是自动装配

    • 根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性进行装配

      如果使用bytype,就不能允许相同类型的bean同时出现

    
        
    
    
    
        
    
    
引入外部属性文件
  1. 直接配置数据库信息

    • 配置druid连接池

    • 引入druid连接池依赖

      
          
          
          
          
      
      
  2. 引入外部配置文件

    编写配置文件

    将外部properties属性文件引入到spring配置文件中

    引入context名称空间

    
    
    

    在配置文件中使用context引入配置文件

    
    
    
    
        
        
        
        
    
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号