官术网_书友最值得收藏!

  • Spring Boot開發實戰
  • 陳光劍
  • 961字
  • 2019-01-05 10:00:21

1.3 約定優于配置極簡化理念

Spring Boot充分利用了JavaConfig的配置模式以及“約定優于配置”(Convention Over Configuration, COC)的理念,極大地簡化了基于Spring MVC的Web應用和REST服務的開發。

不用看那一堆帶著無數尖括號的XML真的讓人很神清氣爽。用JavaConfig注解方式可以讓人很容易明白配置代碼中的關鍵信息。

例如,一個標準的基于Gradle構建的Spring Boot應用程序目錄結構約定如下:

        .
        ├── LICENSE
        ├── README.md
        ├── build.gradle
        ├── gradle
        |    └── wrapper
        |        ├── gradle-wrapper.jar
        |        └── gradle-wrapper.properties
        ├── gradlew
        ├── gradlew.bat
        └── src
            ├── main
            |    ├── java
            |    ├── kotlin
            |    |    └── com
            |    |        └── easy
            |    |             └── Spring Boot
            |    |                  └── demo2_aop_logging
            |    |                       ├── Demo2AopLoggingApplication.kt
            |    |                       ├── aop
            |    |                       |    └── LogAspect.kt
            |    |                       └── controller
            |    |                            └── HelloAopController.kt
            |    └── resources
            |        ├── application-daily.properties
            |        ├── application-dev.properties
            |        ├── application-prod.properties
            |        ├── application.properties
            |        ├── static
            |        └── templates
            └── test
                ├── java
                ├── kotlin
                |    └── com
                |        └── easy
                |             └── Spring Boot
                |                  └── demo2_aop_logging
                |                       └── Demo2AopLoggingApplicationTests.kt
                └── resources
        23 directories, 20 files

目錄文件簡單說明如下:

?build.gradle——Gradle工程項目配置文件。

?src/main/java——項目Java源代碼目錄。

?src/main/kotlin——項目Kotlin源代碼目錄。

?src/main/resources——項目資源文件目錄。

?src/test/java——測試Java源代碼目錄。

?src/test/kotlin——測試Kotlin源代碼目錄。

?src/test/resources——測試資源文件目錄。

許多框架使用了COC的思想,包括:Spring、Ruby on Rails、Kohana PHP、Grails、Grok、Zend Framework、CakePHP、Symfony、Maven、ASP.NET MVC、Web2py(MVC)、Apache Wicket等。COC是一個古老的思想理念,甚至在Java類庫中也可以找出這一概念的蹤跡。JavaBean規范中很多就是依賴這個理念。

例如,在知名的Java對象關系映射(ORM)框架Hibernate的早期版本中,將類及其屬性映射到數據庫上在XML文件中進行配置,而其中大部分信息都應能夠按照約定得到,如將類映射到對應的數據庫表,將類屬性一一映射到表上的字段。在后續的版本中拋棄了這樣的XML配置文件,而是采用Java類屬性使用駝峰式命名對應數據庫表中的下劃線命名這個恰當的約定,大大簡化了配置。而對于不符合這些約定的特殊情形,就使用Java注解來標注說明。

例如,Spring通過使用約定好的注解來標注Spring應用中各層中的Bean類:

?@Component——標注一個普通的Spring Bean類。

?@Controller——標注一個控制器組件類。

?@Service——標注一個業務邏輯組件類。

?@Repository——標注一個DAO組件類。

其實Java的成功,Spring的成功,XML的成功,Maven的成功等,都有其必然性,因為它們的設計理念都包含一個很簡單但很深刻的道理——那就是“通用”。為什么通用?因為遵循約定。

提示

約定優于配置(Convention Over Configuration, COC)也稱為按約定編程,是一種軟件設計范式,旨在減少軟件開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。

主站蜘蛛池模板: 儋州市| 珲春市| 绥芬河市| 丰城市| 彭州市| 交城县| 长岛县| 滨州市| 五指山市| 工布江达县| 奉化市| 鄢陵县| 安陆市| 进贤县| 商河县| 蚌埠市| 荆州市| 尚志市| 昌平区| 锦州市| 阿拉尔市| 潼关县| 九江市| 达拉特旗| 游戏| 明星| 大冶市| 平江县| 诏安县| 襄垣县| 嵩明县| 通州市| 扎鲁特旗| 临夏县| 韶关市| 凉山| 柘城县| 五寨县| 项城市| 平昌县| 阿拉善左旗|