SpringBoot学习<一>(创建介绍,配置文件的讲解)

Spring Boot

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

优点:

(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;

(2)内嵌Tomcat或Jetty等Servlet容器;

(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

(4)尽可能自动配置Spring容器;

(5)提供准备好的特性,如指标、健康检查和外部化配置;

(6)绝对没有代码生成,不需要XML配置。

创建一个SpringBoot示例

环境:

1.Jdk1.8版本

2.maven 3.3以上版本

Maven设置:

给maven 的settings.xml配置文件的profiles标签添加:(设置使用的jdk版本)

开发工具中的maven设置为自己配置的maven

SpringBoot学习<一>(创建介绍,配置文件的讲解)


创建一个maven工程:

(1)导入spring boot相关的依赖

SpringBoot学习<一>(创建介绍,配置文件的讲解)


(2)编写一个主程序;启动Spring Boot应用

SpringBoot学习<一>(创建介绍,配置文件的讲解)


(3)编写一个Controller

SpringBoot学习<一>(创建介绍,配置文件的讲解)


(4)运行主程序Main方法测试

(5)访问 localhost:8080/hello

至此springboot配置完成,不需要任何的xml配置,不要安装tomcat,直接运行,即可访问。

简化部署

(1)添加maven插件

SpringBoot学习<一>(创建介绍,配置文件的讲解)


(2) 使用mvn package进行打包

(3) 进入打包好的jar包所在目录

(4) 使用 java -jar jar包名称 运行

探究

1、父项目

Spring Boot的版本仲裁中心;

以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)

2、启动器

SpringBoot学习<一>(创建介绍,配置文件的讲解)


spring-boot-starter-web:

spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;

Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter

相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。

3.主程序类,主入口类

SpringBoot学习<一>(创建介绍,配置文件的讲解)

@SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;

SpringBoot学习<一>(创建介绍,配置文件的讲解)

@SpringBootConfifiguration:Spring Boot的配置类;

标注在某个类上,表示这是一个Spring Boot的配置类;

@Confifiguration:配置类上来标注这个注解;

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


@EnableAutoConfifiguration:开启自动配置功能;

以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfifiguration告诉SpringBoot开启自

动配置功能;这样自动配置才能生效;

SpringBoot学习<一>(创建介绍,配置文件的讲解)

@AutoConfifigurationPackage:自动配置包

@Import(AutoConfifigurationPackages.Registrar.class):

Spring的底层注解@Import,给容器中导入一个组件;导入的组件由

AutoConfifigurationPackages.Registrar.class;

将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

@Import(EnableAutoConfifigurationImportSelector.class);

给容器中导入组件?

EnableAutoConfifigurationImportSelector:导入哪些组件的选择器;

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

会给容器中导入非常多的自动配置类(xxxAutoConfifiguration);就是给容器中导入这个场景需要的所有组件,

并配置好这些组件;

SpringBoot学习<一>(创建介绍,配置文件的讲解)

有了自动配置类,免去了我们手动编写配置注入功能组件等的工作;

SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);

Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们;

J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;

快速创建Spring Boot项目

1、IDEA:使用 Spring Initializer快速创建项目

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;

选择我们需要的模块;向导会联网创建Spring Boot项目;

默认生成的Spring Boot项目;

主程序已经生成好了,我们只需要我们自己的逻辑

resources文件夹中目录结构

static:保存所有的静态资源; js css images;

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

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

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

2、STS使用 Spring Starter Project快速创建项目

配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的;

application.properties

application.yml

配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

YAML(YAML Ain't Markup Language)标记语言

以前的配置文件;大多都使用的是 xxxx.xml文件;

YAML:以数据为中心,比json、xml等更适合做配置文件;

YAML:配置例子

SpringBoot学习<一>(创建介绍,配置文件的讲解)

XML:

SpringBoot学习<一>(创建介绍,配置文件的讲解)

YAML语法

1、基本语法

k:(空格)v:表示一对键值对(空格必须有);

以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的

SpringBoot学习<一>(创建介绍,配置文件的讲解)

属性和值也是大小写敏感;

2、值的写法

字面量:普通的值(数字,字符串,布尔)

k: v:字面直接来写;

字符串默认不用加上单引号或者双引号;

"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

name: "zhangsan \\n lisi":输出;zhangsan 换行 lisi

'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据

name: ‘zhangsan \\n lisi’:输出;zhangsan \\n lisi

对象、Map(属性和值)(键值对):

k: v:在下一行来写对象的属性和值的关系;注意缩进

对象还是k: v的方式

SpringBoot学习<一>(创建介绍,配置文件的讲解)

数组(List、Set):

用- 值表示数组中的一个元素

SpringBoot学习<一>(创建介绍,配置文件的讲解)

行内写法:

pets: [cat,dog,pig]


第一篇介绍到这,后续将继续讲解springboot其他部分。


分享到:


相關文章: