spring cloud实战读书笔记2 —— SpringBoot

为什么选用SpringBoot作为微服务框架?
理由:
1.自动化配置
2.快速开发
3。轻松部署
 
优点:
1.大量自动化配置
2.每次整合功能时,不需要在Maven的pom。xml中维护依赖关系。而是通过模块化的Starter模块定义来引用。
3.springcloud可以很好地融入docker,本身支持嵌入式Tomcat、Jetty,所以通过Springboot构建的项目不需要安装Tomcat,只需要将Springboot打包为jar包,通过java -jar运行
SpringBoot的宗旨并非要重写Spring或是替代Spring, 而是希望通过设计大量的自动化配置等方式来简化Spring原有样板化的配置,
使得开发者可以快速构建应用。
 
boot项目构建:
结构:
src/main/java: 主程序入口
src/main/resources: 配置目录,
比如:应用名、服务端口、数据库链接等。
static:静态资源, 如图片、 css、JavaScript等
templates:Web页面的模板文件
• src/test: 单元测试目录, 生成的HelloApplicationTests通过JUnit 4实
现, 可以直接用运行Spring Boot应用的测试
 
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.guo.cloudhello</groupId>
    <artifactId>cloudhello</artifactId>
    <version>1.0-SNAPSHOT</version>
        父项目parent配置指定为 spring-boot-starter-parent的1. 3.版本, 7 该父项
    目中定义了Spring Boot版本的基础依赖以及 一 些默认配置内容 , 比如,配置文件
    application.proper的位置等
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.7.RELEASE</version>
        <relativePath/>
    </parent>
    <dependencies>
        spring-boot-starter-web: 全栈Web开发模块, 包含嵌入式Tomcat、 Spring
        MVC。
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        spring-boot-starter士est: 通用测试模块, 包含JUnit、 Hamcrest、 Mockito 。
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Brixton.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
 
 
 
这里所引用的web和test 模块,在SpringBoot 生态中被称为Starter POMs。Starter POMs。是一系列轻便的依赖 包, 是一套一站式的Spring相关技术的解决方案。
Spring Boot的StarterPOMs采用spring-boo七-starter-*的命名方式,*代表一个特别的应用功能模块
 
配置文件:
Spring Boot 的默 认 配 置 文 件位置为 src/main/resources/application. properties 。
server.port=8888 来 指 定 服 务 端口为 8888 , 也可 以通过 spring.applicaton.name =hello来指定应用名
 
配置文件格式:
  1. .properties文件
  2. .yml文件
environments:
    dev:
        url: http://dev.bar.com
等价于:
environments.dev.url=http://dev.bar.com
 
 
自定义参数:
book.name=SpringCloudinAction
book.author=ZhaiYongchao
@Component
public class Book {
 
@Value("${book.name}")//通过@Value 注解来加载这些自定义的参数
private String name;
@Value("${book.author}")
private String author;
}
 
自定义参数引用:
在 application.proper巨es 中的各个参数之间可以直接通过使用 PlaceHolder 的 方式来进行引用 , 就像下面的设置:
book.name=SpringCloud
book.author=ZhaiYongchao
book.desc=${book.author} is writing《${book.name}》
 
命令行参数:
一般通过java -jar方式启动springboot应用。但是要在命令行中指定应用运行参数:
java -jar xxx.jar --server.parrt= 8888  
1.直接用命令行的方式设置Server。port属性,并将启动的端口设置为8088
2.连续的两个减号--就 是对applicaton.properties 中 的 属 性 值 进 行赋值 的标识。 所以 , java -jarxxx.jar--server.porrt=8888命令, 等价于application.properties 中添加属性server.port= 8888
 
多环境配置:
springboot多环境配置的配置文件名格式需要满足application-{profile}.properties的格式{profile对应环境标识}
通过spring.profiles.active属性来设置
java -jar xxx.jar --spring.profiles.active=test //启动测试环境
java -jar xxx.jar --spring.profiles.active=prod//启动生产环境
 
springboot应用属性加载顺序:
为了能够合理重写各个属性的值,springboot使用了下面的属性加载顺序
1 在命令行中传入的参数。
2. SPRING APPLICATION JSON中的属性。 SPRING_APPLICATION—JSON是以
JSON格式配置在系统环境变量中的内容。
3. java:comp/env中的JNDI 属性。
4. Java的系统属性, 可以通过System.getProperties()获得的内容。
5 操作系统的环境变量 。
6 通过random.*配置的随机属性
7 位于当前应用 jar 包之外, 针对不同{profile}环境的配置文件内容, 例如
app巨ca巨on-{profile}.proper巨es或是YAML定义的配置文件。
8 位于当前应用 jar 包之内 , 针对不同{profile}环境的配置文件内容,例如
app巨ca巨on-{profile}.proper巨es或是YAML定义的配置文件。
9 位于当前应用jar包之外的application.proper巨es和YAML配置内容。
10位于当前应用jar包之内的app口ca巨on.proper巨es和YAML配置内容。
11在@Configura巨on注解修改的类中,通过@PropertySource注解定义的属性。
12应用默认属性,使用SpringApplication.se七DefaultProper巨es 定义的
内容
 
 
 
监控与管理:
actuator:
作用是不间断的手机各个微服务的应用的各项指标情况,并根据这些基础指标信息制定监控和预警贵族,做到自动化运维。
引入spring-boot-starter-actuator能够自动为springboot够贱的应用提供一系列用于监控的端点。
 
maven依赖:
<dependency>
<groupid> org.springframework.boot</groupid>
<arti factid>spring-boot-starter-actuator</artifactid>
</dependency>
例如/health、/mappings、/beans这些都是端点依赖。
 
应用配置类:
/autoconfig  该端点用来获取应用的自动化配置报告, 其中包括所有自动化配置的
候选项。例如boot默认配置。
/beans   该端点用来获取应用上下文中创建的所有Bean。
/configprops   该端点用来获取应用中配置的属性信息报告。
/env: 该端点与/configprops不同它用来获取应用所有可用的环境属性报告。 包括
环境变量、NM属性、应用的配置属性、命令行中的参数。
/mappings: 该端点用来返回所有Spring MVC的控制器映射关系报告。
/info: 该端点用来返回一些应用自定义的信息
info.app.name=spring-boot-hello
info.app.version=vl.0.0
 
度量指标类:
/metrics: 该端点用来返回当前应用的各类重要度量指标,比如内存信息、线程信息、
垃圾回收信息等
/health: 该端点它用来获取应用的各类 健康指标信息。
/dump: 该端点用来暴露程序运行中的线程信息。
/trace: 该端点用来返回基本的 HTTP 跟踪信息。
 
操作控制类:
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值