转载自  【第十二章】零配置 之 12.1 概述 ——跟我学spring3

12.1  概述

12.1.1  什么是零配置

在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web.xml需要放到WEB-INF文件夹下等等,为什么要这么放呢?不这样放可以吗?

所谓零配置,并不是说一点配置都没有了,而是配置很少而已。通过约定来减少需要配置的数量,提高开发效率。

因此SSH集成时的项目结构和包结构完全是任意的,可以通过配置方式来指定位置,因此如web.xml完全可以不放在WEB-INF下边而通过如tomcat配置文件中新指定web.xml位置。

还有在SSH集成中还记得使用在Struts2配置文件中使用模式匹配通配符来定义action,只要我们的URL模式将类似于/{module}/{action}/{method}.action即可自动映射到相应的Action类的方法上,但如果你的URL不对肯定是映射不到的,这就是规约。

零配置并不是没有配置,而是通过约定来减少配置。那如何实现零配置呢?

12.1.2 零配置的实现方式

零配置实现主要有以下两种方式:

  • 惯例优先原则:也称为约定大于配置或规约大于配置(convention over configuration),即通过约定代码结构或命名规范来减少配置数量,同样不会减少配置文件;即通过约定好默认规范来提高开发效率;如Struts2配置文件使用模式匹配通配符来定义action就是惯例优先原则。
  • 基于注解的规约配置:通过在指定类上指定注解,通过注解约定其含义来减少配置数量,从而提高开发效率;如事务注解@Transaction是不是基于注解的规约,只有在指定的类或方法上使用该注解就表示其需要事务。

对惯例优先原则支持的有项目管理工具Maven,它约定了一套非常好的项目结构和一套合理的默认值来简化日常开发,作者比较喜欢使用Maven构建和管理项目;另外还有Strtus2的convention-plugin也提供了零配置支持等等。

大家还记得【7.5 集成Spring JDBC及最佳实践】时的80/20法则吗?零配置是不是同样很好的体现了这个法则,在日常开发中同样80%时间使用默认配置,而20%时间可能需要特定配置。

12.1.3  Spring3的零配置

Spring3中零配置的支持主要体现在Spring Web MVC框架的惯例优先原则和基于注解配置。

Spring Web MVC框架的惯例优先原则采用默认的命名规范来减少配置。

Spring基于注解的配置采用约定注解含义来减少配置,包括注解实现Bean配置、注解实现Bean定义和Java类替换配置文件三部分:

  • 注解实现Bean依赖注入:通过注解方式替代基于XML配置中的依赖注入,如使用@Autowired注解来完成依赖注入。
  • 注解实现Bean定义:通过注解方式进行Bean配置元数据定义,从而完全将Bean配置元数据从配置文件中移除。
  • Java类替换配置文件:使用Java类来定义所有的Spring配置,完全消除XML配置文件。

零配置 之 Spring 概述相关推荐

  1. 零配置 之 Spring注解实现Bean定义

    转载自  零配置 之 12.3 注解实现Bean定义 --跟我学spring3 12.3  注解实现Bean定义 12.3.1  概述 前边介绍的Bean定义全是基于XML方式定义配置元数据,且在[1 ...

  2. 零配置 之Spring基于Java类定义Bean配置元数据

    转载自  [第十二章]零配置 之 12.4 基于Java类定义Bean配置元数据 --跟我学spring3 12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义B ...

  3. 零配置 之 Spring 注解实现Bean依赖注入

    转载自  [第十二章]零配置 之 12.2 注解实现Bean依赖注入 --跟我学spring3 12.2  注解实现Bean依赖注入 12.2.1  概述 注解实现Bean配置主要用来进行如依赖注入. ...

  4. Spring解析,加载及实例化Bean的顺序(零配置)

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:jb_hz blog.csdn.net/qq_2752 ...

  5. 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

    经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...

  6. Spring零配置之@Configuration注解详解

    转载自 Spring零配置之@Configuration注解详解 @Configuration介绍 Spring3.0之前要使用Spring必须要有一个xml配置文件,这也是Spring的核心文件,而 ...

  7. Spring4.x()--Spring的Jdbc事务-零配置

    Spring的Jdbc事务-零配置 一.拷贝必要的jar包到工程的lib目录 二.准备数据库表和实体类 创建数据库: create database spring; use spring; 创建表: ...

  8. Spring MVC的WebMvcConfigurerAdapter用法收集(零配置,无XML配置)

    原理先不了解,只记录常用方法 用法: @EnableWebMvc 开启MVC配置,相当于 <?xml version="1.0" encoding="UTF-8&q ...

  9. spring boot 源码解析15-spring mvc零配置

    前言 spring boot 是基于spring 4 的基础上的一个框架,spring 4 有一个新特效–>基于java config 实现零配置.而在企业的实际工作中,spring 都是和sp ...

最新文章

  1. shell中的mput_FTP命令详解 及 shell中的使用
  2. linuxpython23同时_linux上安装python3同时保留python2
  3. 操作系统及编程语言历史以及shell命令
  4. node中异步IO的理解
  5. 再译《A *路径搜索入门》之二
  6. 乔治敦大学计算机专业排名,2020USNEWS数据科学与分析专业综合排名(上)
  7. php excel 分页,excel分页线怎么增加
  8. Linux 命令学习Tips
  9. 语言 micropython_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...
  10. php redis 扩展安装
  11. Swift ARKit 人脸滤镜保姆级教程
  12. BIOS知识枝桠——简称释义(按名称排序)
  13. java点名代码滚动_JAVA多线程实现简单的点名系统
  14. 【生活篇】微信运动刷步,高达98000!微信运动计步作弊教程!
  15. windows 用户的完美“瘦身”攻略
  16. java 微信 jssdk 分享朋友圈_JSSDK微信自定义分享朋友圈
  17. 猫狗二分类实战(PyTorch)
  18. 扫描工具-Arachni
  19. 微信小程序页面跳转后不显示内容
  20. The Places of Our Lives: Visiting Patterns and Automatic Labeling from Longitudinal Smartphone Data

热门文章

  1. leetcode377. 组合总和 Ⅳ
  2. leetcode112. 路径总和
  3. map容器的使用 逆序遍历map容器当中的数据
  4. C++中字符串的截取 str.substr(a,b);
  5. 跨越跨域大山,前端不得不知道的Ajax
  6. [mybatis]Configuration XML_mappers
  7. [JavaWeb-Servlet]Servlet的体系结构
  8. C++泛型编程实现哈希表(开散列法)
  9. php给html传值,PHP传值到不同页面的三种常见方式及php和html之间传值问题_PHP
  10. mysql技术分享-- 视图是什么