答:按用途选择最小依赖集合,例如MVC、响应式Web、JDBC/JPA、验证、安全、监控、缓存或消息集成。Starter清单随版本变化,Boot4应查当前名称和模块划分。引入某个starter只是准备能力,不表示已经配置连接、业务规则或完整生产保障。
答:简单值可用 Value,按需查询可用 Environment,一组有结构的配置常用 ConfigurationProperties 绑定到专门类型。它们读取同一环境中的属性,却有不同的类型绑定、验证和表达能力。读取成功不表示配置来源正确,也不表示密码可以安全打印到日志。
答:先找同一个键来自哪些属性源,再按当前Boot优先级判断;常见命令行、Java系统属性、环境变量与配置数据的覆盖关系要分清。配置数据内部还有位置、环境与导入规则。不存在“所有外部文件永远低于所有包内profile文件”的通用结论,也不应背旧版17项清单当当前规范。
答:它为Maven提供Boot运行、可执行制品重打包、镜像构建及构建信息等能力。普通Java编译和JAR打包已有Maven插件,Boot插件主要补齐Boot制品布局与启动方式。它不是依赖版本BOM,也不是用了Boot就必须在每种运行方式下执行的“自动配置开关”。
答:GetMapping是限制GET方法的组合映射注解,RequestMapping可表达通用请求条件,不限制method时可能接受更广范围。两者都属于MVC映射能力,不是Boot专属。路由匹配还可看路径、参数、头和媒体类型;注解不会自动保证业务安全性或幂等性。
答:starter-parent在Boot依赖版本管理基础上提供常见Maven构建默认;dependencies BOM主要管理依赖版本。只能有一个Maven父工程,但可以导入BOM,因此公司父POM与Boot可以配合。导入BOM不会顺便获得所有插件执行和资源处理设置,二者不能当作完全等价替换。
答:常见DevTools使用重启机制:检测到编译产物变化后,通过类加载器分层等方式重建应用;部分模板或静态资源可刷新,LiveReload还能通知浏览器刷新。它不等于任意Java类都在原实例中无重启替换,IDE保存源码也不一定已经产生可检测的编译变化。
答:可用application-{profile}变体、按环境激活的配置文档及Profile条件注册不同Bean,再由外部参数选择环境。开发、测试、生产应有清楚的差异与默认值。Profile是一组激活条件,不是把所有秘密按环境名写入仓库就完成隔离,也不等于切换一份配置就自动保证部署安全。
答:可以逐步迁移或引入兼容配置,但不是把旧依赖换成Boot就自动完成兼容。需检查Java、Spring、Jakarta包名、Servlet容器、第三方库和构建方式,再决定保留哪些XML或Java配置。代际跨度大时宜分阶段验证,不能把Boot视为任意旧库的兼容层。
答:这是历史版本题,应按具体2.x小版本回答。以2.0为分界,Java基线提升到8、采用Spring5,加入WebFlux支持,Actuator等有明显调整;整个2.x期间还持续变化,不能把2.7新增能力全部说成2.0已经具备。当前批次用4.1.2,不能据此把2.x当作新项目默认。