springboot简单说明

  1. 什么是Spring Boot?

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

 

  1. 在没有使用Spring Boot开发时项目时什么样的?
    1. 在项目中存在大量的xml文件,配置相当繁琐
    2. 整合第三方框架时的配置问题
    3. 低效的开发效率与部署效率问题

 

  1. Spring Boot解决了什么?
    1. Spring Boot使配置简单
    2. Spring Boot使编码加单
    3. Spring Boot使部署简单
    4.  Spring Boot使监控简单
  • Spring Boot快速构建项目
  1. 打开Spring Boot的官网

https://projects.spring.io/spring-boot/

https://start.spring.io/ 构建Spring Boot的页面

 

  1. 使用Spring Boot官网构建项目
    1. 会自动的帮助我们生成启动类
    2. 会自动生成存放静态资源的目录,还会生成全局配置文件
    3. 会自动生成测试代码,当然只是的一个结构。
    4. Spring Boot官方推荐的jdk版本为1.8或者更高
  2. 构建项目目录结构
  • Spring Boot全局配置文件讲解
  1. 修改内嵌容器的端口号

server.port=8888

 

  1. 自定义属性配置

msg=Hello World

@Value("${msg}")

private String msg;

 

  1. 配置变量引用

hello=bjsxt

msg=Hello World ${hello}

@Value("${msg}")

private String msg;

 

  1. 随机值配置
    1. 配置随机值

num=${random.int}

msg=Hello World ${num}

@Value("${msg}")

private String msg;

 

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

 

    1. 配置随机端口

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

 

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

  • yml配置文件

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

  1. yml配置文件与properties文件的区别
    1. 配置文件的扩展名有变化
    2. 配置文件中的语法有变化
  2. yml配置文件的语法
    1. 在properties文件中是以“.”进行分割,在yml中使用“:”进行分割
    2. yml的数据格式和json的格式很像,都是K-V结构的。并且是通过“:”赋值
    3. 在yml中缩进一定不能使用TAB件,否则会报错
    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 生产环境

 

  1. 运行项目:

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

 

 

  1. 完成的命令:

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. 在pom文件中添加Actuator的坐标
    2. 在全局配置文件中设置关闭安全限制

 

ID

描述

是否需要鉴权

actuator

为其他端点提供“发现页面”。要求Spring HATEOAS在classpath路径上。

需要

auditevents

陈列当前应用程序的审计事件信息。

需要

autoconfig

展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。

需要

beans

显示应用程序中所有Spring bean的完整列表。

需要

configprops

显示所有配置信息。

需要

dump

dump所有线程。

需要

env

陈列所有的环境变量。

需要

flyway

Shows any Flyway database migrations that have been applied.

需要

health

显示应用程序运行状况信息

不需要

info

显示应用信息。

不需要

loggers

显示和修改应用程序中的loggers配置。

需要

liquibase

显示已经应用的任何Liquibase数据库迁移。

需要

metrics

显示当前应用程序的“指标”信息。

需要

mappings

显示所有@RequestMapping的url整理列表。

需要

shutdown

关闭应用(默认情况下不启用)。

需要

trace

显示跟踪信息(默认最后100个HTTP请求)。

需要

 

  1. 使用可视化的监控报表-Spring Boot Admin
    1. 使用Spring Boot Admin的步骤
      1. 搭建服务端

服务端其实也是一个SpringBoot项目

        1. 创建项目

 

        1. 访问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>

 

        1. 修改启动类,添加@EnableAdminServer

@SpringBootApplication

@EnableAdminServer

public class SpringbootServerApplication {

 

public static void main(String[] args) {

SpringApplication.run(SpringbootServerApplication.class, args);

}

}

      1. 搭建客户端

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

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

<dependency>

<groupId>de.codecentric</groupId>

<artifactId>spring-boot-admin-starter-client</artifactId>

<version>1.5.7</version>

</dependency>

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

management.security.enabled=false

#http://localhost:9090 表示是Spring Boot Admin 服务单的IP地址以及端口号

spring.boot.admin.url: http://localhost:9090

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值