SpringBootがまとめた事務とAOP
一、事務
Spring Bootでは、spring-boot-starter-jdbcまたはspring-boot-starter-data-jpa依存を使用すると、フレームワークがDataSourceTransactionManagerまたはJpaTransactionManagerに自動的にデフォルトでインポートされます.
したがって、@Transactional注釈を使用してトランザクションの使用を行うには、追加の構成は必要ありません.
Spring Bootはトランザクションを使用するのが簡単です.まず、注釈@E n a b l e TransactionManagementを使用してトランザクションサポートを開始した後、データベースにアクセスするServiceメソッドに注釈@Transactionalを追加すればいいです.クラスに@Transactionalを追加すると、クラス全体でトランザクションがサポートされます.
二、AOP
SpringBootは強力なAOPサポートを提供し、AOPカットは主にカット方法であり、私たちは一般的にログ分析とトランザクション操作を行い、カットに使用し、ブロックに似ています.
AOP主な注記
@Aspect注記は断面注記クラスです
@Pointcut接点定義
@Beforeはメソッド実行前呼び出しです
@Afterはメソッド実行後に呼び出されます
@AfterReturningメソッド戻り値呼び出しを実行
三、springboot注釈小結
@RestController:@Controller@ResponseBodyと同等に使用
@RequestMapping:注記はルーティング情報を提供します.
@Configuration:元のXMLと等価にbeansを構成する;@Beanで表記する方法は、XMLでbeanを構成するのと同じです.
@SpringBootApplication:@Configuration@EnableAutoConfiguration@ComponentScanと同等
転載先:https://www.cnblogs.com/jnba/p/10832837.html
Spring Bootでは、spring-boot-starter-jdbcまたはspring-boot-starter-data-jpa依存を使用すると、フレームワークがDataSourceTransactionManagerまたはJpaTransactionManagerに自動的にデフォルトでインポートされます.
したがって、@Transactional注釈を使用してトランザクションの使用を行うには、追加の構成は必要ありません.
Spring Bootはトランザクションを使用するのが簡単です.まず、注釈@E n a b l e TransactionManagementを使用してトランザクションサポートを開始した後、データベースにアクセスするServiceメソッドに注釈@Transactionalを追加すればいいです.クラスに@Transactionalを追加すると、クラス全体でトランザクションがサポートされます.
@Test
@Transactional
public void test() {
Rdb r1 = rdbDao.findById("2");
Rdb r2 = rdbDao.findById("3");
r2.setAge(r2.getAge()+2);
r1.setAge(r1.getAge()-2);
rdbDao.save(r1);
rdbDao.save(r2);
}
二、AOP
SpringBootは強力なAOPサポートを提供し、AOPカットは主にカット方法であり、私たちは一般的にログ分析とトランザクション操作を行い、カットに使用し、ブロックに似ています.
AOP主な注記
@Aspect注記は断面注記クラスです
@Pointcut接点定義
@Beforeはメソッド実行前呼び出しです
@Afterはメソッド実行後に呼び出されます
@AfterReturningメソッド戻り値呼び出しを実行
@Aspect
@Component
public class AspectTest {
@Pointcut("execution(public * top.ruandb.controller.*.*(..))")
public void doTest() {}
@Before("doTest()")
public void doBefore() {
System.out.println("do before");
ServletRequestAttributes sra=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request=sra.getRequest();
System.out.println("url:"+request.getRequestURI());
System.out.println("ip:"+request.getRemoteHost());
}
@After("doTest()")
public void doAfter() {
System.out.println("do after");
}
@AfterReturning("doTest()")
public void doAfterReturning() {
System.out.println("do AfterReturning");
}
}
三、springboot注釈小結
@RestController:@Controller@ResponseBodyと同等に使用
@RequestMapping:注記はルーティング情報を提供します.
@Configuration:元のXMLと等価にbeansを構成する;@Beanで表記する方法は、XMLでbeanを構成するのと同じです.
@SpringBootApplication:@Configuration@EnableAutoConfiguration@ComponentScanと同等
転載先:https://www.cnblogs.com/jnba/p/10832837.html