1.问题 执行 entityManager.flush(); 总是报错:javax.persistence.TransactionRequiredException: no transaction is in progress 字面解释是:"没有启动事务".可是事务是在配置中交给了spring管理了,在方法上加注解 @Transactional就申明了事务的,为何说没有启动事务呢.而且配置中也启动事务注解的扫描了. <tx:annotation-driven transacti
在我们使用spring框架的过程中,在很多时候我们会使用@async注解来异步执行某一些方法,提高系统的执行效率.今天我们来探讨下 spring 是如何完成这个功能的. spring 在扫描bean的时候会扫描方法上是否包含@async的注解,如果包含的,spring会为这个bean动态的生成一个子类,我们称之为代理类(?), 代理类是继承我们所写的bean的,然后把代理类注入进来,那此时,在执行此方法的时候,会到代理类中,代理类判断了此方法需要异步执行,就不会调用父类 (我们原本写的be