spring笔记1

1、Spring Boot尚硅谷笔记整理-Spring Boot 入门 **一、**Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用:ALL IN ONE 微服务:每一个功能元素最终都是一个可独... 阅读详情

框架

框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

框架是对特定应用领域中的应用系统的部分设计和实现的整体结构。

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟, 稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架特性:约束性 支撑性 半成品项目(缺少业务逻辑)

SSM = spring + springMVC + mybatis

开发行业最著名的六大框架:
struts1,struts2,hibernate,spring,springMVC,mybatis

  • struts1减少代码量,封装的是servlet
  • struts2封装过滤器
  • MVC框架:struts1,struts2,springMVC(客户端发送一个请求,控制端处理,模型层装载并传输数据,视图层展示)【前两个基本淘汰】
  • 持久层框架:hibernate(无需建表,sql语句不用写,全自动,用起来特别简单,理解难),mybatis(半自动,sql语句要写)
  • 整合性/设计型框架:spring

Spring概述

  1. Spring 是一个开源框架
  2. Spring 为简化企业级开发而生,使用Spring, JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却啡常的优雅和简洁。
  3. Spring是一个 IOC(DI)和AOP容器框架。
  4. Spring 的优良特性
    ① 非侵入性: 基于Spring开发的应用中的对象可以不依赖于Spring的API(对原来的技术不造成影响)
    ② 依赖注入: DI——Dependency Injection,反转控制(I0C]最经典的实现。
    ③ 面向切面编程 : Aspect Oriented Programming——AOP(oop,面向对象编程)
    ④ 容器: Spring 是一个容器 ,因为它包含并且管理应用对象的生命周期
    ⑤ 组件化: Spring 实现了使用简单的组件配置组合成—个复杂的应用。在Spring中可以使用XML和Java注解组合这些对象。
    ⑥ 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三
    方类库(实际上Spring自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。
  5. Spring 模块
    在这里插入图片描述

IOC容器和Bean的配置

IOC和DI

IOC(Inversion of Control):反转控制

在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需
要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。

反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取
方向–改由容器主 动的将资源推送给需要的组件,开发人员不需要知道容器是如何创
建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形石

传统方式:我想吃饭 我需要买菜做饭
反转控制:我想吃饭 饭来张口

DI(Dependency Injection) :依赖注入

IOC的另-种表述方式:即组件以一些预先定义好的方式(例如: setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。

总结:IOC就是一种反转控制的思想,而DI是对IOC的一种具体实现。

IOC容器在Spring中的实现

前提: Spring 中有IOC思想,IOC思想必须基于IOC容器来完成,而IOC
在最底层实质上就是一个对象工厂.

  1. 在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。
  2. Spring 提供了IOC容器的两种实现方式
    ①BeanFactory: IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。
    ②ApplicationContext: BeamFactory 的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext ,而不是底层的BeanFactory

ApplicationContext的主要实现类

ctrl+Shift+t 查找 ctrl+t 查看该类或接口下面一系列的接口或者类
ctrl+鼠标指向 打开源码
ctrl+1 创建object

BeanFactory----》ApplicationContext----》ConfigurableApplicationContext

  1. ClassPathXmlApplicationContext: 对应类路径下的XML格式的配置文件(相对路径)
  2. FileSystemXmlApplicationContext: 对应文件系统中的XML格式的配置文件(绝对路径)
  3. 在初始化时就创建 单例的bean,也可以通过配置的方式指定创建的Bean是多实例的。

ConfigurableApplicationContext

  1. 是ApplicationContext的子接口,包含-些扩展方法
  2. refresh()和 close()让ApplicationContext具有启动、关闭和刷新上下文的能力。

WebApplicationContext

使用SpringMVC用到

专门为 WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作

容器结构图

在这里插入图片描述

给Bean的属性赋值

依赖注入的方式

  1. 通过bean的setXXX()方法赋值【property】
  2. 通过bean的构造器赋值【constructor-arg】
  3. p 名称空间
    为了简化XML文件的配置,越来越多的XML文件采用属性而非子元素配置信息。Spring从2.5版本开始引入了一个新的p命名空间,可以通过元素属性的方式配置Bean的属性。
    使用p命名空间后,基于XML的配置方式将进一步简化。
    在这里插入图片描述
    在这里插入图片描述

可以使用的值

  1. 字面量
  1. 可以使用字符串表示的值, 可以通过value属性或value子节点的方式指定
  2. 基本数据类型及其封装类、 String 等类型都可以采取字面值注入的方式
  3. 若字面值中包含特殊字符, 可以使用<![CDATA]]>把字面值包裏起来
  1. 外部声明的bern、引用其他的bean
    在这里插入图片描述
  2. 内部bean
    当bean实例仅仅给一个特定的属性使用时,可以将其声明为内部bean。内部bean声明直接包含在或元素里,不需要设置任何id或name属性
    内部bean不能使用在任何其他地方
    在这里插入图片描述

集合属性

在Spring中可以通过一组内置的XML标签来配置集合属性,例如: < list>, < set>或< map>。

数组和List

配置java.util.List类型的属性,需要指定< list>标签,在标签里包含一些元素。这些标签

可以通过< value>指定简单的常量值,通过< ref>指定对其他Bean的引用。通过< bean>指定内置bean定义。通过< null/>指定空元素。甚至可以内嵌其他集合。

数组的定义和List 一样,都使用< list>元素。

配置java.util.Set需要使用< set>标签,定义的方法与List一样。

FactoryBean

FactoryBean

Spring中有两种类型的bean, -种是普通bean,另- -种是工厂bean, 即FactoryBean。

工厂bean跟普通bean不同,其返回的对象不是指定类的一-个实例,其返回的是该工厂bean的getobject方法所返回的对象。

工厂bean 必须实现org.springframework.beans.factory.FactoryBean接口。

bean 的作用域

在Spring中,可以在< bean>元素的scope属性里设置bean的作用域,以决定这个bean
是单实例的还是多实例的。

默认情况下,Spring 只为每个在IOC容器里声明的bean创建唯一一个实例, 整个IOC容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一 的bean实例。该作用域被称为singleton,它是所有bean的默认作用域。

类别说明
singleton在SpringIOC容器中仅存在一个Bean实例, Bean以单实例的方式存在
prototype每次调用getBean()时都会返回一个新的实例
request每次HTTP请求都会创建一 个新的Bean ,该作用域仅适用于 WebApplicationContext环境
session同一个HTTP Session共享一个Bean,不同的HTTP Session使用不同的Bean。该作用域仅适用于WebApplicatinContext环境

当bean的作用域为单例时, Spring 会在IOC容器对象创建时就创建bean的对象实例。

而当bean的作用域为prototype 时,IOC容器在获职bean的实例时创建bean的实例对象。

bean 的生命周期

  1. Spring IOC容器可以管理bean的生命周期,Spring 允许在bean生命周期内特定的时间点执行指定的任务。
  2. Spring IOC容器对bean的生命周期进行管理的过程:
    ①通过构造器或工厂方法创建bean实例
    ②为bean的属性设置值和对其他bean的引用
    ③调用bean的初始化方法
    ④bean 可以使用了
    ⑤当容器关闭时,调用bean的销毁方法
  3. 在配置 bean时,通过init-method和destroy -method属性为bean指定初始化和销毁方法
  4. bean 的后置处理器
    ①bean后置处理器允许在调用初始化方法前后对bean进行额外的处理
    ②bean后置处理器对IOC容器里的所有bean实例逐一处理,而非单一实例。其典型应用是;检查bean属性的正确性或根据特定的标准更改bean的属性。
    ③bean后置处理器需要实现接口:
    org.springframework.beans.factory.config.BeanPostProcessor在初始化方法被调用前后,Spring将把每个bean实例分别传递给上述接口的以下两个方法:
    ● postProcessBeforelnitialization(Object, String)
    ● postProcessAfterlnitialization(Object, String)
  5. 添加bean后置处理器后bean的生命周期
    ①通过构造器或工厂方法创建bean实例
    ②为bean的属性设置值和对其他bean的引用
    ③将bean实例传递给bean后置处理器的postProcessBeforelnitialization()方法
    ④调用bean的初始化方法
    ⑤将bean实例传递给bean后置处理器的postProcessAfterlnitialization()方法
    ⑥bean可以使用了
    ⑦当容器关闭时调用bean的销毁方法

引用外部属性文件

当bean的配置信息逐渐增多时,查找和修改一些bean的配置信息就变得愈加困难。这时可以将一部分信息提取到 bean配置文件的外部,以properties格式的属性文件保存起来,同时在bean的配置文件中引用properties属性文件中的内容,从而实现一部分属性值在发生变化时仅修改properties属性文件即可。这种技术多用于连接数据库的基本信息的配置。

spring boot 2.1学习笔记【0】目录 springboot2.1 专栏目录。 阅读详情

相关推荐

LoRa模块选型指南:正点原子ATK-LORA-01与SX1278芯片深度评测(含实测距离/功耗数据)

本文深度评测了正点原子ATK-LORA-01与SX1278芯片的性能表现,通过实测数据展示其在复杂环境中的通信距离与功耗表现。特别适合智慧农业、工业监测等物联网应用场景,提供详细的配置指南和优化技巧,帮助开发者实现高效、低功耗的LoRa通信解决方案。

weixin_29191081的博客 290

Spring MVC 学习笔记 十五 what's new in spring mvc 3.1

原文地址:http://starscream.iteye.com/blog/1098880

470

未来智能家居解决方案:AI应用架构师的前沿探索

当你加班到深夜回家时,门锁自动识别你的脚步声解锁,玄关灯渐亮成你最爱的暖光,空调早已调到25℃(你夏天的习惯温度),音箱播放着最近循环的爵士乐,茶几上的智能水壶烧好了温水——这不是科幻电影,而是未来智能家居的日常。如何让“冰冷的设备”变成“懂你的伙伴”。我们将深入探讨五大前沿技术(边缘AI、多模态融合、联邦学习、数字孪生、个性化推荐)的底层原理,用“家里的小管家”“邻居互相学习”等生活化比喻简化复杂概念,结合代码示例与架构图还原实现流程,并通过智能卧室、智能厨房等真实案例展示落地路径。

AI天才研究院 1410

书名《学透 Spring 》原书 读书详细笔记(第1章)

本章内容(1)Spring 发展历史概述(2)Spring 家族主要成员介绍(3)编写一个简单的 Spring 程序(4)全书实战案例概述希望本书能够系统地帮助各位透彻掌握 Spring 在实际开发中的应用,具体而言包括 Spring Framework、Spring Boot 与 Spring Cloud 等重要组件。在展开学习各个部分之前,大家很有必要先了解一下 Spring 的发展历史,同时对 Spring 家族的全貌有一个大致认识。

本博主是 Java 全站工程师(后端+前端+运维),当然也是 C/C++ 程序员; 595

华为Atlas 300I推理卡驱动安装避坑指南:不同安装方式的选择与优化

本文详细解析华为Atlas 300I推理卡驱动安装的三种主流方式(.run、.rpm和源码编译),提供关键环境检查步骤、安装流程优化建议及常见问题解决方案,帮助开发者高效完成芯片推理卡部署并规避典型安装陷阱。

q9w8e7r6t5的博客 431

DINOv3实战指南:如何利用零样本视觉模型革新工业质检

本文详细介绍了如何利用DINOv3零样本视觉模型革新工业质检流程。通过无需标注数据的自监督学习技术,DINOv3能快速部署高精度检测系统,显著降低成本和提升效率。文章涵盖模型选型、数据准备、实时检测优化及典型行业解决方案,为工业质检提供革命性AI实践指南。

ansible6ops的博客 120

Spring笔记1

Spring(随堂笔记1) 一、spring概念 1.轻量级开源JavaEE框架 轻量级:spring jar包大小与体积都较小,spring不需要依赖其他组件,可以自己单独使用。 2.spring核心部分:IOC、AOP IOC:控制反转,把创建对象的过程交给spring管理 AOP:面向切面/方面编程,不修改源代码的情况下进行功能的增加 3.spring框架特点 a.方便解耦,简化开发(创建对象,对象与对象之间的调用,用spring去实现,耦合度降低) b.AOP编程的支持 c.方便程序的测试Jun.

i_Mirror的博客 166

从零开始用QP框架开发STM32:事件驱动编程实战指南(附状态机设计技巧)

本文详细介绍了如何使用QP框架在STM32上实现事件驱动编程,包括状态机设计技巧和嵌入式开发实践。通过对比传统前后台系统和RTOS,展示了QP框架在资源占用、实时性和代码可维护性方面的优势,并提供了从环境搭建到高级状态机设计的完整指南。

h6i7j8的博客 1173

Spring笔记(1) - 工厂

Spring笔记(1) - 工厂 文章目录Spring笔记(1) - 工厂前言正文1. 概述1.1 EJB(Enterprise Java Bean)1.2 Spring是什么1.3 设计模式2. Spring入门2.1 知识铺垫2.2 环境支持2.3 Maven中各类文件的介绍2.4 重要概念2.5 第一个Spring2.6 细节分析2.7 API介绍-ApplicationContext2.8 思考3. 设计模式之工厂模式3.1 简介3.2 通用工厂的使用方式4. Spring5.x与日志框架的整合5.

Wu_yongtao的博客 2487

开源onlyoffice编译完整过坑版

onlyoffice 编译过坑完整版;

sHImart 4551

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1235

Spring学习笔记1

主要介绍了Spring中的DI(依赖注入),利用XML文件和注解来配置Bean

2403_87793978的博客 1237

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

VMware系列:此平台不支持虚拟化 Intel-VT-x/EPT 或 AMD-V/RVI

weixin_54626591的博客 1万+

Spring笔记——1

Spring笔记(一) 什么是Spring?   Spring是一个以IoC(Inversion of Control-控制反转)和AOP(Aspect Oriented Programming-面向切面编程)为内核的开源框架。   那么什么是框架呢?框架能做什么?为什么要使用框架?框架其实就是能完成一定功能的半成品。框架能够帮助我们完成的是:项目的整体框架、一些基础功能、规定了类和对象如何...

weixin_44368212的博客 339

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

1、spring 笔记

提供类所有属性的 getting 和 setting 方法,此外还提供了equals2.canEqual、hashCode、toString 方法。https://blog.youkuaiyun.com/m0_58969296/article/details/124528329写的很好,建议想要配置Spring看这一篇。​ map的key就是bean名字,值:代表标签的各个属性组成的一个对象,叫BeanDefinition。3.@Setter :注解使用在属性上;4.@Getter :注解使用在属性上;

Kanghyenwon的博客 87

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Spring学习笔记1——Spring来啦

一、什么是Spring? Spring是一款主流的、开源、轻量级的企业级java应用程序开发框架,具有强大的功能和卓越的性能。 在服务器端采用三层体系架构:表现层(web)、业务逻辑层(service)、持久层(dao)。 Spring提供了web MVC框架: 模型(Model)由POJO类组成,封装了应用程序数据。 视图(View)渲染模型数据。 控制器(Controller)负责处理用户发送的请求并生成对应的模型,然后传递给视图渲染。 二、Spring体系结构 Spring框架采用分层架构,根

weixin_44802953的博客 255

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

spring教程笔记1

快速入门 applicationContext.xml <?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:c...

AnalogElectronic的博客 228

spring笔记-1

概述 根据许多IT技术大牛的推荐,当正式学习、工作之后都推荐开始写博客,以此记录自己的学习情况,巩固知识,解决问题等,与各位大神交流解决问题才可以进步的更加快。选择了互联网行业,就代表着选择了不断学习的路径,互联网方面的知识多而杂,更新速度频繁。所以,作为一名程序员,放弃学习会被淘汰。所以自此,我将正式开始撰写博客,记录今后的学习生活不断学习到的新知识,在次与大家共同学习,共同进步。作为一名在校生...

weixin_42502684的博客 278

Spring Boot笔记1

Spring是Java企业版(Java Enterprise Edition,javeEE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

楠黎倾风的博客 1501

Spring学习笔记(1):了解Spring

🥞目录 🥪Spring简介: 🍰Spring常用框架: 🍕Spring Framework 🍕SpringMVC 🍕SpringBoot 🍕SpringCloud 🍕SpringData 🍕MongoDB 🍟Spring系统架构: 🍕(1)核心层 🍕 (2)AOP层 🍕(3)数据层 🍕 (4)Web层 🍕 (5)Test层 🥙IOC、IOC容器、Bean、DI 🍕1. IOC(Inversion of Control)控制反转 🍕2. DI(Dependency ...

她与剑意皆失的博客 1656

关于spring cloud的笔记1

问题1:The method findOne(Example&lt;S&gt;) in the type QueryByExampleExecutor&lt;User&gt; is not applicable for the arguments (Long) 解决方法:spring boot改成以前的版本 &lt;parent&gt; &lt;groupId&gt;org...

weixin_41795868的博客 333

Spring快速笔记1

概述: Spring的概述、SpringIOC入门(XML)、Spring的Bean管理、Spring属性注入 Spring的IOC的注解方式、Spring的AOP开发(XML) Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。 SSH的整合、HibernateTemplate的使用、OpenSessionInViewFilter的使用。 ...

fanleehao的博客 949
上一篇: 207. 课程表
下一篇: spring 参考
哆唻咪à
博客等级 码龄9年 0粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值