- Use different types of advice - Use various types of pointcut expressions
- Use component scanning for loading bean definitions - Use Spring stereotypes to define poincuts