Spring Boot

一 springBoot简介

简化Spring应用开发的一个框架
整个Spring技术栈的整合
J2EE开发的一站式解决

二 微服务

微服务 是一种架构风格
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;
每一个功能袁术最终都是一个可独立替换和独立升级的软件单元 ;
详见微服务文档

三 环境

JDK1.8
maven设置settings.xml
idea配置

四 Spring Boot HelloWorld

1.创建一个maven工程

2 导入spring Boot 相关依赖pom.xml

3.编写一个主程序xxx
@SpringBootApplication注解
写一个main方法
SpringApplication.run(xxx.class)

4.编写controller,service

5.运行主程序

6.简化部署
导入srping Boot的maven插件

五 HelloWorld探究

1 、pom文件
1 父项目

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

他的父项目(spring-boot-starter-parent的父项目)

<parent>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-dependencies</artifactId>
			<version>2.2.1.RELEASE</version>
			<relativePath>../../spring-boot-dependencies</relativePath>
		  </parent>

Spring Boot版本仲裁中心,以后我们导入依赖默认是不需要写版本号。
2启动器

<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>

spring-boot-starter-web:
spring-boot-starter:srping-boot场景启动器 ;帮我们导入web模块正常运行的所依赖的组件。
Spring Boot将所有的应用场景都抽取出来,做成一个个starters(启动器),只需要在项目里引入这些starter,相关场景的所有依赖都会导入进来。要什么功能就导入什么场景的启动器。
2、主程序类,主入口类

@SpringBootApplication
public class WxApplication {
    public static void main(String[] args) {
        SpringApplication.run(WxApplication.class, args);
        System.out.println("Spring Boot build SUCCESS!");
    }
}

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

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

@SpringBootConfiguration:Spring Boot的配置类
标注在某个类上,表示这是一个SpringBoot的配置类。

@Configuration:配置类上来标注这个注解
配置类----配置文件,配置类是容器的一个组件

@EnableAutoConfiguration:开启自动配置功能
以前我们需要自己配置的东西,Spring Boot帮我们自动配置。

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
@AutoConfigurationPackage:自动配置包
    @Import({Registrar.class})
    Spring的底层注解@import,给容器中导入一个组件,导入的组件有AutoConfigurationPackages.Registrar.class

将主配置类的所在包及下面所有子包里面的所有组件扫描到Spring容器。

@Import({AutoConfigurationImportSelector.class})
给容器导入组件
AutoConfigurationImportSelector:导入哪些组件的选择器
将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器。

Spring Boot在启动的时候,会从类路径下META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们做好了。
J2EE整体整合解决方案和自动配置都在:
spring-boot-autoconfigure.jar下。

六 使用Spring Initializer快速创建Spring Boot项目

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目。
选择我们需要的模块,向导会联网创建Spring Boot项目。
默认生成的Spring Boot项目:
主程序已经生成好了,我们只需要我们自己的逻辑;
resources文件夹下目录结构:
static:保存所有的静态资源,css/js/images;
templates:保存所有的模板页面,(SpringBoot默认jar包使用嵌入的tomcat,默认不支持JSP页面),可以使用模板引擎(freemaker,thymeleaf)

七 配置-yaml简介

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

1、基本语法

k:(空格)v:表示一个键值对(空格必须有)
以空格的缩进来控制层级关系,只要是左对齐的一列数据,都是同一个层级

server:
      port: 8081
      ip: 10.20.151.117

属性和值都是大小写敏感的。

2、值的写法

字面量:普通的值(数字、字符串、布尔)
字符串默认不用加上单引号或者双引号
“”双引号:不会转义字符串里的特殊字符
name: “zhangsan \n lisi” 输出 zhangsan 换行 lisi
‘’单引号:会转义特殊字符,特殊字符最终知识一个普通的字符串数据
name: ‘zhangsan \n lisi’ 输出 zhangshan \n lisi

对象、map
对象的k: v 的方式

person:
      name: neo
      age: 20

行内写法:

person: {name: neo,age: 20}

数组(list、set)

用 -值来表示数组中的一个值

pets:
  -cat
  -dog
  -pig

行内写法

pets: [cat,dog,pig]

配置文件值的获取

yml配置文件

person:
  name: neo
  age: 20
  birth: 2000/01/01
  isMarried: true;
  maps: {k1: v1,k2: v2}
  friends:
    - lucy
    - lily
  dog:
    name: tom
    age: 2

javaBean

/**
 * ConfigurationProperties:告诉SpringBoot将本类中的属性与配置文件内的相关配置一一对应起  来
 */
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Date birth;
    private Map maps;
    private List friends;
    private Dog dog;

导入配置文件处理器

    <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

八 properties配置文件

九 ConfigurationProperties跟@Value的区别

ConfigurationProperties@Value
功能批量注入配置文件中de的属性一个个指定
松散语法支持不支持
SpEL不支持支持
JSR303数据校验支持不支持
复杂类型封装支持不支持

说明:以上内容摘自于尚硅谷的Spirng Boot讲解视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值