星海

Life's A Struggle!

众所周知国内的开发已经由原来的“致敬”到现在软件生态领域的“引领”(目前来说还未到真正引领)世界技术发展,但是一个问题始终还是未能有所突破,作为中国的开发者每次在面对新的技术在环境搭建就劝退了一众人,很多开发所依赖的项目资源都来自国外服务,而由于中国的特殊,对很多国外服务的限制,让你在开始的第一阶段总是碰的鼻青脸肿,把大量的时间浪费在环境搭建的等待上,虽然现在很多开源组织或者一线大厂提供了相应的镜像服务方便国内的开发者,但很多都还需要我们自行去更改或者解决这些问题,本篇文章就是我的开发之路上的各种网络问题的解决办法

阅读全文 »

正如我们看到的 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的长连接特性,都提供了比较好的支持

阅读全文 »
0%