一、spring boot学习之 简单入门

本文介绍了Spring Boot的快速入门,包括通过Spring Initializr创建项目、应用的目录结构。接着讲解了全局配置文件application.properties和yml的使用,以及日志配置。文章还涉及了多环境配置的实现,如何根据不同的profile激活相应的配置。此外,文章讨论了Spring Boot的全局异常处理,并详细阐述了如何利用actuator进行健康检查,以及如何集成spring-boot-admin进行更全面的监控。
摘要由CSDN通过智能技术生成

一、快速入门

可以进入https://start.spring.io/  快速创建一个spring boot的入门程序,其中该maven工程目录结构如下:

tip:其中Application类是启动类,启动类目录层次要高于controller、service等其他类

二、全局配置文件 application.properties    以下是简单的三种配置

#自定义端口号  
server.port=80  

# 自定义属性       使用时需要用@value("${msg}")
msg=Hello,SpringBoot


#在配置文件中引用自定义属性     tip:如果直接没有空则连在一起,有空无论空有多大都只空一格
reference=hello  ${msg}

#定义一个随机值变量    以下是随机生成一个1024到9999之间的整数  可用来生成随机端口   server.port=${random.int[1024,9999]}
number=${random.int[1024,9999]}

三、yml配置文件(yaml语言)  树状结构

server:
  port: 8090

number: ${random.int[1024,9999]}
  
  
  
#树形结构  分层次结构,便于查阅   第二层结构要比第一层缩进两格     :冒号后需要有一行空格

yml和properties文件同时存在的时候,会优先使用properties文件

四、分析日志的配置、

直接将logback.xml  放置在src/main/resources下

具体logback.xml内容如下

<?xml version="1.0" encoding="UTF-8"?>
  <configuration debug="false" scan="true" scanPeriod="30 minutes">

      <!-- ==================================================================================== -->
     <property name="logDir" value="logs/" />
      <!-- 打印到控制台 -->
      <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
              <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level-%logger{5} - %msg%n</pattern>
         </encoder>
     </appender>

     <!-- ==================================================================================== -->
     <appender name="infolog" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>INFO</level>
             <onMatch>ACCEPT</onMatch>
             <onMismatch>DENY</onMismatch>
         </filter>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${logDir}/info/log.%d{yyyy-MM-dd.HH}.%i.log.gz
             </fileNamePattern>
             <!-- 限制文件最大保存时间为15天; 15*24=360 -->
             <maxHistory>360</maxHistory>
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <!-- 当文件大小超过60M时触发滚动,这里设置60M -->
                 <maxFileSize>60MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
         <encoder>
             <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level-%logger{5} - %msg%n</pattern>
         </encoder>
     </appender>

     <appender name="debuglog" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
             <onMismatch>DENY</onMismatch>
         </filter>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${logDir}/debug/log.%d{yyyy-MM-dd.HH}.%i.log.gz
             </fileNamePattern>
             <!-- 限制文件最大保存时间为15天; 15*24=360 -->
             <maxHistory>360</maxHistory>
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <!-- 当文件大小超过60M时触发滚动,这里设置60M -->
                 <maxFileSize>60MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
         <encoder>
             <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level-%logger{5} - %msg%n</pattern>
         </encoder>
     </appender>

     <appender name="errorlog" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
             <level>WARN</level>
         </filter>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${logDir}/error/log.%d{yyyy-MM-dd.HH}.%i.log.gz
             </fileNamePattern>
             <!-- 限制文件最大保存时间为15天; 15*24=360 -->
             <maxHistory>360</maxHistory>
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <!-- 当文件大小超过60M时触发滚动,这里设置60M -->
                 <maxFileSize>60MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
         <encoder>
             <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level-%logger{5} - %msg%n</pattern>
         </encoder>
     </appender>


     <!-- 异步日志配置 -->
     <appender name="infolog_async" class="ch.qos.logback.classic.AsyncAppender">
         <discardingThreshold>5000</discardingThreshold>
         <queueSize>50000</queueSize>
         <appender-ref ref="infolog" />
     </appender>

     <appender name="errorlog_async" class="ch.qos.logback.classic.AsyncAppender">
         <discardingThreshold>5000</discardingThreshold>
         <queueSize>50000</queueSize>
         <appender-ref ref="errorlog" />
     </appender>

      <!-- 设置级别  建议不设置为debug,日志信息过多 -->
     <root level="info">
         <appender-ref ref="stdout" />
         <appender-ref ref="debuglog" />
         <appender-ref ref="infolog_async" />
         <appender-ref ref="errorlog_async" />
     </root>


 </configuration>

五、多环境的配置

将全局配置文件按以下格式定义

application-profile.properties     其中profile为参数  具体指的是某个环境,可定义

具体的运行方式:

将工程install 后生成jar包

在cmd窗口使用 java -jar 带后缀名的jar包名称 --spring.profiles.active=profile    运行

六:全局异常处理

 

七:监控spring boot的健康

1.使用actuator 

首先加入actuator的依赖

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

启动项目,可以在console中看到以下信息

可以在浏览器输入以上路径查看 (譬如说  ip:端口号/health)

2.使用spring-boot-admin

快速入门页面http://codecentric.github.io/spring-boot-admin/2.1.2/#getting-started

根据页面描述加入依赖、加入注解、更改配置文件即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值