Spring Boot学习(一)
1.Spring Boot入门1.1Spring Boot 简介脚手架简化Spring应用开发的一个框架整个Spring技术栈的一个大整合J2EE开发的一站式解决方案优点快速创建独立运行的spring项目以及与主流框架集成使用嵌入式的Servlet容器应用无需打成war包内嵌TomcatStarters自动依赖和版本控制大量的自动装配简化开发也可以修改默认值无需配置XML无代码生成开箱即用准生产环境的运行时应用监控与云计算的天然集成1.2Spring Cloud微服务治理方案1.2.1微服务简介微服务是指开发单个小型的但有业务功能的服务每个服务都有自己处理和轻量通讯机制可以部署在单个或多个服务器上。微服务也指一种种松耦合的有一定的有界上下文的面向服务架构。一个应用应该是一组小型服务可以通过HTTP的方式进行互通微服务每一个功能元素最终都是一个可独立替换和独立升级的软件单元微服务文档Microservices1.2.2微服务优点每一个微服务都很小这样能聚焦一个指定的业务功能或业务需求。微服务能够被小团队单独开发这个小团队是2到5人的开发人员组成。微服务是松耦合的是有功能意义的服务无论是开发阶段或是部署阶段都是独立的。微服务能够使用不同的语言开发。微服务允许容易且灵活的方式集成自动部署通过持续集成工具一个团队的新成员能够更快投入生产。微服务易于被一个开发人员理解修改和维护这样小团队能够更关注自己的工作成果微服务能够即时被要求扩展。微服务能够部署中低端配置的服务。易于和第三方集成。每个微服务都有自己的存储能力可以有自己的数据库也可以有统一的数据库。1.2.3微服务缺点微服务架构可能带来过多的操作可能双倍的努力分布式系统可能复杂难以管理因为分布部署跟踪问题难当服务量增加管理复杂性增加2.Spring Boot HelloWorldmaven项目改变成springboot项目2.1创建 Maven 工程打包方式选 jar2.2导入spring boot相关的依赖parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.0.2.RELEASE/version /parent dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency /dependencies2.3编写一个主程序启动Spring Boot应用SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldMainApplication.class, args); } }2.4编写相关ControllerController public class HelloController { ResponseBody RequestMapping(/hello) public String hello() { return Hello World!; } }2.5运行主程序访问http://localhost:8080/hello即可看到Hello World!。2.6简化部署添加 Spring Boot Maven 插件打包为可执行 JARbuild plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin /plugins /build3.Hello World探究3.1父项目parent groupIdorg.springframework.boot/groupId artifactIdspring‐boot‐starter‐parent/artifactId version1.5.9.RELEASE/version /parent 他的父项目是 parent groupIdorg.springframework.boot/groupId artifactIdspring‐boot‐dependencies/artifactId version1.5.9.RELEASE/version relativePath../../spring‐boot‐dependencies/relativePath /parent 他来真正管理Spring Boot应用里面的所有依赖版本 Spring Boot的版本仲裁中心 以后我们导入依赖默认是不需要写版本没有在dependencies里面管理的依赖自然需要声明版本号3.2启动器dependency groupIdorg.springframework.boot/groupId artifactIdspring‐boot‐starter‐web/artifactId /dependencyspring-boot-starterspring-boot场景启动器帮我们导入了web模块正常运行所依赖的组件Spring Boot将所有的功能场景都抽取出来做成一个个的starters启动器只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。3.3主程序类主入口类/** * SpringBootApplication 来标注一个主程序类说明这是一个Spring Boot应用 */ SpringBootApplication public class HelloWorldMainApplication { public static void main(String[] args) { // Spring应用启动起来 SpringApplication.run(HelloWorldMainApplication.class,args); } }Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Documented Inherited SpringBootConfiguration EnableAutoConfiguration ComponentScan(excludeFilters { Filter(type FilterType.CUSTOM, classes TypeExcludeFilter.class), Filter(type FilterType.CUSTOM, classes AutoConfigurationExcludeFilter.class) }) public interface SpringBootApplication {AutoConfigurationPackage Import(EnableAutoConfigurationImportSelector.class) public interface EnableAutoConfiguration3.3.1SpringBootApplication:Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类SpringBoot就应该运行这个类的main方法来启动SpringBoot应用3.3.2SpringBootConfiguration:Spring Boot的配置类标注在某个类上表示这是一个Spring Boot的配置类3.3.3Configuration:配置类上来标注这个注解配置类-----配置文件配置类也是容器中的一个组件Component3.3.4EnableAutoConfiguration开启自动配置功能以前我们需要配置的东西Spring Boot帮我们自动配置EnableAutoConfiguration告诉SpringBoot开启自动配置功能这样自动配置才能生效3.3.5AutoConfigurationPackage自动配置包3.3.6Import(AutoConfigurationPackages.Registrar.class)Spring的底层注解Import给容器中导入一个组件导入的组件AutoConfigurationPackages.Registrar.class将主配置类SpringBootApplication标注的类的所在包及下面所有子包里面的所有组件扫描到Spring容器3.3.7Import(EnableAutoConfigurationImportSelector.class)给容器中导入组件EnableAutoConfigurationImportSelector导入哪些组件的选择器将所有需要导入的组件以全类名的方式返回这些组件就会被添加到容器中会给容器中导入非常多的自动配置类xxxAutoConfiguration就是给容器中导入这个场景需要的所有组件并配置好这些组件有了自动配置类免去了我们手动编写配置注入功能组件等的工作SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值将这些值作为自动配置类导入到容器中自动配置类就生效帮我们进行自动配置工作以前我们需要自己配置的东西自动配置类都帮我们

相关新闻

gcc-for-openEuler构建系统解析:从源码到二进制包的完整流程

gcc-for-openEuler构建系统解析:从源码到二进制包的完整流程

gcc-for-openEuler构建系统解析:从源码到二进制包的完整流程 【免费下载链接】gcc-for-openEuler GCC released as a binary package for openEuler and other OSes. 项目地址: https://gitcode.com/openeuler/gcc-for-openEuler 前往项目官网免费下载&#…

2026/6/30 11:09:23阅读更多 →
Android应用深度链接实战:从Scheme协议到无缝跳转的完整指南

Android应用深度链接实战:从Scheme协议到无缝跳转的完整指南

1. 深度链接与Scheme协议基础 深度链接(Deep Linking)是移动应用开发中一个非常重要的概念,它允许用户通过点击链接直接跳转到应用内的特定页面,而不是简单地启动应用首页。想象一下,你在微信里看到一个商品链接&…

2026/6/30 11:09:23阅读更多 →
【金蝶云星空】赠品业务对存货核算有什么影响?

【金蝶云星空】赠品业务对存货核算有什么影响?

导语 摘要 本篇文章对采购/销售业务的赠品场景进行讲解,针对以下4点问题。 ①赠品的业务背景 ②赠品如何在系统上制单 ③系统能否管控0单价未勾赠品不给下单 ④0单价未勾赠品对存货核算有什么影响 正文 采购/销售业务的赠品如何而来? 这里以采…

2026/6/30 11:09:23阅读更多 →
青少年法治展厅设备【青少年法治闯关体验系统】

青少年法治展厅设备【青少年法治闯关体验系统】

近年来,随着法治教育工作的不断深入,传统的普法宣传模式已经难以满足青少年群体日益增长的学习需求。相比单纯的文字阅读和视频观看,互动性强、参与感高的数字化普法方式更容易吸引青少年的注意力。在此背景下,青少年法治闯关体验…

2026/6/30 12:19:29阅读更多 →
声纹验证码真的安全吗?MFCC特征局限与对抗样本研究的防御启示

声纹验证码真的安全吗?MFCC特征局限与对抗样本研究的防御启示

声纹验证码作为“无感认证”的代表,被广泛应用于金融、政务等高安全场景。其核心假设是:每个人的发声器官生理结构唯一,MFCC等声学特征能稳定表征这种唯一性,且难以被合成或模仿。 然而,随着语音合成(TTS)、语音转换(VC)及对抗样本技术的发展,这一假设正面临严峻挑战…

2026/6/30 12:19:29阅读更多 →
从绕过到接管:CTFer的死亡ping命令实战剖析

从绕过到接管:CTFer的死亡ping命令实战剖析

1. 死亡ping命令的奇妙冒险 第一次遇到这种带过滤的ping功能时,我差点笑出声。开发者以为禁用几个关键词就能高枕无忧?太天真了!这种网络诊断功能在路由器管理后台太常见了,但往往藏着致命漏洞。就像给你一把玩具水枪,…

2026/6/30 12:19:29阅读更多 →
1、Origin科研绘图:从零到一的论文图表实战指南

1、Origin科研绘图:从零到一的论文图表实战指南

1. Origin科研绘图入门:从数据到图表的第一步 第一次打开Origin软件时,很多科研新手都会被它复杂的界面吓到。别担心,我刚开始用的时候也是一头雾水,但现在我已经能用它画出符合顶级期刊要求的图表了。让我们从最基础的操作开始&…

2026/6/30 12:19:29阅读更多 →
GitHub中文界面插件完整指南:5分钟实现母语级开发体验

GitHub中文界面插件完整指南:5分钟实现母语级开发体验

GitHub中文界面插件完整指南:5分钟实现母语级开发体验 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub的英文…

2026/6/30 12:19:29阅读更多 →
基于多种优化算法的物联网无人机基站研究【布谷鸟搜索CS、大象群体优化EHO、灰狼优化GWO、帝王蝴蝶优化MBO、鲨鱼群算法SSA和粒子群优化PSO】(Matlab代码实现)

基于多种优化算法的物联网无人机基站研究【布谷鸟搜索CS、大象群体优化EHO、灰狼优化GWO、帝王蝴蝶优化MBO、鲨鱼群算法SSA和粒子群优化PSO】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…

2026/6/30 12:14:28阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南 【免费下载链接】Destiny-2-Solo-Enabler Repo containing the C# and XAML code for the D2SE program. Included is also the dependency for the program, and image asset. 项目地址: https://gitcode…

2026/6/30 0:02:58阅读更多 →
第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

1. PowerPoint 2010基础操作全攻略 刚接触PowerPoint 2010时,很多人会被它复杂的界面吓到。其实只要掌握几个核心区域,就能快速上手。我最开始用PPT时,经常找不到功能按钮在哪,后来发现主要操作都集中在顶部功能区。 工作窗口主要…

2026/6/30 0:02:58阅读更多 →
XGBoost超参数实战:从理论到调优策略

XGBoost超参数实战:从理论到调优策略

1. XGBoost超参数基础认知 第一次接触XGBoost时,我被它那密密麻麻的参数列表吓到了。这感觉就像面对一架波音747的驾驶舱——每个按钮都可能有神奇的效果,但按错了就可能坠机。经过多年实战,我发现其实掌握十几个核心参数就能解决90%的问题。…

2026/6/30 0:02:59阅读更多 →