SpringBoot实战项目教程,真TM香!

本章内容
 Spring Boot简化Spring应用程序开发
 Spring Boot的基本特性
 Spring Boot工作区的设置

以下知识点解析来自于《SpringBoot实战》文档其中的一部分!由于不影响观看,只选取了其中的一部分来展示。 需要完整版的可以点击这里!!暗号CSDN,获取!

前言

Spring Framework已有十余年的历史了,已成为Java应用程序开发框架的事实标准。在如此
悠久的历史背景下,有人可能会认为Spring放慢了脚步,躺在了自己的荣誉簿上,再也做不出什
么新鲜的东西,或者是让人激动的东西。甚至有人说,Spring是遗留项目,是时候去看看其他创
新的东西了。

1.1 Spring 风云再起

Spring诞生时是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身
组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,
可以代替XML。
尽管如此,我们依旧没能逃脱配置的魔爪。开启某些Spring特性时,比如事务管理和Spring
MVC,还是需要用XML或Java进行显式配置。启用第三方库时也需要显式配置,比如基于
Thymeleaf的Web视图。配置Servlet和过滤器(比如Spring的DispatcherServlet)同样需要在
web.xml或Servlet初始化代码里进行显式配置。组件扫描减少了配置量,Java配置让它看上去简洁
不少,但Spring还是需要不少配置。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要
进行思维切换,所以写配置挤占了写应用程序逻辑的时间。和所有框架一样,Spring实用,但与
此同时它要求的回报也不少。
除此之外,项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人
头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。
并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随
之而来的不兼容问题毫无疑问会是生产力杀手。
Spring Boot让这一切成为了过去。
1.1.1 重新认识 Spring
假设你受命用Spring开发一个简单的Hello World Web应用程序。你该做什么?我能想到一些
基本的需要。
1、一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring
MVC和Servlet API这些依赖。
2、一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring
的DispatcherServlet。  一个启用了Spring MVC的Spring配置。
3、一个控制器类,以“Hello World”响应HTTP请求。
4、 一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩
下的都是Spring开发的Web应用程序必需的通用样板。既然所有Spring Web应用程序都要用到它
们,那为什么还要你来提供这些东西呢?

假设这里只需要控制器。代码清单1-1所示基于Groovy的控制器类就是一个简单而完整的 Spring应用程序。

	@RestController 
	class HelloController {
    
 			@RequestMapping("/") 
				 def hello() {
    
 				return "Hello World" 
 	} 
}

这里没有配置,没有web.xml,没有构建说明,甚至没有应用服务器,但这就是整个应用程
序了。Spring Boot会搞定执行应用程序所需的各种后勤工作,你只要搞定应用程序的代码就好。
假设你已经装好了Spring Boot的命令行界面(Command Line Interface,CLI),可以像下面这
样在命令行里运行HelloController:

$ spring run HelloController.groovy

想必你已经注意到了,这里甚至没有编译代码,Spring Boot CLI可以运行未经编译的代码。
之所以选择用Groovy来写这个控制器示例,是因为Groovy语言的简洁与Spring Boot的简洁有
异曲同工之妙。但Spring Boot并不强制要求使用Groovy。实际上,本书中的很多代码都是用Java
写的,但在恰当的时候,偶尔也会出现一些Groovy代码。
不要客气,直接跳到1.2.1节吧,看看如何安装Spring Boot CLI,这样你就能试着编写这个小
小的Web应用程序了。现在,你将看到Spring Boot的关键部分,看到它是如何改变Spring应用程
序的开发方式的。
1.1.2 Spring Boot 精要
Spring Boot将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。
1、自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。
2、起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
3、命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,
无需传统项目构建。
4、Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。
每一个特性都在通过自己的方式简化Spring应用程序的开发。本书会探寻如何将它们发挥到
极致,但就目前而言,先简单看看它们都提供了哪些功能吧。

  1. 自动配置

你可能感兴趣的:(Spring,数据库,spring,java,linux,编程语言)