当前位置: 首页 > 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>

http://www.lryc.cn/news/405273.html

相关文章:

  • Git之repo sync -c与repo sync -dc用法区别(四十八)
  • vite + vue3 + uniapp 项目从零搭建
  • 在CentOS中配置三个节点之间相互SSH免密登陆
  • arm 内联汇编基础
  • Java语言程序设计——篇五(1)
  • 【香橙派开发板测试】:在黑科技Orange Pi AIpro部署YOLOv8深度学习纤维分割检测模型
  • 集成学习在数学建模中的应用
  • WebKit 的 Web SQL 数据库:现代浏览器的本地存储解决方案
  • Yolo-World网络模型结构及原理分析(三)——RepVL-PAN
  • 代码随想录——一和零(Leetcode474)
  • 力扣题解(组合总和IV)
  • Postgresql主键自增的方法
  • 【源码阅读】Sony的go breaker熔断器源码探究
  • LeetCode题(66,69,35,88)--《c++》
  • 来参与“向日葵杯”全国教育仿真技术大赛~
  • SQL每日一题:删除重复电子邮箱
  • 3、宠物商店智能合约实战(truffle智能合约项目实战)
  • 数据库系列
  • 极狐GitLab如何启用和配置PlantUML?
  • Shell 构建flutter + Android 生成Apk
  • 如何用手机压缩视频?手机压缩视频方法来了
  • Linux下如何安装配置Elastic Stack日志收集系统
  • 【深入C++】map和set的使用
  • 跟代码执行流程,读Megatron源码(二)训练入口pretrain_gpt.py
  • MATLAB练习题——矩阵(2)
  • arm、AArch64、x86、amd64、x86_64 的区别
  • 【SpringBoot】 jasypt配置文件密码加解密
  • 复杂网络的任意子节点的网络最短距离
  • (Qt) 文件读写基础
  • 全产业布局对穿戴甲品牌连锁店的意义