美文网首页
SpringBoot学习笔记

SpringBoot学习笔记

作者: 我叫土豆但他们喊我猫猫 | 来源:发表于2019-04-14 01:07 被阅读0次

    简介

    Spring Boot在入门容易,深入难。

    它实现了我们之前常用的Spring技术,并通过零配置或者说约定大于配置的方式将其集成在一起,方便开发者快速开发应用,这种封装的方式有好有坏,当然操作变简单这是最真实的体验。

    特性

    1. 快速构建独立Spring应用程序

    2. 嵌入式Tomcat,Jetty容器,无需部署WAR包

    3. 简化Maven及Gradle配置

    4. 尽可能的自动化配置Spring,无代码生成和xml配置

    5. 直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等

    6. 对主流开发框架和工具链做无配置集成

    优点

    1. 解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置);

    2. springboot 要解决的问题, 精简配置是一方面, 另外一方面是非常方便的让spring生态圈和其他工具链整合(比如redis, email, elecsearch)

    3. 依赖于Pivotal和Netflix, SpringBoot可扩展性高

    缺点

    1. 深入的参考文档较少,加上对Spring Boot的auto configuration loading等机制的封装, 让使用者感觉入门容易,但是如果没有完整学习spring的体系,碰到问题就会卡壳。以至于许多使用spring boot的开发者,会遇到各类奇葩问题,却没有参考方案,只能通过开源社区请教问题;

    2. 版本迭代速度较快, 一些模块改动很大。

    SpringBoot 与 SpringCloud 关系

    在SpringBoot和SpringCloud关系中,有着以下的依赖关系:

    1. Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务;

    2. Spring Cloud是一个基于Spring Boot实现的云应用开发工具;

    3. Spring boot专注于快速、方便集成的单个个体,

    4. Spring Cloud是关注全局的服务治理框架;

    spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,

    其中,Spring Cloud很大的一部分是基于Spring boot来实现。

    Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系。

    SpringBoot的属性

    在SpringBoot中,具有很多的属性可以使用,在这里简单介绍集中常用的属性,详细的可以参考的网址:http://blog.csdn.net/jsyxcjw/article/details/46763639/

    定制Banner

    修改图标

    我们在启动Spring Boot项目的时候,在控制台会默认输出一个默认启动图案,那么这个图案如果你需要的话是可以自己修改的,修改方式很简单:

    1. 在src/main/resources下新建一个banner.txt文档

      1555172338624
    2. 通过http://www.network-science.de/ascii/网站生成需要的字符,将字符拷贝到步骤1所创建的txt文档中,如这里为SpringBoot,复制内容到banner.txt文件中,在此启动项目,就会显示如下图样式:

      1555172382437

    关闭Banner

    可以修改当然也可以关闭,关闭Banner需要我们稍微修改一下main方法中的代码,如下

    SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
    //修改Banner的模式为OFF
    builder.bannerMode(Banner.Mode.OFF).run(args);
    

    此时,当我们再次启动Project的时候就看不到Banner了

    自定义SpringApplication

    如果使用默认的SpringApplication不符合条件,那么可以根据本地实例去自定义它,并且可以在其中做一些操作,比如:关闭banner。

    public static void main(String[] args){
        SpringApplication app = new SpringApplication(MySpringConfiguration.class);
        app.setShowBanner(false);
        app.run(args);
    }
    

    当然也可以创建一个分层的Application,SpringApplicationBuilder允许你以链式方式调用多个方法,包括可以创建层次结构的parent和child方法。

    Profiles

    Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

    日志

    对于日志输出,在开发过程中会使用到很多,常用的就是Log4J。

    简介

    Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

    Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。

    1555172870589
    • 日志打印出来的格式:

      时间日期 | 日志级别 | 进程ID | 分隔符 | 线程名 | Logger名称 | 日志内容

    • 具体解释:

      时间日期:精确到毫秒

      日志级别:ERROR, WARN, INFO, DEBUG or TRACE

      进程ID :进程唯一

      分隔符:--- 标识实际日志的开始

      线程名:方括号括起来(可能会截断控制台输出)

      Logger名:通常使用源代码的类名

      日志内容:日志输出

    简单使用

    1. 访问类

      在URL访问的类中,定义日志输出:

      1555172992027

      导入log4j的对应的jar包

      1555173033350

      然后在访问路径的方法中,打印日志内容,注意需要打印日志的级别:

      1555173065833

      注:demo中编写两个级别的日志输出,这样可以区别在配置文件中对于级别的限制作用。

    2. 在application.properties配置文件中,添加以下配置内容:

      在输入内容过程,可以根据提示,选择要用的日志属性:

      1555173147524

      然后,根据访问的类,定义其级别:

      1555173172134

      上面的配置方法,体现出可以灵活控制某一个访问类的日志级别。

      当日志级别为debug时,可以输出两条日志信息:

      1555173328589

      当日志级别修改为info类型时,就不能输出debug级别的日志信息:

      1555173361952

    相关文章

      网友评论

          本文标题:SpringBoot学习笔记

          本文链接:https://www.haomeiwen.com/subject/dhgdwqtx.html