SpringBoot专栏--设计理念
SpringBoot的核⼼:约定优于配置
约定优于配置(Convention over Configuration),也称作按约定编程,是⼀种软件设计范式,⽬的在于减少开发⼈员需做决定的数量、获得简单的好处。本质地说,就是开发⼈员仅需规定应⽤下不符规定的部分。例如,加⼊模型中有个User的类,那么数据库对应的表默认为user。只有偏离这⼀约定时才需要配置。
在Spring体系中,Spring Boot JPA就是约定优于配置最佳实现之⼀,不需关注表结构,表名就是类型,属性名就是表字段,String 对应varchar,long对应bigint。只有⼀些特殊要求的属性,才会单独进⾏配置,简化了⼤量⼯作。
SpringBoot体系将约定优于配置思想展现淋漓尽致,⼩到配置⽂件、中间件的默认配置,⼤到内置容器、⽣态中各种starters都遵循此设计原则。Starters的核⼼组件之⼀就是autoconfigure模块,也就是Starters核⼼功能,在启动时⾃动装配,属性默认化配置。
Starers
SpringBoot Starters基于约定优于配置的理念设计。Starters有两个核⼼组件:⾃动配置代码和提供⾃动
配置模块及其它有⽤的依赖。当项⽬中引⼊某个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
类库,包括 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 应⽤validation框架
Spring、SpringBoot和SpringCloud的关系
Spring最初两⼤核⼼是SpringIOC和SpringAOP成就了Spring,在这两⼤核⼼功能不断发展有了Spring
事物、SpringMVC等⼀系列产品,最终成就了Spring帝国。
SpringBoot是在强⼤的Spring帝国⽣态基础上发展⽽来,并⾮要取代Spring,⽽是为了更好地使⽤。
SpringCloud是⼀系列框架的有序集合,利⽤SpringBoot的便利简化了分布式系统基础设施的开发。服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等都可以⽤SpringBoot的开发风格做到⼀键启动和部署。SpringCloud完全基于SpringBoot ⽽开发。
以下是他们之间的关系:
SpringIOC/AOP > Spring > SpringBoot > SpringCloud
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论