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

【Day1415】Bean管理、SpringBoot 原理、总结、Maven 高级

0 SpringBoot 配置优先级

从上到下

虽然 springboot 支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置
(yml是主流)

1 Bean管理

1.1 从 IOC 容器中获取 Bean

1.2 Bean 作品域

可以通过注解 @Scope("prototype") 配置作用域

1.3 第三方 Bean

在启动类中(不建议),

这样,

2 Springboot 原理

Springboot 提供两个重要功能:

  • 起步依赖
  • 自动配置

2.1 起步依赖

springboot 只需要启动一个依赖,依靠 Maven 的 依赖传递,可以包括很多其他依赖

2.2 自动配置

       当 spring 容器启动后,一些配置类、bean 对象就自动存入到了 IOC 容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作、

2.2.1 自动配置原理

或 springboot 原理

引入依赖,对应的 jar 包是如何将配置类、bean 对象加载到 Spring IOC容器中的

在 pom.xml 文件里面引入第三方依赖

但是启动类无法扫描到第三方的类

方案一:扩大扫描范围

但是太繁琐,不使用这种方案

也不行

最终方案

在启动类直接加上这个注解

2.3 自动配置源码(待添加)

3 总结

Web后端开发:三层架构

前端 -Controller层-Service层-Dao层-MySL

Controller层(控制器层)负责接收请求,相应数据

Service层(业务层)负责业务的逻辑处理

Dao(数据访问层,持久层)处理数据访问,完成数据的增删改查操作

前端发来求,到 Controller 层,不处理逻辑,直接调用Service层,Service再调用Dao层完成数据访问操作

如果在执行具体的业务处理之前,需要完成一些通用的业务处理,比如统一的登录校验、统一的字符编码等,需要在Controller层前使用JavaWeb三大组件之一的Filter过滤器或Spring的Interceptor拦截器

为了实现三层架构层与层之间的解耦,Spring 第一大核心IOC控制反转与DI依赖注入

IOC:将对象创建的控制权由应用程序自身交给外部容器,即IOC容器(或Spring容器),声明为容器中的Bean对象

DI:容器为程序提供运行时需要的资源

AOP

事务管理

全局异常处理器

传统会话技术Cookie、Session

新的会话跟踪技术JWT

阿里云OSS对象存储服务

Mybatis持久层框架,操作数据库

SSM(SpringMVC,Spring framework,Mybatis)繁琐

现在使用SpringBoot进行开发

4 Maven 高级(待添加)

4.1 分模块设计

抽取完,需要在主文件夹里面pom引入被抽取出去的依赖

4.2 继承与聚合

        继承描述的是两个工程间的关系,与 java 中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

重复引入了一个依赖

继续抽取

实现

<parent>...</parent>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • concrt140.dll修复丢失的解决办法?一键修复丢失concrt140.dll文件
  • 6、基于Fabirc 2.X 通用电子存证系统部署
  • 学习java第一百三十八天
  • 红人点集登录逆向+接口逆向:SHA256算法和Webpack反爬
  • 使用LSTM完成时间序列预测
  • 购物车案例(源码分享)
  • C语言 指针方法 编一程序,输入月份号,输出该月的英文月名
  • js动态规划
  • 【HarmonyOS】HarmonyOS NEXT学习日记:三、初识ArkUI
  • 智慧新零售移动端收银视频介绍
  • 204、【动态规划】牛客网 ——DP3 跳台阶扩展问题(Python版本)
  • Java后端开发(十五)-- Ubuntu 开启activemq开机自启动功能
  • 如何解决Windows系统目录权限问题
  • Python中Selenium 和 keyboard 库的使用
  • Transformer-Bert---散装知识点---mlm,nsp
  • 5、React组件事件详解
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Android框架之Volley
  • CentOS7简单部署NFS
  • JAVA_NIO系列——Channel和Buffer详解
  • jquery cookie
  • JS变量作用域
  • Linux中的硬链接与软链接
  • NSTimer学习笔记
  • React+TypeScript入门
  • Redash本地开发环境搭建
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Vue ES6 Jade Scss Webpack Gulp
  • Zsh 开发指南(第十四篇 文件读写)
  • 阿里云Kubernetes容器服务上体验Knative
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 系统认识JavaScript正则表达式
  • 怎样选择前端框架
  • 2017年360最后一道编程题
  • Semaphore
  • $().each和$.each的区别
  • (1)Nginx简介和安装教程
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (接口封装)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (排序详解之 堆排序)
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .equals()到底是什么意思?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net Memory Profiler的使用举例
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?