Java基础、中级、高级、架构面试资料

如何理解 SpringBoot 中的约定优于配置

JAVA xmt_herman_gcy 5188浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

大约是两年前,有同事给我说到,SpringBoot 中约定优于配置是什么意思?是不需要配置吗?不需要配置问什么还有配置文件?

1000+ 道 SpringBoot 面试题

关于这么问题,我相信也困扰着不少人,而面试中也有不少人会被问到。今天抽个时间,我们一起来讨论讨论,如何理解这句话!

约定优于配置,也有很多人解读为:约定大于配置,约定好于配置,习惯大于配置等。但它们都表明了一个意思,并不是说零配置。或者说零配置并不是完全没有配置,而是通过约定来减少配置。

约定优于配置是一个简单的概念。系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置。在大部分情况下,你会发现使用框架提供的默认值会让你的项目开发起来效率更快。

约定优于配置。并不是一个新套路,新技术,新思想。而是原来就一直存在的,SpringBoot 只不过是把它放大了,并真正的做到了约定优于配置。

比如,我们在日常开发过程中。你有一个 xttblog 表,那么可能就对应的有一个 Xttblog 的实体类。这其实就是一种约定。

在 SpringBoot 中,当我们导入一个 spring-boot-starter-web 后。就回自动的帮我们导入 Spring MVC 的相关依赖(包括 Json 支持的 Jackson 和数据校验的 Hibernate Validator)和一个内置的 Tomcat 容器,这使得在开发阶段可以直接通过 main 方法或是 JAR 包独立运行一个 WEB 项目。

SpringBoot 约定,当你导入 spring-boot-starter-web 后,就约定了你是一个 web 开发环境。当你是一个 web 环境,就约定了你会使用 SpringMVC(Struts2 之类的就拜拜了,因为不是亲生的,而且确实没 SpringMVC 使用率高)。至于其它的也约定你会需要,都给你默认导入进来。当你觉得不合适的时候,可以用更少的改动,满足你的需要。

Spring 在推动“约定优于配置”这一设计理念,从 Spring 的注解版本就已经开始了。引入注解就是为了减少一些默认配置,引入注解也就代表着简化配置的开始,官方说基于 spring 的基础就是这个事实。

SpringBoot 约定以 starter 的形式减少依赖,于是相继推出了不少常用的 starter。

约定优于配置。在我们的实际生活中也有体现。比如,我们约定靠右行驶,我们约定从小右手拿筷子等。正是 SprigBoot 的小“约定”,大作用,才让越来越多的人爱上它。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 如何理解 SpringBoot 中的约定优于配置