一、约定优于配置
约定优于配置(Convention Over Configuration),也称作按约定编程是一种软件设计范式。目的在于减少软件开发人员所需要做出的决定的数量,从而获得简单的好处,而又不失去其中的灵活性。开发人员仅仅需要规定应用中不符合约定的部分。例如,如果模型中有个名为Sale的类,数据库中对应的表就会默认命名为sales。只有在偏离这一约定的时候,比如将该表命名为"products_sold",才会需要写有关这个名字的配置。如果所用工具的约定与你的期待相符,便可省去配置;反之,你可以配置来达到你所期待的方式。
比如平时架构师搭建项目就是限制软件开发随便写代码,制定出一套规范,让开发人员按统一的要求进行开发编码测试之类的,这样就加强了开发效率与审查代码效率。所以说写代码的时候就需要按要求命名,这样统一规范的代码就有良好的可读性与维护性了。
补充:约定优于配置也被称为习惯优于配置、约定大于配置
二、Spring Boot中的约定优于配置
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。spring Boot采用约定优于配置的方式,大量的减少了配置文件的使用
spring-boot-starter-web 包含了 Spring MVC 的相关依赖(包括 Json 支持的 Jackson 和数据校验的 Hibernate Validator)和一个内置的 Tomcat 容器,这使得在开发阶段可以直接通过 main方法或是 JAR 包独立运行一个 WEB 项目。而在部署阶段也可以打成 WAR 包放到生产环境运行。
三、这是新的技术新的思想么?
并不是,在JDK5.0发布,采用元数据 ,引入注解的概念(也称之为标注),就代表简化配置的开始,就是初期的一种 “约定优于配置” 的体现;这么看来,springboot并不是什么新的技术,官方说基于spring 的基础,没错确实基于spring的基础,细粒度的划分无非就是注解完成减少配置,快速搭建项目的框架工具罢了;
许多新的框架使用了约定优于配置的方法,包括:Spring,Ruby on Rails,Kohana PHP,Grails,Grok,Zend Framework,CakePHP,symfony,Maven,ASP.NET MVC,Web2py(MVC),Apache Wicket。
有话要说...