尚学堂_SpringBoot

25 篇文章 0 订阅

一、 Spring Boot 回顾

1 什么是 Spring Boot?

Spring Boot 是在 Spring 的基础之上产生的(确切的说是在 Spring4.0 的版本的基础之上),其中“Boot” 的意思就是“引导” , 意在简化开发模式, 是开发者能够快速的开发出基于Spring 的应用。 Spring Boot 含有一个内嵌的 web 容器。 我们开发的 web 应用不需要作为 war包部署到 web 容器中, 而是作为一个 jar 包, 在启动时根据 web 服务器的配置进行加载。

2 在没有使用 Spring Boot 开发时项目时什么样的?

2.1在项目中存在大量的 xml 文件, 配置相当繁琐
2.2整合第三方框架时的配置问题
2.3低效的开发效率与部署效率问题

3 Spring Boot 解决了什么?

3.1Spring Boot 使配置简单
3.2Spring Boot 使编码加单
3.3Spring Boot 使部署简单
3.4Spring Boot 使监控简单

二、 Spring Boot 快速构建项目

1 打开 Spring Boot 的官网

https://projects.spring.io/spring-boot/
https://start.spring.io/ 构建 Spring Boot 的页面
在这里插入图片描述

2 使用 Spring Boot 官网构建项目

2.1会自动的帮助我们生成启动类
2.2会自动生成存放静态资源的目录, 还会生成全局配置文件
2.3会自动生成测试代码, 当然只是的一个结构。
2.4Spring Boot 官方推荐的 jdk 版本为 1.8 或者更高

3 构建项目目录结构

在这里插入图片描述

三、 Spring Boot 全局配置文件讲解

1 修改内嵌容器的端口号

server.port=8888

2 自定义属性配置

msg=Hello World
@Value("${msg}")
private String msg;

3 配置变量引用

hello=bjsxt
msg=Hello World ${hello}
@Value("${msg}")
private String msg;

4 随机值配置

4.1配置随机值

num=${random.int}
msg=Hello World ${num}
@Value("${msg}")
private String msg;

用处: 配置随机值, 在程序中如果有一些运算需要一个随机值, 那么可以使用该方式来生成。 注意, 只生成一次

4.2配置随机端口

server.port=${random.int[1024,9999]}

用处: 在 SpringCloud 的微服务中, 我们是不需要记录 IP 与端口号的。 那么我们也就不需要去维护服务的端口号。 让他随机生成就可以了。

四、 yml 配置文件

是 Spring Boot 中新增的一种配置文件格式。 特点: 具备天然的树状结构

1 yml 配置文件与 properties 文件的区别

1.1配置文件的扩展名有变化
1.2配置文件中的语法有变化

2 yml 配置文件的语法

2.1在 properties 文件中是以“.” 进行分割, 在 yml 中使用“: ”进行分割
2.2yml 的数据格式和 json 的格式很像, 都是 K-V 结构的。 并且是通过“: ” 赋值
2.3在 yml 中缩进一定不能使用 TAB 件, 否则会报错。
2.4每个 K 的冒号后面一定要加一个空格

五、 logback 日志记录讲解

1 导入相关的 jar 包

2 添加 logback.xml 配置文件

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
    <property name="LOG_HOME" value="${catalina.base}/logs/" />  
    <!-- 控制台输出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日志文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日志文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     

    <!-- 日志输出级别 -->
    <root level="info">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 



<!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日志异步到数据库 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           连接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>

六、 Spring Boot 的配置文件 - 多环境配置

profile:代表的就是一个环境变量
语法结构: application-{profile}.properties

1 需求:

application-dev.properties 开发环境
application-test.properteis 测试环境
application-prod.properteis 生产环境

2 运行项目:

java -jar xxx.jar --spring.profiles.active={profile}

3 完成的命令:

java -jar springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=test|dev|prod

七、 Spring Boot 核心注解讲解

@SpringBootApplication: 代表是 SpringBoot 的启动类。
@SpringBootConfiguration: 通过 bean 对象来获取配置信息
@Configuration: 通过对 bean 对象的操作替代 spring 中 xml 文件
@EnableAutoConfiguration: 完成一些初始化环境的配置。
@ComponentScan: 来完成 spring 的组件扫描。 替代之前我们在 xml 文件中配置组件扫描的配置<context:component-scan pacage=”…”>
@RestController:1,表示一个 Controller。 2, 表示当前这个 Controller 下的所有的方法都会以json 格式的数据响应。

八、 回顾 SpringBoot 异常处理:

@ControllerAdvice+@ExceptionHandler 注解处理异常

@ControllerAdvice
public class MyControllerAdvice {
@ResponseBody
@ExceptionHandler(value=java.lang.Exception.class)
	public Map<String, Object> myException(Exception ex) {
		Map<String, Object> map = new HashMap<>();
		map.put("code", 500);
		map.put("msg", "出错了。 ");
		return map;
	}
	@ResponseBody
	@ExceptionHandler(value=java.lang.NullPointerException.class)
	public Map<String, Object> myException2(Exception ex) {
		Map<String, Object> map = new HashMap<>();
		map.put("code", -500);
		map.put("msg", "空指针异常");
		return map;
	}
	@ResponseBody
	@ExceptionHandler(value=com.bjsxt.springboothelloworld.exception.ApplicationException.class)
	public Map<String, Object> myException3(Exception ex) {
		Map<String, Object> map = new HashMap<>();
		map.put("code", -800);
		map.put("msg", ex.getMessage());
		return map;
	}
}

九、 如何监控 Spring Boot 的健康状况

1 使用 Actuator 检查与监控的步骤

1.1在 pom 文件中添加 Actuator 的坐标
1.2在全局配置文件中设置关闭安全限制
在这里插入图片描述
在这里插入图片描述

2 使用可视化的监控报表-Spring Boot Admin

2.1使用 Spring Boot Admin 的步骤
2.1.1搭建服务端
服务端其实也是一个 SpringBoot 项目
2.1.1.1 创建项目
在这里插入图片描述
2.1.1.2 访问 Spring Boot Admin 的首页
https://github.com/codecentric/spring-boot-admin
修改 pom 文件添加 Spring Boot Admin 坐标

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-server</artifactId>
	<version>1.5.7</version>
</dependency>

2.1.1.3 修改启动类, 添加@EnableAdminServer

@SpringBootApplication
@EnableAdminServer
public class SpringbootServerApplication {
	public static void main(String[] args) {
		SpringApplication.run(SpringbootServerApplication.class,args);
	}

}

2.1.2搭建客户端
其实客户端就是我们需要监控的工程。

2.1.2.1 修改客户端的 pom 文件添加依赖

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-client</artifactId>
	<version>1.5.7</version>
</dependency>

2.1.2.2 修改客户端的 application.properteis 配置文件

management.security.enabled=false
#http://localhost:9090 表示是 Spring Boot Admin 服务单的 IP 地址以及端口号
spring.boot.admin.url: http://localhost:9090

2.2监控信息讲解
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值