首页 > 编程语言 > 详细

SpringBoot 学集 (第一章)

时间:2020-08-26 09:04:29      阅读:151      评论:0      收藏:0      [点我收藏+]

写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~

编程路漫之远兮,运架构式之简化;
劝君专注案前事,亦是杯酒敬苍生

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:8080http://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]

基于实战中学习,学习快乐中成长
.
时间会回答成长,成长会回答梦想

SpringBoot 学集 (第一章)

原文:https://www.cnblogs.com/lzhCreate/p/13562744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!