本随笔,主要针对自身理解的约定优于配置的感悟,配置的方式其实不亚于写程序,优点不多,最复杂的Spring就是期望通过配置来管理依赖和事物,让开发人员痛苦的多。约定不见得就无坏处,新手学习成本会高些,单有些配置的学习成本更高,而把可以隐藏透明的直接约定好了,岂不乐哉!
Maven
相比Ant项目,构件是需要自己把构建的信息配置好,而Maven则不然,约定好源文件、输出目录,生命周期等,对于项目构件比较固定的,好处多多,因此你只需要学习一次,然后每次都做小量配置均可。(图片来源网络)
Gradle
说完maven后,就要提到很类似的:Gradle是约定优于配置最强之一:
- 和Maven一样使用src/main/java目录,利用插件执行各种目标;
- 其中的war插件:plugin:war;执行 gradle build 时,将会编译、测试、打包你的工程。Gradle 会在
src/main/webapp
下寻找 Web 工程文件。编译后的 classes 文件以及运行时依赖也都会被包含在 War 包中; - setting.gradle文件,我们用官网原文感受下:Beside the build script files, Gradle defines a settings file. The settings file is determined by Gradle via a naming convention. The default name for this file is
settings.gradle
. Later in this chapter we explain how Gradle looks for a settings file.
Spring Boot
相比Spring,Spring Boot有更多约定的规则,比喻集成模板和组件大部分是默认了,这种约定,你甚至可以不学习,也能上手
FR程序集
自身一次实践,就是我负责的框架需要动态加载Class类,然而得到Class文件后如何放到正确的路径(包)下呢,第一种想法,配置:用xml元数据去描述文件名、包名,然后解析操作;第二种想法,约定,约定文件名为类全限定名,比喻要把A.class放置com.scut.fan下,那么久把文件命名为com.scut.fan.A.class,把配置信息直接放在文件中,直接减少配置操作