Lombok注解(三)

本文介绍了Lombok的四个注解:@log用于自动生成Logger对象,@Builder实现建造者模式,@SneakyThrows捕获并抛出异常,@Synchronized提供同步锁功能。详细阐述了每个注解的作用、适用范围和相关属性。
摘要由CSDN通过智能技术生成

关注我,持续给您带来简单,实用的Java编程技巧。

本片包含以下注解:@log、@Builder、@SneakyThrows、@Synchronized

@log

作用范围:类
作用:自动生成I一个以当前类名命名的Logger对象
属性:
topic,Logger的名字,默认是当前类名
同类注解还有:@CommonsLog,@JBossLog,@Log4j,@Log4j2,@Slf4j,@XSlf4j

@CommonsLog
private static final org.apache.commons.logging.Log log =
        org.apache.commons.logging.LogFactory.getLog(LogExample.class);
 
@JBossLog
private static final org.jboss.logging.Logger log =
        org.jboss.logging.Logger.getLogger(LogExample.class);
 
@Log
private static final java.util.logging.Logger log =
        java.util.logging.Logger.getLogger(LogExample.class.getName());
 
@Log4j
private static final org.apache.log4j.Logger log =
        org.apache.log4j.Logger.getLogger(LogExample.class);
 
@Log4j2
private static final org.apache.logging.log4j.Logger log =
        org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
 
@Slf4j
private static final org.slf4j.Logger log =
        org.slf4j.LoggerFactory.getLogger(LogExample.class);
 
@XSlf4j
private static final org.slf4j.ext.XLogger log =
        org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

完整示例代码

package com.bbzd.mws.aop;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * @author Wangjzh
 * @date 2022/10/12 - 10:12
 */
@Component
@Aspect
@Slf4j
public class RequestParameterAOP {

    @Pointcut("execution (* com.bbzd.mws.service.*Service.*(..))")
    public void methodArgs(){}

    @Around("methodArgs()")
    public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable{
        Object result;
        result=joinPoint.proceed();

        //因为有@Slf4j,下面语句中的log可以不用声明,直接使用
        log.info("切入方法已执行1");

        return result;
    }
}

@Builder

作用范围:类
作用:为类生成建造者模式代码
配套注解:
@AllArgsConstructor,必须要有,没有报错
@Singular,对集合类属性可以单个赋值,默认属性名要以“s”结尾,也可以指定赋值方法名@Singular(“赋值方法名”)

package com.hyyj.practice.lombok;

import com.sun.istack.internal.NotNull;
import lombok.*;

import java.util.Set;

/**
 * Lombok测试用Bean
 * @author Wangjzh
 * @date 2022/10/25 - 15:52
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User {

    private String name;

    private Integer age;
    @Singular
    private Set<String> skills;

}
package com.hyyj.practice.lombok;

/**
 * @author Wangjzh
 * @date 2022/10/26 - 22:41
 */
public class ConstructorTest {

    public static void main(String[] args) {

        User u=User.builder()
                .name("崔哥")
                .age(18)
                .skill("吃")
                .skill("喝")
                .skill("玩")
                .skill("乐")
                .build();

        System.out.println(u);
    }
}

结果

User(name=崔哥, age=18, skills=[吃, 喝, 玩, 乐])

@SneakyThrows

作用范围:方法
作用:捕获方法中的异常并抛出
感觉没什么用,先不管了

@Synchronized

作用范围:类方法或实例方法
作用:好像是上锁用的,锁没怎么接触过,不研究了

结束语

  1. 至此,Lombok的系列文章就告以段落了,感谢看到最后的朋友,更感谢关注,点赞,评论,转发的小伙伴。
  2. 碍于经验所限,写得不是很全面和详细,文章中总结出来的都是我个人学习过程中感觉简单,实用的点。后面要是发现其它好用,实用的东西,会再开新的文章记录和分享。关注我,帮您及时收到后续的更新和我其它的文章。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁达尔之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值