深入理解Spring Boot中的IoC与AOP:原理、优势及实践
@Configuration
@EnableAspectJAutoProxy
public class AopConfig {
@Bean
public MyAspect myAspect() {
return new MyAspect();
}
}
// 切面类
@Aspect
public class MyAspect {
@Before("execution(* com.example.service.*.*(..))")
public void beforeMethod(JoinPoint joinPoint) {
System.out.println("Before method: " + joinPoint.getSignature().getName());
}
}
// 服务类
@Service
public class MyService {
public void someServiceMethod() {
System.out.println("Service method executed.");
}
}
// 应用启动类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
MyService myService = context.getBean(MyService.class);
myService.someServiceMethod();
context.close();
}
}
这个代码示例展示了如何在Spring Boot应用中配置AOP,并创建一个简单的切面来在服务方法执行前打印一条消息。这里的@EnableAspectJAutoProxy
注解启用了Spring对AspectJ的自动代理支持,MyAspect
类使用@Aspect
注解声明了一个切面,并通过@Before
注解指定了一个切点和一个建议方法,该方法将在匹配切点的方法执行前被调用。
评论已关闭