wirebox-aoplisted
Install: claude install-skill ColdBox/skills
# WireBox AOP — Aspect-Oriented Programming
## When to Use This Skill
Use this skill when:
- Adding cross-cutting concerns (logging, transactions, security, caching, tracing) to methods without modifying them
- Creating reusable method interceptors (aspects)
- Using the built-in `CFTransaction`, `HibernateTransaction`, or `MethodLogger` aspects
- Binding aspects to classes/methods via DSL or self-binding annotations
Applies to both **standalone WireBox** and **ColdBox** applications.
## Language Mode Reference
Examples use **BoxLang (`.bx`)** / CFML script syntax. Adapt for your target language:
| Concept | BoxLang (`.bx`) | CFML (`.cfc`) |
|---------|-----------------|---------------|
| Class declaration | `class [extends="..."] {` | `component [extends="..."] {` |
| DI annotation | `@inject` above `property name="svc";` | `property name="svc" inject="svc";` |
---
## AOP Vocabulary
| Term | Definition |
|------|------------|
| **Aspect** | A modularized cross-cutting concern (e.g., logging, transactions) |
| **Target Object** | The object whose methods will be intercepted |
| **Join Point** | A method execution point where an aspect is applied |
| **Advice** | The action taken at a join point (before, after, or around) |
| **AOP Proxy** | The runtime proxy wrapping the original method |
---
## AOP Namespaces
```
// ColdBox application
coldbox.system.aop
// Standalone WireBox
wirebox.system.aop
```
> WireBox AOP is implemented as a **WireBox listener** called t