一、Spring Boot开发入门
-
Spring Boot简介
Spring Boot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring 4.0设计,初衷是简化使用Spring开发应用程序的过程,避免烦琐的配置工作,开发人员使用Spring Boot可以只专注于实现应用程序的功能和业务逻辑。
-
Spring Boot特点
(1)约定优于配置
Spring Boot使用“约定优于配置”的理念,针对企业级应用程序的开发,提供了很多已经集成好的方案,“开箱即用”的原则使得开发人员能做到零配置或极简配置。
(2)创建独立运行的Spring应用程序
使用Spring Boot可以创建独立运行的 Spring应用程序,并且基于Spring应用程序Maven或Gradle插件,可以创建可执行的JAR包和WAR包,使用java-jar命令或者在项CT 目的主程序中执行main方法可以运行Spring Boot应用程序。
(3)内嵌 Servlet容器
Spring Boot可以选择内嵌 Tomcat或Jetty等Servlet容器,无须以WAR包形式部署应用
(4)提供 starter 简化 Maven 配置
Spring Boot提供了一系列自动配置的starter项目对象模型(Project Object Model,POM)以简化Maven配置,高度封装,实现开箱即用。
(5)自动配置Spring
Spring Boot可以尽可能地根据在类路径中的JAR包,为JAR包里的类自动配置Spring中的Bean,极大地简化项目的配置。而对于少部分没有提供支持的开发场景,Spring Boot可以自定义自动配置功能。
(6)准生产的应用监控
Spring Boot提供了一个准生产环境下的监控和管理功能模块,可以使用HTTP、SSH、Telnet 等协议来进行操作,对运行的项目进行管理、跟踪和监控。
(7)无代码生成和XML配置
Spring Boot不是借助代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性,Spring Boot不需要任何XML配置即可实现Spring的所有配置。
-
Spring、Spring Boot、和Spring Cloud的关系
(1)Spring
Spring是于2003年兴起的一个开源的轻量级的Java开发框架,由罗德·约翰逊(RodJohnson)开发。它是为了降低企业应用程序开发的复杂度而创建的,主要优势之一就是其分层架构,分层架构允许使用者选择使用某个组件,同时为Java EE应用程序开发提供集成的框架。它提供了一些依赖注入和开箱即用的模块,如Spring MVC、SpringJDBC、Spring Security、Spring AOP、Spring IoC、Spring ORM和 Spring Test。这些模块为程序员节省了大量的应用程序开发时间,提高了开发应用程序的效率。
(2)Spring Boot
Spring Boot是Spring的扩展和自动化配置,它省去了在Spring中需要进行的XML文件配置过程,使得开发过程变得更快、更高效、更自动化。
(3)Spring Cloud
Spring Cloud是一套分布式服务治理框架,主要用于开发微服务。它本身不提供具体功能性的操作,只专注于服务之间的通信、熔断和监控等。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发过程,如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
微服务是可以独立部署、水平扩展、独立访问的服务单元。Spring Cloud是这些微服务的“首席技术官”(Chief Technology Officer, CTO),它可以提供各种方案来维护整个生态。
(4)三者的关系
综上所述,Spring Cloud通过Spring Boot来开发微服务,而Spring Boot依赖 Spring,它是Spring的自动化配置。
1.快速体验Spring Boot开发
1.1搭建开发环境
-
下载、安装及配置Maven
Maven官网下载最新版本
- 配置Maven国内仓库
Maven中心仓库在国外的服务器中,因此国内用户使用Maven仓库一般会面临速度极慢的情况。为此,部分国内公司提供了Maven中心仓库的镜像,可以通过修改Maven配置文件中的<mirror></mirror>标签来设置镜像仓库。
进入Maven安装目录下的conf目录,打开settings.xml文件,找到<mirror></mirror>标签,以设置阿里云镜像仓库为例,添加如下代码。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 安装开发工具IDEA及插件
打开IDEA官网,下载最新的IDEA免费版