写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~
编程路漫之远兮,运架构式之简化;
劝君专注案前事,亦是杯酒敬苍生
文章目录
SpringBoot概述
优点:
1、快速创建独立运行的Spring项目以及与主流框架集成
2、 使用嵌入式的Servlet容器,应用无需打成WAR包 – starters自动依赖与版本控制
3、大量的自动配置,简化开发,也可修改默认值 – 无需配置XML,无代码生成,开箱即用
4、准生产环境的运行时应用监控 、与云计算的天然集成
微服务引入
微服务参考翻译文档
单体应用:ALL IN ONE
微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;
环境部署
应具备以下环境: jdk 、 maven、 IDEA、 SpringBoot 及其应用
开始项目工程
导入springboot 相关依赖
在pom.xml
中进行导入
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
编写hello测试与编写相关的Controller、Service
public class hello {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(hello.class,args);
}
}
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
分别请求http://localhost:8080
与http://localhost:8080/hello
简化部署
首先在pom.xml
文件中进行配置
<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
将应用打成jar包,如上直接使用java -jar的命令进行执行
依赖原理探究
父项目
可以左键加ctrl查看源代码,其中父项目中还有父项目其为Spring Boot的版本仲裁中心(于dependencies中管理的依赖声明版本号)
Starters (启动器)
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(,根据项目需求引入相应starter场景,其相关依赖都会相应导入。
启动源码分析
上图说明必须在相应目录结构下才能被扫包
源码层层分析:
@SpringBootApplication: 标注此说明此类为SpringBoot的主配置类
—>
@SpringBootConfiguration:Spring Boot的配置类;
—>
@Configuration:配置类上来标注这个注解;
—>
配置类 -----> 配置文件( 本质容器中的组件)@Component
@EnableAutoConfiguration:开启自动配置功能;
@EnableAutoConfiguration开启自动配置功能
@AutoConfigurationPackage:自动配置包
@Import(AutoConfigurationPackages.Registrar.class):
将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
@Import(EnableAutoConfigurationImportSelector.class);
EnableAutoConfigurationImportSelector:导入组件的选择器;
快速创建
创建步骤如图示
默认目录结构介绍;
- resources文件夹中目录结构
- static:保存所有的静态资源; js css images;
- templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);
- application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;
SpringBoot 配置
配置文件
YAML(YAML Ain’t Markup Language)
SpringBoot使用全局的配置文件,配置文件名固定如下;
application.properties
application.yml
配置文件的作用:根据需求修改SpringBoot自动配置的默认值;
今昔对比:
以前XML配置文件: xxxx.xml文件
现在YAML:以数据为中心,比json、xml等更适合做配置文件;
XML:
<server>
<port>8081</port>
</server>
YAML:
server:
port: 8081
YAML语法
基本语法
k:(空格)v:表示一对键值对;
yaml以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的,属性和值也是大小写敏感;
server:
port: 8081
path: /hello
值的写法
字面量普通的值(数字,字符串,布尔)
k: v:字面直接来写;
其中字符串默认不用加上单引号或者双引号;
注意:
"":双引号;会转义字符串里面的特殊字符
name: "lzh \n qc"
输出: lzh
qc
’’:单引号;不会转义特殊字符
name: ‘lzh \n qc’:
输出;lzh \n qc
对象、Map(属性和值)(键值对):
k: v:在下一行来写对象的属性和值的关系,注意缩进表示层级关系
对象还是k: v的方式
friends:
lastName: lzh
age: 18
行内写法:
friends: {lastName: lzh,age: 18}
数组(List、Set):
用- 值表示数组中的一个元素
pets:
- cat
- dog
- pig
行内写法
pets: [cat,dog,pig]
基于实战中学习,学习快乐中成长
.
时间会回答成长,成长会回答梦想