BladeCode

Life's a struggle!

0%

正如我们看到的 SpringBoot 应用启动入口类,main() 方法中一行简单 SpringApplication.run(MyApplication.class, args); 就可以将 SpringBoot 应用给启动了。那么它肯定是在SpringApplication中做了大量的工作,才能将应用启动,因此本篇文章我们来一起看看这个核心的类

SpringApplication 类可以从 Java 的 main 方法中引导和启动 Spring 的应用,默认情况下它会按照如下的启动步骤

  1. 创建一个恰当的 ApplicationContext 实例(取决于你的 classpath 路径)
  2. 注册一个 CommandLinePropertySource 将命令行参数作为 Spring 的属性(换句话说,可以通过命令行来传递当前应用所需要的一些属性)
  3. 刷新应用的 Context(内容上下文),并加载所有单例的 beans
  4. 触发每个 CommandLineRunner beans
阅读全文 »

SpringBoot 与 SpringCloud 微服务技术栈体系本质就是围绕注解来展开,这些注解在微服务框架中扮演非常重要的角色,每个注解都有他的应用场景,通过一些注解的组合让 SpringBoot 与 SpringCloud 开发变的简单和高效,本篇文章我们就来汇总 SpringBoot 相关的注解

本篇文章基于如下版本

  • Spring:5.1.8 RELEASE
  • SpringBoot:2.1.6 RELEASE
阅读全文 »

日志是我们项目开发过程中必不可少的一个方面, 当我们项目引入了 spring-boot-starter-web 这个 jar 包,会自动引入相关的一些日志相关的 jar 包,比如,其实在项目中可供我们选择的 jar 包有很多,比如 log4jlog4j2logback(现在使用最多),slfj等,在具体使用时并不会直接去使用log4jlog4j2而是使用slfj作为门面,具体的实现是通过可插拔的方式提供。logback实际是在log4j之后作者重新写的一个日志框架。本篇文章主要讲logback在项目中的应用

阅读全文 »

在 SpringBoot 项目中,常用的包管理分别为 maven 和 gradle,在不同包管理下我们如何实现多环境的项目配置,这是实际项目开发过程汇总必备的一项技能,可以大大提高我们开发部署效率,同时也避免了人为的频繁改动配置造成的问题等,有些人可能会问了,maven 不是用的好好的嘛,干嘛还要用 gradle,首先我们可以看现在主流开源项目在提供引入方式时都是有提供了 gradle 依赖方式,以及 gradle 支持编写脚本,在很大程度上让管理更加便捷和人性化

阅读全文 »

The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

Apache Thrift软件框架,用于可扩展的跨语言服务开发,它包含软件栈和一个代码生成器用于构建服务,这个服务可以高效并且无缝的在 C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Node.js,Smalltalk,OCaml 和 Delphi 等其他语言间协作

阅读全文 »

Netty 框架中已经默认支持了 Protobuf 格式的数据传输,因此我们本节就来学习 Protobuf,Protobuf 主要用于进行 RPC 数据传输(它是一种自定义协议,这种协议能更好,更小体积,对数据编解码【序列号和反序列化的过程】),在学习 Protobuf 之前我们先了解两个概念 RMI 和 RPC

阅读全文 »

Netty 是国内外各大互联网公司的必备网络应用框架,Netty 主要处理与网络相关的一些应用。由于 Netty 设计的巧妙的实现方式,以及对协议很好的实现,使的 Netty 可以在各种应用场景下广泛的应用,无论是传统基于HTTP协议的访问方式,还是更底层基于socket的访问方式,以及支持HTML5规范中的websocket的长连接特性,都提供了比较好的支持

阅读全文 »

服务端由原来 混合式(Java+JSP)的方式演进成专注于提供服务 API(前后端分离)的方式,开发的明确分工,使的各自开发人员在各自领域的垂直技能的加强,以满足业务的快速迭代,因此也就在这两个方式中,项目的构建方式也有了一定的变化,混合模式中常编译为 war 包,而在前后端分离模式中常编译为 jar 包,这两种文件格式虽然都是一种压缩文件的格式,但实质还是有一些区别,那首先让我们来了解这两种文件它们之间的区别

阅读全文 »