Spring自帶的@Component注解及擴展
@Component:定義Spring管理Bean
@AspectJ: 可以通過@Compenent注解標識其為Spring管理Bean。
@Aspect:不可被Spring自動識別并注冊為Bean,必須通過@Component注解來完成
@Component @Aspect public class TestAspect { @Pointcut(value="execution(* *(..))") private void pointcut() {} @Before(value="pointcut()") public void before() { System.out.println("before"); } }
通過@Component將切面定義為Spring管理Bean。
@Repository:
@Component擴展,被@Repository注解的POJO類表示DAO層實現(xiàn),從而見到該注解就想到DAO層實現(xiàn),使用方式和@Component相同;
@Service:
@Component擴展,被@Service注解的POJO類表示Service層實現(xiàn),從而見到該注解就想到Service層實現(xiàn),使用方式和@Component相同;
@Controller:
@Component擴展,被@Controller注解的類表示W(wǎng)eb層實現(xiàn),從而見到該注解就想到Web層實現(xiàn),使用方式和@Component相同;
在使用Spring代理時,默認只有在public修飾的方法的@Transactional 注解才是有效。
Spring聲明式事務(wù)實現(xiàn)其實就是Spring AOP+線程綁定實現(xiàn),利用AOP實現(xiàn)開啟和關(guān)閉事務(wù),利用線程綁定(ThreadLocal)實現(xiàn)跨越多個方法實現(xiàn)事務(wù)傳播。
想了解更多?現(xiàn)在就開始免費體驗