SpringBoot 基础篇

发布时间:2026/11/4 22:19:22

SpringBoot 基础篇 SpringBoot概述概述SpringBoot时Spring提供的一个子项目用于快速构建Spring应用程序SpringBoot特性起步依赖、自动配置、其他特性起步依赖本质上就是一个Maven坐标整合完成了一个功能需要的所有坐标自动配置遵循约定大约配置的原则在boot程序启动后一些bean对象会自动注入到ioc容器不需要手动生命简化开发其他特性内嵌的Tomcat、Jettly无需部署WAR文件外部化配置不需要XML配置properties/yml配置文件properties配置文件1.application.propertiesserver.port9090 server.servlet.context-path/start2.application.yml/ application.yamlserver: port: 9191 servlet: context-path: /start2yaml配置文件 书写与获取①第三方技术配置信息②自定义配置信息email: user: 593140521qq.com code: jfejwezhcrzcbbbb host: smtp.qq.com auth: true书写· 值前面必须有空格作为分隔符· 使用空格作为缩进表示层级关系相同的层级左侧对齐获取· Value“${键名})· ConfigurationProperties(prefix 前缀)整合MyBatiscreate database if not exists mybatis; use mybatis; create table user( id int unsigned primary key auto_increment comment ID, name varchar(100) comment 姓名, age tinyint unsigned comment 年龄, gender tinyint unsigned comment 性别, 1:男, 2:女, phone varchar(11) comment 手机号 ) comment 用户表; insert into user(id, name, age, gender, phone) VALUES (null,白眉鹰王,55,1,18800000000); insert into user(id, name, age, gender, phone) VALUES (null,金毛狮王,45,1,18800000001); insert into user(id, name, age, gender, phone) VALUES (null,青翼蝠王,38,1,18800000002); insert into user(id, name, age, gender, phone) VALUES (null,紫衫龙王,42,2,18800000003); insert into user(id, name, age, gender, phone) VALUES (null,光明左使,37,1,18800000004); insert into user(id, name, age, gender, phone) VALUES (null,光明右使,48,1,18800000005);package com.itheima.mybatisquickstart.pojo; public class User { private Integer id; private String name; private Short age; private Short gender; private String phone; public User() { } public User(Integer id, String name, Short age, Short gender, String phone) { this.id id; this.name name; this.age age; this.gender gender; this.phone phone; } public Integer getId() { return id; } public void setId(Integer id) { this.id id; } public String getName() { return name; } public void setName(String name) { this.name name; } public Short getAge() { return age; } public void setAge(Short age) { this.age age; } public Short getGender() { return gender; } public void setGender(Short gender) { this.gender gender; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone phone; } Override public String toString() { return User{ id id , name name \ , age age , gender gender , phone phone \ }; } }Bean管理Bean扫描·标签 context:component-scan base-packagecom.itheima/·注解 ComponentScan(basePackages com.itheima)Bean注册*如果要注册的bean对象来自于第三方不是自定义的无法用Conponent 及衍生注解生命bean的·Bean如果要注册第三方bean建议在配置类中集中注册·Import导入 配置类导入 ImportSelector 接口实现类EnableXxxx注解封装Import注解注册条件SpringBoot提供了设置注册生效条件的注解Conditional自动配置管理自动配置原理①在主启动类上添加了SpringBootApplication注解这个注解组合了EnableAutoCongfiguration注解②EnableAutoCongfiguration注解又组合了Import注解导入了AutoCongfigurationImportSelector类③实现selectImprots方法这个方法经过层层调用最终会读取META-INF目录下的后缀名为imorts的文件自定义starter需求自定义mybatis的starter步骤·创建 dmybatis-spring-boot-autoconfigure模块提供自动配置功能并自定义配置文件META-INF/spring/xxx.imports·创建dmybatis-spring-boot-starter模块在starter中引入自动配置模块1.创建autoconfigure模块编写自动配置类Configuration public class CommonConfig { // 示例根据配置文件条件注册 Bean Bean ConditionalOnProperty(prefix country, name {name, system}) public Country country(Value(${country.name}) String name, Value(${country.system}) String system) { return new Country(name, system); } Bean public Province province() { return new Province(); } }2.创建自动配置入口类AutoConfiguration Import(CommonConfig.class) public class CommonAutoConfig { }3.配置自动配置加载文件cn.itcast.config.CommonAutoConfig4.创建starter模块引入autoconfigure依赖dependency groupIdcn.itcast/groupId artifactIddmybatis-spring-boot-autoconfigure/artifactId version1.0.0/version /dependency
延伸阅读

更多相关文章

2026/11/4 6:41:33

SegFormer技术选型指南:从理论到实践的完整决策框架

SegFormer技术选型指南:从理论到实践的完整决策框架 【免费下载链接】SegFormer Official PyTorch implementation of SegFormer 项目地址: https://gitcode.com/gh_mirrors/se/SegFormer 在语义分割领域,技术决策者面临的核心挑战是如何在精度、…

2026/11/4 9:41:19

AIGC(生成式AI)试用 52 -- Python IDLE扩展

为Python IDEL添加AI扩展。 日常Python开发,小程序居多:1)单个或多个文件;2)单个文件代码不越过1000行。 因此更多的时间开发,或者说更愿意使用Python原生的IDEL(Integrated Development and L…

2026/11/4 13:04:21

苍穹外卖day12

关于新增菜品的完整开发 逻辑首先控制层 RestController RequestMapping("/admin/dish") Api(tags"菜品相关接口") Slf4jpublic class DishController {Autowiredprivate DishService dishService;/*** 新增菜品* param dishDTO* return*/PostMappingApiO…

2026/11/4 23:06:20

Audio学习9(AudioFlinger/HAL)

1 环境 这次主要是看看audio在安卓平台的实现,用是瑞芯微RK3568开发板。 本来是想还是用之前的WM8960模块,但是很无语发现它板子上的I2S接口并没有引出来。引出的口只有I2C,SPI,还有UART。 和之前用的WM8960比较一下:…

2026/11/4 23:06:20

记录系统即权力:智能体时代企业底座迁移与决策权再分配

【摘要】以a16z 2026年10月发布的万字分析为核心依据,梳理4轮计算范式下的权力转移规律,结合Databricks年化收入70亿美元、智能体日均启动1700万个数据库的行业样本,拆解记录系统三权重构的底层逻辑,明确3类可量化失效边界&#x…

2026/11/4 23:06:20

第十章 GPU 虚拟地址空间管理:10.9 本章小结

1. 本章小结 本章讨论了 GPU 虚拟地址空间的管理。与 CPU 内存管理对照可以看出,GPU 内存管理在结构上沿用了地址空间、后备存储、反向映射与回收的分层,差异来自四项约束: 管理单位是 BO 而不是页; 多数 GPU 不能在作业执行中从缺页恢复,映射必须预先建立; 页表写入与数…

2026/11/4 23:01:19

年底还在招的岗位,先确认缺口和到岗要求

十一月看到一个技术岗位,不要仅凭「年底还在招」判断机会好坏。先确认缺口是否明确、流程由谁推进、希望何时到岗。岗位发布时间只能说明页面上有这条信息,不能替你回答团队现在需要什么人。 准备跳槽的人往往同时安排项目收尾、面试和个人行程。如果岗位…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑