• lombok


    Lombok

    Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.


    Table of contents

    Install

    在idea上使用

    Install Lombok

    注意:如果编译出现错误Error:java: Lombok annotation handler class lombok.javac.handlers.HandleData failed on...,检查你的版本,确保不是官网教程示例的版本0.9.2,替换成1.18.0,或者是RELEASE

    1. 新建一个person类设置一些属性,加入lombok的jar后,我们在person类上加入@Data注解,现在只需要了解它可以为类属性生成get,set方法,发现有提示而且并没有报错,也就是至少jar成功被依赖了,但是在单元测试中,发现new出person对象无法调用get,set等方法,因为lombok虽然会在编译时将你的注解转化为实际对应的代码执行,但是在写代码的时候,idea并不知道@Data可以带来什么,所以需要加入插件

    2. 需要安装idea的lombok插件(需要梯子)idea -> file ->setting -> plugin ->browser repos 输入lombok 选择lombok 然后 install
      安装完成后restart idea

    3. idea 重启后需要配置注解处理器
      同样我们在Settings设置页面,我们点击Build,Execution,Deployment-->选择Compiler-->选中Annotation Processors,然后在右侧勾选Enable annotation processing即可,完成后,需要再次重启idea,不要和上一步的重启合并成一步

    4. 这个时候发现@Data注解在菜单栏点击View-->Tool Windows-->Structure,便可以看到类中所有的方法了这些都是lombok帮我自动生成的。
      person类的方法实现了

    也可以调用了

    使用

    • @Slf4j的使用

      需要额外依赖


      org.apache.logging.log4j
      log4j-slf4j-impl
      2.11.0

      如果没有配置log4j2配置文件

      执行到log.error()的时候,会提示

      ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2

      大意就是需要配置文件,不然会启用默认的配置

      一般是要将日志输出到日志文件中的

      在resoures下新建文集log4j2.xml

      内容如下

      <?xml version="1.0" encoding="UTF-8"?>
      
      <Configuration status="WARN">
      
      <properties>
          <property name="LOG_HOME">log</property>
      </properties>
      <Appenders>
          <Console name="Console" target="SYSTEM_OUT">
              <PatternLayout pattern="%d{H:m:s.S} [%t] %-5level %logger{36} - %msg%n"/>
          </Console>
      
          <!--临时日志生成-->
          <!--<File name="log" fileName="log/test.log" append="true">
              <PatternLayout pattern="%d{H:m:s.S} [%t] %-5level %logger{36} - %msg%n"/>
          </File>-->
      
          <RollingRandomAccessFile name="log" fileName="${LOG_HOME}/test.log"
                                   filePattern="${LOG_HOME}/test-%d{yyyy-MM-dd}.log">
              <!--输出到文件夹中去-->
              <PatternLayout pattern="%d{y-M-d H:m:s.S} [%t] %-5level %logger{36} - %msg%n" />
              <!--<HTMLLayout pattern="%d{y-M-d H:m:s.S} [%t] %-5level %logger{36} - %msg%n" />-->
              <Policies>
                  <TimeBasedTriggeringPolicy interval="1" modulate="true" />
              </Policies>
              <DefaultRolloverStrategy max="20"/>
          </RollingRandomAccessFile>
      </Appenders>
      <Loggers>
          <Root level="info">
              <AppenderRef ref="log"/>
          </Root>
      </Loggers>
      </Configuration>
      
    • @Data的使用

    @Data的使用

    新建people类
    为了测试data官方文档中说明的
    get,toString,equal对于静态属性与非静态属性的区分
    set,constructor对于final非final的区分

    注解说明

    Data

    官方文档:
    Generates getters for all fields, a useful toString method, and hashCode and equals implementations that check all non-transient fields. Will also generate setters for all non-final fields, as well as a constructor.
    翻译过来就是加入@Data会为类的所有非静态属性生成get方法,以及对应非静态属性的toString()方法,也会为类的所有没有final修饰的属性生成set方法和对应的构造器G

  • 相关阅读:
    RESTful API 架构解读
    在阿里云 ECS 搭建 nginx https nodejs 环境(三、nodejs)
    在阿里云 ECS 搭建 nginx https nodejs 环境(二、https)
    linux 常见操作指令
    前端数据存储方案集合(cookie localStorage等)以及详解 (二)
    无法从其“Checked”属性的字符串表示形式“checked”创建“System.Boolean”类型
    VS2012使用验证控件出现[ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。的解决办法。
    使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档
    常用正则表达式总结
    sql 中有关时间的语句
  • 原文地址:https://www.cnblogs.com/selton/p/9228528.html
Copyright © 2020-2023  润新知