THINGSBOARD

ThingsBoard二次开发之源码分析1- 基础知识

预备知识JDK1.8注解ProtobufGuavaJDK1.8Lambda表达式方法引用方法引用的唯一用途是支持Lambda表达式的简写,调用方法的时候使用::,对于一些单个参数,可以自动推断;ConsumerConsumer的作用是给定义一个参数,对其进行(消费)处理,处理的方式可以是任意操作,无返回值;Predicate断言接口,根据传入的Lambda表达式返回boolean;Supplier

预备知识

  • JDK1.8

  • 注解

  • Protobuf

  • Guava

JDK1.8

  • Lambda表达式

  • 方法引用
    方法引用的唯一用途是支持Lambda表达式的简写,调用方法的时候使用::, 对于一些单个参数,可以自动推断;

  • Consumer
    Consumer的作用是给定义一个参数,对其进行(消费)处理,处理的方式可以是任意操作,无返回值;

  • Predicate
    断言接口,根据传入的Lambda表达式返回boolean;

  • Supplier
    根据提供的Lambda表达式返回需要的对象;

  • Function
    函数式编程接口,根据提供的Lambda表达式进行相应的操作并返回结果;

注解

@PostConstruct

@postConstruct 注解并非为spring提供, 该注解用来修饰非静态void()方法,该注解的执行时机为在对象加载完依赖注入后执行,即Constructor > @Autowired > @postConstruct;

@EventListener

由spring提供,spring为我们提供了事件的监听与实现,内部的实现原理是观察者设计模式,实现了系统解耦,时间发布者不需要考虑谁在监听,发布者只关心自己消息的发布;

ApplicationReadyEvent

应用已经就绪处理请求,将会发布该事件;(An ApplicationReadyEvent is sent after any application and command-line runners have been called. It indicates that the application is ready to service requests.)

@Conditional及包括其子注解

spring提供,对满足条件进行注入;

@Builder

lombok插件提供,目的是简化构造者模式的代码。Builder Pattern可轻松创建复杂对象;

Protobuf

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。相比JS

原创不易,完成人机校验,阅读全文

相关推荐