SpringBoot--------概要 & 快速入门(一)

 

 

第1章 SpringBoot概要 & 快速入门

 

1.1 SpringBoot 介绍 

随着动态语言的流行(Ruby、Scala、Node.js), Java的开发显得格外的笨重;繁多的配置、低下的开发效

率、复杂的部署流程以及第三方技术整合难度大。

在上述环境下,Spring Boot由此诞生,它的设计是为了使您能够尽可能快地启动和运行。它使用 “习惯优于

配置” (项目中存在大量的配置,而 Spring Boot 内置一个习惯性的配置,让你无须手动进行配置)的理念让

你的项目快速运行起来。使用 Spring Boot 很容易创建一个独立运行(运行jar,内嵌 Servlet 容器)、准生产

强力的基于 Spring 框架的项目,使用 Spring Boot你可以不用或者只需要很少的 Spring 配置。提供了 J2EE

开发的一站式解决方案。

 

1.2 Spring Boot 优点

快速构建独立运行的Spring项目;

无须依赖外部Servlet容器,应用无需打成WAR包;项目可以打成jar包独自运行;

提供 一系列 starter pom 来简化 Maven 的依赖加载;

大量的自动配置,对主流开发框架的无配置集成;

无须配置XML,开箱即用,简化开发,同时也可以修改默认值来满足特定的需求;

Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式;

极大提高了开发、部署效率。

 

1.3 Spring Boot 入门开发

技术点要求:

熟练 Spring 框架的使用

熟练 Maven 依赖管理与项目构建

熟练使用 Eclipse 或 IDEA

 

1.3.1 环境要求

jdk1.8 (Spring Boot 推荐jdk1.8及以上): java version "1.8.0_151"

Maven 3.x (maven 3.2 以上版本):Apache Maven 3.3.9

IntelliJ IDEA :IntelliJ IDEA 2018.2.2 x64

SpringBoot 使用当前最新稳定版本:第4章web开发前 2.0.6.RELEASE ,后面使用 2.1.0.RELEASE

 

 

1.3.2 修改Maven配置文件

在 Maven 安装目录下的 settings.xml 配置文件中, 添加如下配置

 

 

1.3.3 IntelliJ IDEA 设置

 

 

 

 

1.3.4 快速构建 Spring Boot 项目

需求:浏览器发送 /hello 请求,服务器接受请求并处理,响应 Hello World 字符串

分析 :构建 Spring Boot 项目,事实上建立的就是一个 Maven 项目

1)创建 Maven工程

在 IDEA上新建一个空的jar类型 的 maven 工程

 

 

2)修改 pom.xml

在 pom.xml 中添加 Spring Boot 相关的父级依赖, spring-boot-starter-parent 是一个特殊的starter,

它提供了项目相关的默认依赖,使用它之后 ,常用的包依赖可以省去 version 标签。 

 

 

我们会惊奇地发现,我们的工程自动添加了好多好多jar包, 这些 jar包正是开发时需要导入的jar包

 

3) 创建控制器 Controller

 

4)创建一个引导类

主要作用是作为启动 Spring Boot 项目的入口

 

 

5)运行效果

运行 引导类 后,会出现 如下一个标识,你能不能看出来下边这个图是什么东西?

在浏览器地址栏输入 localhost:8080/hello 即可看到运行结果

 

 

 

6)简化部署

在 pom.xml 添加如下插件后, 将这个工程打成 jar 包后,可直接通过 java -jar 的命令运行

 

 

如下操作进行打成 jar 包, 从控制台可发现 打成的jar包所在目录

 

 

 

 

1.4 Spring Boot项目底层原理

1.4.1 pom.xml文件

1)spring-boot-starter-parent 是当前项目的父级依赖

 

 

 

2)spring-boot-starter-web

 

 

 

依赖导入了 Web 项目运行所依赖的组件;如 Tomcat / SpringMVC等

 

1.4.2 引导类

 

通常有一个名为 *Application 的入口 类,里面定义一个main方法,使用

SpringApplication.run(HelloMailAppliation.class, args); 来启动 SpringBoot 应用项目

@SpringBootApplication 注解主要组合了 @SpringBootConfiguration、@EnableAutoConfiguration、

@ComponentScan

@SpringBootApplication 注解说明:

标注在某个类上, 说明这个类是 Spring Boot 的引导类,Spring Boot 就应该运行这个类的main方法来

启动 SpringBoot 应用;

 

@SpringBootApplication 是以下3个注解的总和:

@SpringBootConfiguration:用于定义一个Spring Boot的配置类( 配置类 等同 配置文件)

引用了 @Configuration 注解,是Spring底层的一个注解,用于定义 Spring 的配置类。

配置类也是容器中的一个组件 @Component

@EnableAutoConfiguration :

告诉Spring Boot开启自动配置功能,这样Spring Boot会自动根据你导入的依赖jar包来自动

配置项目。

 

@AutoConfigurationPackage ——》 @Import({Registrar.class})

会将引导类(@SpringBootApplication标注的类)所在的包及下面所有子包里面的所有

组件扫描到Spring容器;

@Import({AutoConfigurationImportSelector.class})

将所有需要导入的组件以全类名的方式返回; 这些组件就会被添加到容器中

会给容器导入非常多的自动配置类(xxxxAutoConfiguration),就是导入并配置好当前项目

中所需要的组件,省去我们手动编写配置去注入组件.

 

Spring Boot在启动的时候从(spring-boot-autoconfigure-2.0.6.RELEASE.jar)类路径下的METAINF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的文件,自动配置类都帮我们完成了;

 

@ComponentScan: 该注解标识的类, 会被 Spring 自动扫描并且装入bean容器。

 

1.5 使用Spring初始化器创建Spring Boot项目

注意:初始化向导需要联网创建Spring Boot项目

 

引入功能模块

 

默认生成的Spring Boot项目;

 

删除不需要的文件与目录 , spring-boot-starter-test 是 Spring Boot 单元测试模块

引导类已经生成了,我们只需要实现业务即可

 

resources 文件夹中目录结构:

    static :保存所有的静态资文件, js css images

    templates :保存所有的模板页面(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页

面),可以使用模板引擎(freemarker、thymeleaf);

    application.properties :Spring Boot应用的配置文件;可以修改一些默认设置;

如修改默认端口 server.prot=8081 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章