读《Spring Cloud微服务全栈技术与案例解析》的笔记一

前言

建立博客站点的初心,就是为了让自己的学习更加系统化,同时也能总结出经验,也让同行中的朋友少走些弯路,多积累一些知识,系统化的掌握相关的技能。

过去的时间,再去追悔,也是于事无补。

珍惜当下,从现在开始,我会多读书,多总结,不断扩展自己的知识,不管在广度上和深度上,都要花些时间去梳理。

Spring Boot 的优点

  1. 基于Spring开发web应用更加容易
  2. 采用基于注解方式的配置,避免大量重复的XML配置
  3. 轻松集成Spring家族的其他框架,比如Spring JDBC,Spring Data
  4. 提供嵌入式服务器,开发和部署都变得非常方便

搭建Spring Boot 项目参见链接 Springboot项目从零开始之基础搭建--保姆级教程!

为了更好的去理解书中提到的技术概念,专门新建了一个工程,用于通过实践,来检验书本知识的正确性。 由于今天时间有限,暂时没有通过细节去考证技术的可行性和正确性,姑且将以下代码看做是伪代码

遇到的问题

在搭建过程中,遇见了一个问题

pom.xml project 节点报错 Cannot reconnect 详细信息为Inspects a Maven model for resolution problems

可能是由于jdk版本过低导致的,将JDK版本配置为JDK8,问题就消失了。

SpringBoot 加载配置

1.读取Environment对象值

@RestController
public class TestController{
	
	@Autowired
	private Environment env;

	@GetMapping("/test")
	public String test(){
		String port = env.getProperty("server.port");
		System.out.println("port = "+port);
		return port;
	}
}

2.通过Value注解注入配置信息

@RestController
public class TestController{
	
	@Value("{server.port}")
	private String port;

	@GetMapping("/test")
	public String test(){ 
		System.out.println("port = "+port);
		return port;
	}
}

3.自定义配置类,通过prefix定义配置的层级,按层级获取配置信息

@ConfigurationProperties(prefix="com.yeegee.config")
@Component
public class YeegeeConfig{
	
	private String name;

	public String getName(){
		return name;
	}

	public void setName(String name){
		this.name=name;
	}
}

读取配置代码如下

@RestController
public class TestController{
	
	@Autowired
	private YeegeeConfig yeegeeConfig;

	@GetMapping("/test")
	public String test(){ 
		System.out.println("name = "+yeegeeConfig.getName());
		return yeegeeConfig.getName();
	}
}

多环境配置

profiles 多环境配置(通常为 dev,test,prod)

1.通过修改配置文件中的spring.profiles.active来确定运行环境 spring.profiles.active=dev

spring: 
	profiles: 
		active: dev

2.增加启动jar命令参数指定运行环境

java -jar demo.jar --spring.profiles.active=dev

actuator 监控

添加一个jar包依赖

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

启动时我们就可以看到可以访问的后端接口列表信息

关于《Spring Cloud微服务全栈技术与案例解析》 这本书,一共有300多页的内容,从单体应用的基础到微服务的各个组件,从负载均衡到分布式事务都有非常详细的讲解,如果您对此书感兴趣,可以加我微信(yeegee2024)免费领书