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

第六章:【springboot】框架springboot原理、springboot父子工程与Swagger

SpringBoot原理

配置优先级

SpringBoot中支持三种格式的配置文件

  1. application.properties(优先级最高)
  2. application.yml(推荐配置)
  3. application.yaml(优先级最低)

SpringBoot除了支持配置文件属性配置,还支持java系统属性和命令行参数的方式进行配置

  1. SpringBoot支持通过java系统属性的方式进行配置,通过-D进行配置,例如:-Dserver.port=8080
  2. 运行jar包时配置 java -jar xxx.jar --server.port=8080

Bean管理

IOC容器中获取bean对象

默认情况下,Spring项目在启动时,会自动创建IOC容器,并将Bean对象放入容器中。可以通过如下方式获取bean对象

  1. 根据name获取bean对象 Objet getBean(String name)
  2. 根据类型获取bean对象 Object getBean(Class<?> requiredType)
  3. 根据name获取bean(带类型转换):<T> T getBean(String name, Class<T> requiredType)
public class Test {//获取被ioc容器管理的bean对象//注入ioc容器对象@Autowiredprivate ApplicationContext applicationContext;@Testpublic void test01() {//默认获取出来是一个Object 类型,需要进行强制转换//根据bean的名称获取bean对象UserMapper userMapper1 = (UserMapper) applicationContext.getBean("userMapper");//根据bean的类型获取bean对象UserMapper userMapper2 = applicationContext.getBean(UserMapper.class);//根据bean的名称和类型获取bean对象UserMapper userMapper3 = applicationContext.getBean("userMapper", UserMapper.class);}
}

Bean的作用域

  • IOC容器中获取出来的bean对象默认是单例的只有一个

Spring支持五种作用域,后三种在web环境才生效

作用域 说明
singleton 单例,默认值,一个IOC容器中只有一个实例
prototype 原型,每次获取都是新的实例
request 每一次请求都会创建一个新的实例
session 每一个会话都会创建一个新的实例
application 全局唯一实例

@Scope("prototype")
@Lazy
@PostMaping("/depts")
public class User {
http://www.lryc.cn/news/615090.html

相关文章:

  • visual studio 字体设置
  • 动态路由菜单:根据用户角色动态生成菜单栏的实践(包含子菜单)
  • 【Python 语法糖小火锅 · 第 5 涮 · 完结】
  • java练习题:数字位数
  • 【Java基础】字符串不可变性、string的intern原理
  • C++11 ---- 线程库
  • 3.2Vue Router路由导航
  • B.10.01.3-性能优化实战:从JVM到数据库的全链路优化
  • 区块链密码学简介
  • (LeetCode 每日一题) 231. 2 的幂 (位运算)
  • 基于clodop和Chrome原生打印的标签实现方法与性能对比
  • 通过 SCP 和 LXD 配置迁移 CUDA 环境至共享(笔记)
  • 数据标准化与归一化的区别与应用场景
  • FAN5622SX 四通道六通道电流吸收线性LED驱动器,单线数字接口 数字式调光, 2.7 → 5.5 V 直流直流输入, 30mA输出FAN5622S
  • C++ unordered_map 和 unordered_set 的使用
  • 新手向:Python开发简易待办事项应用
  • 【JS-8-Json】深入理解JSON语法及Java中的JSON操作
  • Visual Studio Code (v1.103) 中 GitHub Copilot 最新更新!
  • [TryHackMe]Challenges---Game Zone游戏区
  • 避不开的数据拷贝(2)
  • 第二十天:数论度量
  • 【面试场景题】通过LinkedHashMap来实现LRU与LFU
  • C++隐式转换的魔法与陷阱:explicit关键字的救赎
  • 软件工程总体设计:从抽象到具体的系统构建之道
  • Python基础教程(六)条件判断:引爆思维Python条件判断的九层境界
  • 轻量化阅读应用实践:21MB无广告电子书阅读器测评
  • MySQL(188)如何使用MySQL的慢查询工具?
  • Spring Boot 2 集成 Redis 集群详解
  • 聊聊经常用的微服务
  • MBR分区nvme固态硬盘安装win7--非UEFI启动和GPT分区