spring boot概述

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

SpringBoot简介

SpringBoot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可以说SpringBoot能简化我们之前采用SpringMVC + Spring + MyBatis框架进行开发的过程。 在以往我们采用SpringMVC + Spring + MyBatis框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并将它们整合在一起等,而SpringBoot框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。 所以采用SpringBoot可以非常容易和快速地创建基于Spring框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。正因为 SpringBoot 它化繁为简,让开发变得极其简单和快速,所以在业界备受关注。

SpringBoot的特性

● 能够快速创建基于Spring的应用程序

● 能够直接使用java main方法启动内嵌的Tomcat服务器运行SpringBoot程序,不需要部署war包文件

● 提供约定的starter POM来简化Maven配置,让Maven的配置变得简单

● 自动化配置,根据项目的Maven依赖配置,Springboot自动配置Spring、Spring mvc等

● 提供了程序的健康检查等功能

● 基本可以完全不使用XML配置文件,采用注解配置

SpringBoot四大核心

● 自动配置 针对很多Spring应用程序和常见的应用功能,SpringBoot能自动提供相关配置

● 起步依赖 告诉SpringBoot需要什么功能,它就能引入需要的依赖库

● Actuator 让你能够深入运行中的SpringBoot应用程序,一探SpringBoot程序的内部信息

● 命令行界面 这是SpringBoot的可选特性,主要针对Groovy语言使用; Groovy是一种基于JVM(Java虚拟机) 的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与Java代码很好地结合,也能用于扩展现有代码,由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库。

SpringBoot开发版本推荐

● Springboot目前分为两大版本系列,1.x系列和2.x系列

● 如果是使用eclipse,推荐安装Spring Tool Suite (STS)插件

● 如果使用IDEA旗舰版,自带了SpringBoot插件

● 推荐使用Maven 3.3+,Maven目前最新版本为3.6.0(2019.01)

● 推荐使用Java 8,SpringBoot 1.x系列的版本兼容Java 6,SpringBoot 2.x系列需要至少Java8

SpringBoot重要策略

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。

开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。

约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。

这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:

前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;

在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;

SpringMVC框架用于数据到达服务器后处理请求;

到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。

相关推荐
1104.北光c°3 分钟前
Leetcode215 三种写法完成数组中的第K个最大元素 【hot100算法个人笔记】【java写法】
java·笔记·程序人生·算法·leetcode·排序算法·快速选择
青山师15 分钟前
Java注解深度解析:从元数据机制到框架开发基石
java·开发语言·注解·javase·java面试·后端开发·java核心
AI人工智能+电脑小能手21 分钟前
【大白话说Java面试题】【Java基础篇】第35题:怎样声明一个类不会被继承?什么场景下会用
java·开发语言·后端·面试
升鲜宝供应链及收银系统源代码服务27 分钟前
升鲜宝云仓供应链管理系统 数据库数据字典设计 (一)---升鲜宝生鲜配送供应链管理系统
java·生鲜配送源代码·供应链源代码·生鲜供应链源代码·企业erp源代码·云仓供应链管理系统
大厂数码评测员34 分钟前
2026 年家庭菜谱记录工具怎么选:从功能边界和小程序代码实现看免费与付费差异
java·开发语言·apache
twc82934 分钟前
从架构视角梳理全链路压测的核心业务链路
java·大数据·软件测试·架构·性能测试·全链路压测
XS03010636 分钟前
Java基础 set集合
java·开发语言
驭渊的小故事37 分钟前
继承和多态
java·开发语言
Bechamz40 分钟前
大数据开发学习Day27
java·大数据·学习
Byron__1 小时前
Java并发核心面试知识点
java·面试·多线程·并发编程