zoukankan      html  css  js  c++  java
  • Spring Boot(一)设计理念

    Spring Boot 的核心:约定优于配置

    约定优于配置,也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量、获得简单的好处,而又不失灵活性。

    本质是说,开发人员仅需规定应用中不符合约定的部分。如:模型中有个名为 User 的类,那么数据库中对应的表就会默认命名为 user。只有在偏离这一约定时,例如将该表命名为 “user_info”,才需写有关这个名字的配置。

    在 Spring 体系中,Spring Boot JPA 就是约定优于配置最佳实现之一,不需要关注表结构,我们约定类名即是表名,属性名即是表的字段,String 对应 varchar,long 对应 bigint,只有需要一些特殊要求的属性,我们再单独进行配置,按照这个约定我们可以将以前的工作大大简化。

    Spring Boot Starters

    Spring Boot Starters 基于约定优于配置的理念来设计,Spring Boot Starter 中有两个核心组件:自动配置代码和提供自动配置模块及其它有用的依赖。也就意味着当我们项目中引入某个 Starter,即拥有了此软件的默认使用能力,除非我们需要特定的配置,一般情况下我仅需要少量的配置或者不配置即可使用组件对应的功能。

    Spring Boot 由众多 Starter 组成,随着版本的推移 Starter 家族成员也与日俱增。在传统 Maven 项目中通常将一些层、组件拆分为模块来管理,以便相互依赖复用,在 Spring Boot 项目中我们则可以创建自定义 Spring Boot Starter 来达成该目的。

    以下为常用的 Spring Boot Starter 列表。

    名称 描述
    spring-boot-starter 核心 Starter,包括自动配置支持,日志和 YAML
    spring-boot-starter-activemq 用于使用 Apache ActiveMQ 实现 JMS 消息
    spring-boot-starter-amqp 用于使用 Spring AMQP 和 Rabbit MQ
    spring-boot-starter-cache 用于使用 Spring 框架的缓存支持
    spring-boot-starter-data-elasticsearch 用于使用 ElasticSearch 搜索,分析引擎和 Spring Data ElasticSearch
    spring-boot-starter-data-jpa 用于使用 Hibernate 实现 Spring Data JPA
    spring-boot-starter-data-mongodb 用于使用基于文档的数据库 MongoDB 和 Spring Data MongoDB
    spring-boot-starter-data-redis 用于使用 Spring Data Redis 和 Jedis 客户端操作键—值数据存储 Redis
    spring-boot-starter-jta-atomikos 用于使用 Atomikos 实现 JTA 事务
    sring-boot-starter-mail 用于使用 Java Mail 和 Spring 框架 Email 发送支持
    spring-boot-starter-quartz 用于定时任务 Quartz 的支持
    spring-boot-starter-security 对 Spring Security 的支持
    spring-boot-starter-test 用于测试 Spring Boot 应用,支持常用测试类库,包括 JUnit、Hamcrest 和 Mockito
    spring-boot-starter-thymeleaf 用于使用 Thymeleaf 模板引擎构建 MVC Web 应用
    spring-boot-starter-validation 用于使用 Hibernate Validator 实现 Java Bean 校验
    spring-boot-starter-web 用于使用 Spring MVC 构建 Web 应用,包括 RESTful。Tomcat 是默认的内嵌容器
    spring-boot-starter-websocket 用于使用 Spring 框架的 WebSocket 支持构建 WebSocket 应用
  • 相关阅读:
    Oracle 11g学习笔记(3)
    模式识别,图像处理工程师的要求
    vc++17 进程间的通信
    vc++学习笔记16 线程同步,异步套接字
    类型转换 float与int ,(int&)a,(int)&a
    vc++学习笔记16 线程同步,异步套接字
    vc++学习之15 多线程与聊天室程序的创建
    testl指令的问题
    C语言的几种位运算
    C语言的几种位运算
  • 原文地址:https://www.cnblogs.com/rabbitli/p/11084913.html
Copyright © 2011-2022 走看看