千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"Spring Boot中如何理解约定优于配置问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年12月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安全错误 数据库的锁怎样保障安全 安装软件时出现同名数据库 excel数据库做绩效 网吧主服务器换硬盘 微信数据是什么数据库文件夹 armA9用什么软件开发 游戏邮件系统 服务器 持有一个数据库要多久 苏宁服务器系统升级 农业银行软件开发招聘 处方软件开发用什么写 数据库编程工作怎么样 网络技术都有哪些专业 metabric数据库视频 ps4折腾版服务器说明 5g移动通信网络技术的有点 长沙大禾互联网科技有限公司 传媒公司可以做软件开发的活吗 量化用什么数据库 网络安全老大哥 增强网络安全意识重要性 数据库中最常见的慢查询优化方式 完善网络安全技术体系 用友u8数据库怎么重新启用 lol端游服务器需要经常更新吗 计算机网络技术基础曹建文 天津的网络安全厂商 无锡知名服务器咨询客服 内网www服务器安全防护 中国邮政总行公开招聘软件开发类 自动生成代码连接数据库
0