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代码生成器让我舒服了_公众号:方志朋的博客-优快云博客GitHub - pengziliu/GitHub-code-practice: GitHub代码实战系列
393

被折叠的 条评论
为什么被折叠?



