天天看点

Spring Boot 学习 基础

一. Spring Boot 入门

1.springBoot简介:SpringBoot框架通过整合整个技术栈(springFramework,springData,SpringCould分布式…)来帮助J2EE企业级开发,简化应用,开发底层还是spring,但其约定大于配置。

微服务(是一个架构样式):相对于传统的单体应用(所谓单体应用就是我们以前做的项目将项目打成war包放到服务器tomcat上运行 服务器运行不过来就通过负载均衡的方式放到多个服务器中运行)相对来说,微服务侧重将每一个模块化,拆分细小化,再通过(HTTP进行连接)功能元素的动态组合实现优化

2.编写简单的HelloWord程序

第一步:导入相关的坐标依赖

<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>
           
spring-boot-starter 场景启动器 帮我们导入了springweb相关的依赖组件
           

所以我们需要用到哪个场景就需要导入相应的场景启动器

第二步:编写一个主程序配置相应的注解开启springBoot

Spring Boot 学习 基础

springBoot中 @SpringBootApplication注解标志在哪个类上 这个类就是springBoot的主配置类。

第三步:编写controller

Spring Boot 学习 基础

第四步:在main程序运行即可

第五步:简化部署

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
           
在target找到打包成jar包的目标文件 复制 放在桌面上
进入该文件路径 输入java -jar 加上springBoot文件名字就能运行了
           

3.原理分析

@SpringBootApplication注解 他帮我们集成了各种东西

快速创建springBoot项目

第一步 创建Spring Initializer 选择自己要创建的项目需要的场景启动器 创建项目 可以选择删掉一些没用的文件 当我们创建完时 他已经会帮我们导入pom.xml文件相关内容以及含有注解的主程序

第二步:我们需要写controller类 介绍个注解 @RestController 它集成了@Controller和@ResponseBaby (加载类上表示这个类的所有方法都会访问浏览器 如果是对象还能转为json数据)

第三步:介绍一下创建的springBoot的目录结构

static目录是放静态资源的 比如css js plugins pages

templates目录是放置模板引擎的(springboot默认是打jart包的 默认支持嵌入式tomcat) 这个放不了jsp 所以可以添加的的jsp模板为(freemaker,thymeleaf)

application.propertise目录:springBoot的配置文件 可以修改默认配置

二. Spring Boot 配置

1.配置文件名字都是 application.propertise,application.yml

其次YMAL是一门以数据为中心的标记语言 比xml和json更为符合作为配置文件

2.YMAL的基本语法

是一个注重空格的配置文件 左对齐表示同一层级

第一种:字面值

Spring Boot 学习 基础

第二种:map集合

这里的server是key address和port是值的同时也是key

Spring Boot 学习 基础

第三种:list和数组

键值对是用 — 来进行隔开的 cat、dog、tigger属于同一级

Spring Boot 学习 基础

3.配置文件值注入

第一步:需要创建Javabean指定相应的属性值

第二步:需要在application.yml 配置与javabean相对应的键值对 注意空格语法

第三步:在Javabean类上加上@ConfigerationProperties注解并且指定prefix的值(这个值是与yml文件对应的) 接着要在@ConfigerationProperties上加上@Component注解表示将这个类交给spring容器管理。

第四步:在已创建的test方法上将实体类Javabean注入到容器中@Autowire 最后在方法体中输出

[email protected]与@Value区别 注意SpEL表达式为#{}

Spring Boot 学习 基础

JSR303数据校验的注解为@Validated 例如email校验 要写成@Email格式 然后会以email格式去校验

[email protected](value=“{classpath=person.properties}”)让springBoot加载不是application.properties外的配置文件

@ImportResource(locations="{classpath:bean.xml}") 这是为了让spring配置文件生效

给容器中添加组件

Spring Boot 学习 基础
Spring Boot 学习 基础

5.profile的多环境支持

第一种是可以在多个配置环境下制定不同的模式值 比如端口号 dev开发模式,prod生产模式,以及默认模式 我们可以设定他的激活方式

第二种是在yml配置文件下配置 分模块化指定块部分 它是用—进行分块的

第一种激活方式是直接激活配置spring.proifiles.active=dev

第二种激活版方式是命令行激活 在运行处配置参数-spring.profiles.active=dev

第三种是虚拟机配置 同样 在运行处找到VM option的地方配置 -Dspring.profiles.active=dev

6.配置文件加载位置

Spring Boot 学习 基础
Spring Boot 学习 基础

补充一下排名第一的命令行参数 --server.port:8080 可以在terminal下直接输入

8.springBoot的自动配置原理

Spring Boot 学习 基础
Spring Boot 学习 基础
Spring Boot 学习 基础

9.springBoot使用的精髓

一.springBoot启动会加载大量的配置类

二.我们要看我们需要的功能是否有springBoot自动配置好的(默认写好的)

三.我们再来看这个配置类配置了那些组件(只要我的需要的组件有我们就不需要再进行配置了)

四.给容器中自动配置类添加组件的时候,会从properties中获取某些属性,我们可以指定这些配置文件属性的值。

Spring Boot 学习 基础

我们可以在application.properties中输入debug=true 这时候启动的时候就会在控制台告诉我们哪些组件生效。