当前位置: 首页 > wzjs >正文

江门网站自助建站公司网络推广网站

江门网站自助建站,公司网络推广网站,机械毕业论文代做网站,wordpress 很慢第一章:AOP 核心概念与基础应用 1.1 AOP 核心思想 ​面向切面编程:通过横向抽取机制解决代码重复问题(如日志、事务、安全等)​核心优势:不修改源代码增强功能,提高代码复用性和可维护性 1.2 基础环境搭…

第一章:AOP 核心概念与基础应用

1.1 AOP 核心思想

  • 面向切面编程:通过横向抽取机制解决代码重复问题(如日志、事务、安全等)
  • 核心优势:不修改源代码增强功能,提高代码复用性和可维护性

1.2 基础环境搭建(Maven 依赖)

<dependencies><!-- Spring Core --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><!-- AOP 支持 --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.3</version></dependency><!-- 其他必要依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>
</dependencies>

1.3 事务管理案例实践

AccountServiceImpl 核心方法

public void saveAll(Account acc1, Account acc2) {// 原始业务逻辑accountDao.save(acc1);accountDao.save(acc2);
}

动态代理实现事务增强

public class JdkProxy {public static Object getProxy(AccountService target) {return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),(proxy, method, args) -> {try {TxUtils.startTransaction();Object result = method.invoke(target, args);TxUtils.commit();return result;} catch (Exception e) {TxUtils.rollback();throw e;} finally {TxUtils.close();}});}
}

第二章:AOP 核心术语与 XML 配置

2.1 七大核心概念

  1. Joinpoint(连接点)​:可被拦截的方法(Spring 仅支持方法级别)
  2. Pointcut(切入点)​:实际被增强的方法集合
  3. Advice(通知)​:增强逻辑的具体实现
  4. Target(目标对象)​:被代理的原始对象
  5. Weaving(织入)​:将增强应用到目标对象的过程
  6. Proxy(代理)​:增强后生成的新对象
  7. Aspect(切面)​:切入点 + 通知的组合体

2.2 XML 配置实战

Spring 配置模板

<aop:config><aop:aspect ref="txAspect"><aop:before method="beginTransaction"pointcut="execution(* com.example.service.*.*(..))"/></aop:aspect>
</aop:config>

切入点表达式详解

  • execution([修饰符] 返回类型 包名.类名.方法名(参数))
  • 常用通配符:
    • * 匹配任意内容
    • .. 匹配任意包路径或参数列表
    • 示例:execution(* com.example..*Service.*(..))

2.3 五种通知类型

通知类型XML 标签执行时机
前置通知<aop:before>方法执行前
后置通知<aop:after-returning>方法正常返回后
异常通知<aop:after-throwing>方法抛出异常时
最终通知<aop:after>方法最终结束
环绕通知<aop:around>方法执行前后均可控制

环绕通知示例

public Object around(ProceedingJoinPoint pjp) throws Throwable {try {System.out.println("前置增强");Object result = pjp.proceed();System.out.println("后置增强");return result;} catch (Exception e) {System.out.println("异常处理");throw e;}
}

第三章:注解驱动 AOP 开发

3.1 快速入门

切面类配置

@Aspect
@Component
public class LogAspect {@Before("execution(* com.example.service.*.*(..))")public void logBefore(JoinPoint jp) {System.out.println("方法执行前: " + jp.getSignature());}
}

启用 AOP 注解支持

<!-- XML 方式 -->
<aop:aspectj-autoproxy/><!-- 纯注解方式 -->
@Configuration
@EnableAspectJAutoProxy
@ComponentScan("com.example")
public class AppConfig {}

3.2 注解通知类型

注解等效 XML说明
@Before方法执行前
@AfterReturning方法正常返回后
@AfterThrowing方法抛出异常时
@After方法最终结束
@Around环绕通知

3.3 最佳实践建议

  1. 切面组织原则

    • 按功能模块划分切面(如日志切面、事务切面)
    • 使用@Pointcut统一管理切入点
    @Aspect
    public class SystemArchitecture {@Pointcut("within(com.example.web..*)")public void inWebLayer() {}
    }
  2. 性能优化技巧

    • 避免在切面中执行耗时操作
    • 使用条件表达式减少不必要的增强
  3. 常见问题排查

    • 确保 Aspect 类被 Spring 管理(添加@Component)
    • 检查切入点表达式是否匹配目标方法
    • 确认是否启用自动代理(@EnableAspectJAutoProxy)

第四章:AOP 应用场景与进阶

4.1 典型应用场景

  1. 声明式事务管理
  2. 统一日志记录
  3. 权限控制与安全检查
  4. 性能监控与统计
  5. 异常统一处理

4.2 高级特性

组合切入点表达式

@Pointcut("execution(* com.example.dao.*.*(..))")
public void dataAccessOperation() {}@Pointcut("execution(* com.example.service.*.*(..))")
public void businessService() {}@Before("dataAccessOperation() || businessService()")
public void combinedPointcut() {// 组合逻辑
}

自定义注解实现 AOP

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AuditLog {}@Aspect
@Component
public class AuditAspect {@Around("@annotation(AuditLog)")public Object audit(ProceedingJoinPoint pjp) throws Throwable {// 审计逻辑实现}
}

通过系统学习 Spring AOP 的核心概念、配置方式和实践技巧,开发者可以更高效地实现业务逻辑与非功能性需求的解耦,构建更健壮、可维护的企业级应用。

http://www.dtcms.com/wzjs/381624.html

相关文章:

  • 企业网站建设的主要目的是济南做网站推广哪家好
  • 科技有限公司网站济南做网站建设的公司
  • 做网站怎样申请域名学校seo推广培训班
  • 电子商务网站建设风格上海网站建设费用
  • 东莞学校网站建设百度一下你就知道官方网站
  • 网站建设的总体设计思想深圳关键词推广
  • 西安建设集团网站谷歌怎么投放广告
  • 陕西建设银行社会招聘网站百度开户推广多少钱
  • wordpress做淘客网站郑州网络推广
  • 水果b2b电商平台有哪些seo关键词大搜
  • wordpress 添加备案号海外aso优化
  • 设计在线观看免费2014seo的实现方式
  • 做淘宝要网站?百度网站优化
  • 做高端生活方式的网站网站排名seo
  • 猎头网站 做猎头的流程网站目录扫描
  • 大连做网站软件广州seo推广运营专员
  • 猎头自己在哪个网站做单活动推广软文范例
  • 廊坊网站建设电话软文范例100字以内
  • 织梦企业网站管理系统百度网盘app官方下载
  • 湄潭建设局官方网站百度关键字搜索排名
  • 长沙疫情高峰期杭州seo中心
  • 全面的手机网站建设邢台网站公司
  • 老区建设促进会网站什么是seo什么是sem
  • 内蒙古网上办事大厅官网抚州网站seo
  • 用ps做个人网站界面今日头条淄博新闻
  • 鲁中网淄博市疫情谷歌seo关键词排名优化
  • 槐荫区城乡建设委员会网站企业seo推广的绝密诀窍曝光
  • 如何做能放照片的网站外贸网站制作
  • 备案ip 查询网站查询系统优化网站seo方案
  • 国外做黄漫的网站有哪些qq刷赞网站推广快速