当前位置: 首页 > news >正文

SpringBoot实战(1)

SpringBoot总结

一,Spring 设计思想

OOP: 面向对象编程-》封装、继承、多态

BOP: 面向Bean编程-》一切从Bean开始

AOP: 面向切面编程-》解藕、专 人做专事

IOC: 控制反转,将new 对象的操作交给Spring统一管理-》转交控制权

DI/DL: 依赖注入/依赖查找-》自动赋值

DI和AOP都依赖 IoC

二,Spring5新特性及高频面试题

2.1, 升级JDK8,J2EE 7

2.2, 反应式编程

2.3 全面支持注解编程

2.4 支持函数式编程

2.5 全面支持Rest风格配置

2.6, 对HTTP2.0全面支持

2.7 Kotlin和Spring WebFlux

2.8 可以直接使用Lambda表达式来注册Bean

2.9 Spring Web MVC全面最新的Servlet API (去Servlet化)

2.10 Junit5直接执行并发测试

2.11 丢弃Hibernate3/4,只支持Hibernate5,对Portlet、Velocity、XMLBeans、JDO、Guava终止支持

2.12 Spring核心容器做了一些更新 @Nullable、Logback

三,Spring5注解编程基础组件(Spring Annotation API使用)

3.1 配置组件(Configure Components)

@Configuration: 把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean.

@ComponentScan: 在配置类上添加该注解,默认会扫描该类所在的包下所有的配置类,相当于之前的

@Scope: 用于指定作用域(用在类上)

prototype: 原型、多例

singleton: 单例

request: 主要用于web模块,同一次请求只创建一个实例

session: 主要用于web模块,同一次session只创建一个实例

@Lazy: 表示延迟初始化 默认非延迟加载,一般解决bean循环引用问题

@Conditional: Spring4开始提供,作用是按照一定的条件进行判断,满足条件给容器注册Bean.

@Import: 导入外部资源 外部资源可以不加任何注解修饰,通知该注解注入Bean

lifecycle 生命周期控制(对Bean生命周期的监控):

1, 配置@Bean的参数 initMethod = XXXMethod(),destroyMethod=XXXMethod()

2, 分别实现InitializingBean和DisposableBean接口 重写destroy()和afterPropertiesSet()进行销毁和初始化.

3, @PostConstruct 用于指定初始化方法(用在方法上);

@PreDestory: 用于指定销毁方法(用在方法上);

@DependsOn: 定义Bean初始化及销毁时的顺序.

4, 自定义一个类,实现BeanPostProcessor接口 重写postProcessBeforeInitialization和postProcessAfterInitialization接口.这里针对指定包下所有Bean进行统一处理

3.2 赋值组件(自动装配 )Injection Comp

相关文章:

SpringBoot实战(1)

SpringBoot总结 一,Spring 设计思想 OOP: 面向对象编程-》封装、继承、多态 BOP: 面向Bean编程-》一切从Bean开始 AOP: 面向切面编程-》解藕、专 人做专事 IOC: 控制反转,将new 对象的操作交给Spring统一管理-》转交控制权 DI/DL: 依赖注入/依赖查找-》自动赋值 DI和AOP…...

Dgraph 入门教程二《 快速开始》

1、Clound 云 云地址:Dgraph Cloud 登录Clound 云后,可以用云上的东西操作,可以用谷歌账号或者github账号登录。 启动云 (1)在云控制台,点击 Launch new backend. (2)选择计划&…...

文件上传{session文件包含以及条件竞争、图片文件渲染绕过(gif、png、jpg)}

session文件包含以及条件竞争 条件: 知道session文件存储在哪里 一般的默认位置: /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID ####在没做过设置的情况下一般都是存储在/var…...

【论文精读】Mask R-CNN

摘要 基于Faster RCNN,做出如下改变: 添加了用于预测每个感兴趣区域(RoI)上的分割掩码分支,与用于分类和边界框回归的分支并行。mask分支是一个应用于每个RoI的FCN,以像素到像素的方式预测分割掩码,只增加了很小的计…...

vue + js 项目打包JS、CSS文件自动部署到oss

一、下载oss依赖 npm install webpack-aliyun-oss 或 yarn add webpack-aliyun-oss 二、在vue.config.js中配置文件 const WebpackAliyunOss require("webpack-aliyun-oss");let VUE_APP_BUCKET "xxx"; let VUE_APP_REGION "xx-xxx-xxx";m…...

CSS:让动画流畅生动的缓动函数

在CSS中&#xff0c;可以使用transition属性或者keyframes关键帧动画来创建动画效果。 使用缓动函数则可以让动画更加流畅和生动。 div {transition: <property> <duration> <timing-function> <delay>; }div {animation: <keyframes-name> &l…...

蓝桥杯集训·每日一题2024 (差分)

前言&#xff1a; 差分笔记以前就做了&#xff0c;在这我就不再写一遍了&#xff0c;直接上例题。 例题&#xff1a; #include<bits/stdc.h> using namespace std; int a[10009],b[100009]; int main(){int n,ans10,ans20;cin>>n;for(int i1;i<n;i){cin>>…...

嵌入式通信数据经常说的大端和小端模式(学习)

一.概念 大端模式&#xff08;Big-endian&#xff09;&#xff1a;高位字节排放在内存的低地址端&#xff0c;低位字节排放在内存的高地址端&#xff0c;即正序排列&#xff0c;高尾端&#xff1b; 小端模式&#xff08;Little-endian&#xff09;&#xff1a;低位字节排放在…...

bun 单元测试

bun test Bun 附带了一个快速、内置、兼容 Jest 的测试运行程序。测试使用 Bun 运行时执行&#xff0c;并支持以下功能。 TypeScript 和 JSX生命周期 hooks快照测试UI 和 DOM 测试使用 --watch 的监视模式使用 --preload 预加载脚本 Bun 旨在与 Jest 兼容&#xff0c;但并非所…...

阿里云2核4G服务器支持多少人同时在线?

2核4G服务器支持多少人在线&#xff1f;阿里云服务器网账号下的2核4G服务器支持20人同时在线访问&#xff0c;然而应用不同、类型不同、程序效率不同实际并发数也不同&#xff0c;2核4G服务器的在线访问人数取决于多个变量因素&#xff1a; 2核4G&#xff1a;2核CPU和4G内存对…...

浏览器发出一个请求到收到响应步骤详解

前言 在网络通信中&#xff0c;浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节&#xff0c;涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节&#xff0c;帮助读者更全面地了解浏览器与Web服务器之…...

121. 买卖股票的最佳时机【leetcode】/动态规划

121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...

K8S Service相关概念

Service基本概念 K8S Service是K8S实现微服务架构最重要的组件之一&#xff0c;主要作用&#xff1a;1&#xff09;为Pod提供稳定的访问地址&#xff08;域名或IP&#xff09;&#xff0c;2&#xff09;实现负责均衡&#xff0c;3&#xff09;自动屏蔽后端Endpoints的变化。 …...

小米消金剖析“冒充老板”诈骗案例,呼吁群众提高反诈意识

近年来&#xff0c;诈骗手段日益翻新&#xff0c;冒充公司老板身份进行诈骗的案例屡见不鲜。不法分子利用人们的焦虑心理&#xff0c;以冒充老板的身份进行诈骗&#xff0c;给无数工作人员和企业带来了巨大的经济损失。重庆小米消费金融有限公司&#xff08;以下简称“小米消金…...

全量知识系统问题及SmartChat给出的答复 之14 解析器+DDD+文法型 之2

Q36. 知识系统中设计的三种文法解析器和设计模式之间的关系 进一步&#xff0c;我想将 知识系统中设计的三种语言&#xff08;形式语言、人工语言和自然&#xff09;的文法解析器和DDD中的三种程序类型&#xff08;领域模型、领域实体和领域服务&#xff09; 形式语言文法 我…...

蓝桥杯备赛 day2 | 4. 付账问题 5. 数字三角形

付账问题&#xff0c;关键是要了解整型的范围&#xff0c;确定获取输入数据的变量类型 需要注意的是int的十进制范围-32768 ~ 32767&#xff0c;那么我们可以知道&#xff0c;人数n是可以用int来装的&#xff0c;需付款数S应该是long long&#xff0c;获取的每个人初始钱数也应…...

2024关于idea激活码报This license xxxx has been suspended

HOSTS文件中增加 0.0.0.0 www.jetbrains.com 0.0.0.0 account.jetbrains.com 然后...

Android9-W517-使用NotificationListenerService监听通知

目录 一、前言 二、前提 三、方案 方案一 方案二 方案三 方案四 方案五 方案六 方案七 四、关于NotificationListenerService类头注释 五、结论 一、前言 NotificationListenerService可以让应用监听所有通知&#xff0c;但是无法获得监听通知的权限&#xff0c;如…...

git的“You can‘t push commits with committe“解决方法

如果使用错误的用户和邮箱执行了git提交&#xff0c;在执行 git push 时将遇到如下错误&#xff1a; ! [remote rejected] feature_116390305_story_0 -> feature_116390305_story_0 (You cant push commits with committer ‘yijian’ or email eyjianqq.com who is not ex…...

CAN总线的拓扑类型和CAN收发器(原理讲解)

1&#xff1a;CAN收发器&#xff08;原理讲解&#xff09; 从原理上来讲CAN_H拉升电压&#xff0c;或CAN_L拉低电压的原理。 以上是TJA1145AT的俯瞰图&#xff0c;此芯片是NXP比较先进的CAN收发器&#xff0c;带SPI总线系统。 回到正题&#xff0c;CAN_H和CAN_L收发器是通过内…...

Zotero Connector进阶:定制知乎内容抓取与快照/正文模式切换详解

1. 为什么需要定制知乎内容抓取&#xff1f; 作为一款强大的文献管理工具&#xff0c;Zotero在学术论文管理方面表现出色&#xff0c;但在处理知乎这类内容平台时却常常力不从心。我最初使用Zotero Connector抓取知乎内容时&#xff0c;经常遇到只保存了网页快照而无法获取完整…...

QT 5.14.0实战:手把手教你用QLineEdit打造一个带验证码的登录框(附完整样式代码)

QT 5.14.0实战&#xff1a;手把手教你用QLineEdit打造一个带验证码的登录框&#xff08;附完整样式代码&#xff09; 在GUI开发中&#xff0c;登录界面是最基础也最考验细节的组件之一。一个优秀的登录框不仅需要功能完整&#xff0c;还要在用户体验上下足功夫——比如实时输入…...

学术场景实战:DeepSeek-OCR-2驱动深求·墨鉴实现论文公式精准提取

学术场景实战&#xff1a;DeepSeek-OCR-2驱动深求墨鉴实现论文公式精准提取 1. 引言&#xff1a;学术研究中的公式提取痛点 如果你是一名理工科的研究生、科研工作者&#xff0c;或者经常需要阅读学术论文&#xff0c;你一定遇到过这样的场景&#xff1a;在PDF论文里看到一个…...

终极Übersicht小部件调试指南:10个实用工具和高效方法

终极bersicht小部件调试指南&#xff1a;10个实用工具和高效方法 【免费下载链接】uebersicht ˈyːbɐˌzɪt 项目地址: https://gitcode.com/gh_mirrors/ue/uebersicht bersicht是一款强大的macOS桌面小部件工具&#xff0c;让开发者能够在桌面上创建和运行自定义小部…...

高效双电源自动切换电路的设计与实现

1. 双电源自动切换电路的应用场景 双电源自动切换电路在现代电子设备中扮演着关键角色&#xff0c;它能确保设备在不同供电来源之间无缝切换&#xff0c;避免断电导致的系统崩溃。这种电路设计特别适合以下场景&#xff1a; 便携式设备&#xff1a;比如蓝牙音箱、移动电源等&am…...

深入RK3588 NPU架构:从NVDLA远亲到CNN加速器的设计取舍与性能真相

RK3588 NPU架构深度解构&#xff1a;CNN加速器的设计哲学与性能边界 当一块指甲盖大小的芯片宣称能提供6 TOPS的AI算力时&#xff0c;我们不禁要问&#xff1a;这数字背后隐藏着怎样的工程智慧与妥协&#xff1f;RK3588的NPU模块正引发这样的思考——它既非纯粹的学术创新&…...

MaxKB:企业级AI知识库部署实战指南

MaxKB&#xff1a;企业级AI知识库部署实战指南 【免费下载链接】MaxKB &#x1f525; MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。 项目地址: https://gitcode.com/GitHub_Trending/ma/MaxKB 面对企业AI…...

深入解析Triton Inference Server的Backend机制与实战配置

1. Triton Inference Server的Backend机制揭秘 第一次接触Triton Inference Server时&#xff0c;我被它的Backend机制搞得一头雾水。直到在真实项目中踩过几次坑后&#xff0c;才真正理解它的精妙之处。简单来说&#xff0c;Backend就像是一个万能适配器&#xff0c;让Triton能…...

HC-SR501人体红外传感器:从参数解析到树莓派实战应用

1. HC-SR501人体红外传感器核心参数解析 第一次接触HC-SR501时&#xff0c;我被它简单的三针脚设计迷惑了——这么小的模块真能检测人体移动&#xff1f;实测后发现这简直是智能家居项目的"火眼金睛"。让我们拆解它的关键参数&#xff0c;你会发现每个调节旋钮背后都…...

RTL8188EU USB WiFi模块AP模式配置避坑指南

RTL8188EU USB WiFi模块AP模式配置实战&#xff1a;从编译到避坑全解析 在物联网和嵌入式开发领域&#xff0c;RTL8188EU USB WiFi模块因其低成本和高兼容性被广泛使用。但当你尝试将其配置为AP模式时&#xff0c;官方hostapd的兼容性问题往往会让开发者陷入数天的调试泥潭。我…...