千家信息网

Spring Boot中如何理解约定优于配置问题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"Spring Boot中如何理解约定优于配置问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2026年11月03日Spring Boot中如何理解约定优于配置问题

本篇内容介绍了"Spring Boot中如何理解约定优于配置问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

那么怎么理解约定优于配置呢?

百度百科定义:

约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

总结就是两点:

1、约定一些推荐的默认配置;

2、开发人员只需要规定不符约定的部分;

这样做的好处就是,如果约定的默认配置符合我们的要求,省略即可,反之,再进行额外配置。

从 Spring Boot 中提供的默认的配置文件(application.properties/yml),再到默认值自动配置,都可以看出约定带来的便利,以及节省大量的配置。

来看下 Spring Boot 中一个自动配置的源码实例吧:

@Configuration@ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class,                MultipartConfigElement.class })@ConditionalOnProperty(prefix = "spring.servlet.multipart", name = "enabled", matchIfMissing = true)@ConditionalOnWebApplication(type = Type.SERVLET)@EnableConfigurationProperties(MultipartProperties.class)public class MultipartAutoConfiguration {        private final MultipartProperties multipartProperties;        public MultipartAutoConfiguration(MultipartProperties multipartProperties) {                this.multipartProperties = multipartProperties;        }        @Bean        @ConditionalOnMissingBean        public MultipartConfigElement multipartConfigElement() {                return this.multipartProperties.createMultipartConfig();        }        @Bean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME)        @ConditionalOnMissingBean(MultipartResolver.class)        public StandardServletMultipartResolver multipartResolver() {                StandardServletMultipartResolver multipartResolver = new StandardServletMultipartResolver();                multipartResolver.setResolveLazily(this.multipartProperties.isResolveLazily());                return multipartResolver;        }}@ConfigurationProperties(prefix = "spring.servlet.multipart", ignoreUnknownFields = false)public class MultipartProperties {        /**         * Whether to enable support of multipart uploads.         */        private boolean enabled = true;        /**         * Intermediate location of uploaded files.         */        private String location;        /**         * Max file size. Values can use the suffixes "MB" or "KB" to indicate megabytes or         * kilobytes, respectively.         */        private String maxFileSize = "1MB";        /**         * Max request size. Values can use the suffixes "MB" or "KB" to indicate megabytes or         * kilobytes, respectively.         */        private String maxRequestSize = "10MB";        /**         * Threshold after which files are written to disk. Values can use the suffixes "MB"         * or "KB" to indicate megabytes or kilobytes, respectively.         */        private String fileSizeThreshold = "0";        /**         * Whether to resolve the multipart request lazily at the time of file or parameter         * access.         */        private boolean resolveLazily = false;        // get/set/etc..}

这是一个文件上传的自动配置类,约定了:

1、约定了配置参数以 spring.servlet.multipart 前缀开始;

2、约定了很多默认配置,如:默认上传文件大小为 1M;

3、约定了所有的参数配置类名都是 *Properties;

4、约定了所有的自动配置类名都是 *AutoConfiguration;

5、约定了所有自动配置类配置在:/META-INF/spring.factories;

等等……

这样我们做一个文件上传操作几乎不用写任何配置了,除非满足不了需求,如:现在文件上传 1M 太小了,再加一行自定义配置即可,我们也可以按约定编写其他自动配置。

如果还不能理解,再来看 Maven 怎么做的,Maven 简直把约定大于配置的思想体现淋漓尽致。

"Spring Boot中如何理解约定优于配置问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

配置 约定 文件 问题 人员 内容 参数 名都 好处 就是 更多 知识 软件 开发 实用 淋漓尽致 学有所成 接下来 一行 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融科技还是互联网 北京互联网科技有限公司 互联网金融 科技金融 中国互联网科技发展 互联网养老 桔豆科技 海南购全球互联网科技 济南华为互联网科技产业总部基地 电子科技大学互联网创业大赛 内蒙古九一互联网科技 互联网公司黑科技创始人 特约风豹互联网科技为什么扣费 济南有互联网科技公司吗 互联网科技资金流入 下一代互联网重大应用科技园 广州三三互联网科技有限公司 众联互联网络科技 绵阳真晨互联网科技有限公司 长沙易易互联网科技有限公司 黑龙江互联网科技公司 优雇互联网科技有限公司 互联网最新的科技 科技制造互联网公司 西安互联网科技 致聘互联网科技 上海喔噻互联网科技 丰台科技园 互联网 汽车互联网创新科技园 国大互联网教育科技有限公司薪资 中天科技中国工业互联网 互联网科技平台产品运营
0