JavaWeb-day14-SpringBootWeb原理篇

配置优先级

配置文件

**优先级:**applicaton.properties > application.yml > application.yaml

Java系统属性和命令行参数

优先级: 命令行参数 > Java系统属性

优先级

Bean管理

获取bean

例如:

java 复制代码
@Autowired
    private ApplicationContext applicationContext; //IOC容器对象

    //获取bean对象
    @Test
    public void testGetBean(){
        //根据bean的名称获取
        DeptController bean1 = (DeptController) applicationContext.getBean("deptController");
        System.out.println(bean1);

        //根据bean的类型获取
        DeptController bean2 = applicationContext.getBean(DeptController.class);
        System.out.println(bean2);

        //根据bean的名称 及 类型获取
        DeptController bean3 = applicationContext.getBean("deptController", DeptController.class);
        System.out.println(bean3);
    }

bean的作用域

设置bean的作用域

第三方bean

SpringBoot原理

起步依赖

起步依赖的原理就是maven传递

自动配置

概述

方案

方案一:@ComponentScan组件扫描
方案二:@Import导入

例如:

java 复制代码
package com.itheima;

import com.example.EnableHeaderConfig;
import com.example.HeaderConfig;
import com.example.MyImportSelector;
import com.example.TokenParser;
import org.dom4j.io.SAXReader;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.function.ServerRequest;


//@ComponentScan({"com.example","com.itheima"})

//@Import({TokenParser.class}) //导入普通类,交给IOC容器管理
//@Import({HeaderConfig.class}) //导入配置类,交给IOC容器管理
//@Import({MyImportSelector.class}) //导入ImportSelector接口实现类

@EnableHeaderConfig
@SpringBootApplication
public class SpringbootWebConfig2Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootWebConfig2Application.class, args);
    }

//    //声明第三方bean
//    @Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean
//    public SAXReader saxReader(){
//        return new SAXReader();
//    }
}

源码跟踪

自动配置原理

条件装配注解@Conditional

例如:

自动配置原理

案例(自定义starter分析)

应用场景
分析

Web后端开发-总结

相关推荐
神仙别闹19 分钟前
基于 Java GUI 贪心策略直接搜索算法和极大极小博弈树算法的智能人机博弈五子棋游戏
java·毕业设计·gui·贪心策略·极大极小博弈树
Flynn Liang1 小时前
RAG 评估体系:黄金集、检索指标与 LLM-as-Judge 落地
java·langchain·rag·评估·langchain4j·检索指标
SomeOtherTime2 小时前
Rust生命周期介绍(AI回答)
开发语言·后端·rust
程序猿打工仔2 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
喵本喵叁肆2 小时前
Rényi 差分隐私:把隐私损失看成一族矩(英文原题:Rényi Differential Privacy (CSF 2017))
开发语言·r语言
SimonKing3 小时前
Workbuddy太占C盘空间了,写个迁移工具迁走10G的数据
java·后端·程序员
Hvitur3 小时前
Java - Lambda
java·开发语言·python
xiaoye-duck3 小时前
《C++ 项目:手写大模型接入 SDK》DataManager数据管理模块:SQLite持久化存储
开发语言·数据库·c++·sqlite
Evand J3 小时前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波