• Spring学习



    前言

    本博客仅做学习笔记,如有侵权,联系后即刻更改

    科普:


    简介

    Spring官方下载地址
    maven地址

    历史

    • 2002年,首次推出了Spring框架的雏形:interface21框架
    • 2004年正式推出1.0正式版Spring
    • Rod Johnson:Spring Framework创始人,悉尼大学音乐学博士
    • 设计理念:是现有的技术更加容易使用,结合现有的技术框架

    SSH:Struct2 + Spring + Hibernate
    SSM:SpringMvc + Spring + Mybatis

    优点

    • 开源的免费框架(容器)
    • 轻量级、非入侵式框架
    • 控制反转(IOC)、面对切面编程(AOP)
    • 支持事务的处理、对框架整合的支持

    七大核心模块

    在这里插入图片描述

    拓展

    Spring Boot

    • 一个快速开发的脚手架
    • 基于Spring Boot可以快速的开发单个微服务
    • 约定大于配置

    Spring Cloud

    • 基于Spring Boot实现

    IOC(控制反转)

    获得依赖对象的方式反转
    
    • 1

    定义

    控制反转是一种通过描述并通过第三方去上产或获取特定对象的方式。spring中实现控制反转的是IOC容器,其实现方式是依赖注入(set)

    DI(依赖注入)是实现IOC的一种方法

    IOC创建对象的方法

    1. 使用无参构造(默认)
    2. 下标赋值
    3. 类型
    4. 参数名

    bean相关属性

    • id: bean的唯一标识符
    • class: bean对象所对应的 包名+类型
    • name: 别名
    • scope: 作用域

    注入方式

    • 构造器注入
    • set方式注入
    1. 值注入
      value = ‘’
    2. Bean注入
      ref = ‘’
    3. 数组
      array标签下写value标签
    4. list
      list标签下写value标签
    5. map
      map标签下写entry标签的key、value
    6. set
      set标签下的value
    7. null
      null标签
    8. properties
      props标签下的prop标签,key属性
    • 拓展方式注入
      p、c命名空间使用需要导入xml约束
    1. p命名空间注入
      直接注入属性的值:property
    2. c命名空间注入
      通过构造器注入:construct-args

    Bean的作用域(scope)

    1. 单例模式(默认机制)

    scope = “singleton”

    1. 原型模式

    每次从容器中get时,产生一个新对象
    scope = “prototype”

    1. request、session、application这些只能在web开发中使用到

    Bean的自动装配

    Spring满足bean依赖的方式,在上下文中自动寻找和装配
    
    • 1

    装配方式

    1. xml中显示配置
    2. java中显示配置
    3. 隐式自动装配
      autowire

    属性

    1. byname:自动在容器上下文查找,和自己对象set方法后面的值对应的beanid
    2. bytype:和自己对象属性类型(class)的相同bean,但不能有重复

    使用注解自动装配
    jdk1.5和Spring2.5以上支持注解

    1. 导入约束:context约束
    2. 打开注解的支持
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            https://www.springframework.org/schema/context/spring-context.xsd">
    
    //打开支持
        <context:annotation-config/>
    
    </beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    相关注解

    @Nullable

    • 字段可为空
      @Qualifiler
    • 搭配@autowire使用
      @Resource
    • 和@Autowired对比

    都是自动装配,放在属性字段上

    • @Autowired通过bytype的方式实现,对象必须存在
    • @Resource默认通过byname方式实现
      如果找不到则通过bytype实现

    使用注解开发

    Spring4后,使用注解开发,必须保证aop的包导入
    使用注解需要导入context约束,并增加注解驱动
    使用scan可以指定包的注解使用
    
    • 1
    • 2
    • 3
    1. bean

    @Component:组件,等价于@Controller
    spring会创建一个对象,对象名为类名首字母小写

    • 等价于bean id=“” class=“”/>
    • 放在类上,说明这个类被Spring管理,就是bean
    1. 属性注入

    @Value(“”)

    • 等价于property name=“” value=“”/>
    • 简单的类
    1. 衍生的注解
    2. 自动装配
    3. 作用域
    4. 小结

    总结

    小小励志

    有些事你现在不做,一辈子都不会做了。
    如果你想做一件事,全世界都会为你让路。
    《搭车去柏林》

  • 相关阅读:
    24-Vue之过滤器基本用法
    轻量化网络--MobileNet V1
    简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
    element-ui的tree组件获取父级节点渲染面包屑
    【Hadoop】HDFS API 操作大全
    BUU刷题记录
    城市公交查询系统android
    Pycharm与Gitlab交互
    2023届C/C++软件开发工程师校招面试常问知识点复盘Part 3
    第一百六十一回 Sliver综合示例
  • 原文地址:https://blog.csdn.net/qq_51922077/article/details/126435783