事务钩子函数

public class TransactionalSupport implements TransactionSynchronization {

    private Supplier supplier;

    public TransactionalSupport(Supplier supplier) {
        this.supplier = supplier;
    }

    @Override
    public void afterCommit() {
        supplier.get();
    }
}

//业务逻辑事务提交之后再执行日志操作
TransactionalSupport transactionalSupport = new TransactionalSupport(()-> {
    try {
         contextBean.doCommonLogAfterBusiness(finalMap);
    } catch (Exception e) {
         logger.error("日志保存失败,异常信息:{},入参:{},结果:{}",   e.getMessage(),                                         param, result);
         e.printStackTrace();
   }
       return null;
  });
           TransactionSynchronizationManager.registerSynchronization(transactionalSupport);

//mybatis 代码自动生成

https://www.cnblogs.com/lanomw/p/12426985.html

//java编译动态生成class文件

public class CompilerUtil {

    public static Class generateClass(String javaFilename, String packageName, String javaCode) throws Exception {

        JavaStringCompiler compiler = new JavaStringCompiler();

        String prefix = String.format("package %s;", packageName);

        Map<String, byte[]> map = compiler.compile(javaFilename + ".java", prefix + "\n" + javaCode);

        return compiler.loadClass(packageName + "." + javaFilename, map);
    }

    public static void main(String[] args) throws Exception {
        String teacherCode = "public class Teacher extends Person {\n" +
                "\n" +
                "    @Override\n" +
                "    public void sayHello() {\n" +
                "        System.out.println(\"My name is \" + getName() + \", I am a teacher\");\n" +
                "    }\n" +
                "}\n";

        Class teacherClass = generateClass("Teacher", "com.example.demo.classg", teacherCode);
        Person person = (Person) teacherClass.newInstance();
        person.setName("Tom");
        person.sayHello();
    }
}

实战:一键生成前后端代码,Mybatis-Plus代码生成器让我舒服了_公众号:方志朋的博客-CSDN博客GitHub - pengziliu/GitHub-code-practice: GitHub代码实战系列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值