Spring Boot中常见的设计模式包括依赖注入(Dependency Injection, DI)、控制反转(Inversion of Control, IoC)、面向切面编程(Aspect-Oriented Programming, AOP)、模板方法(Template Method)、策略模式(Strategy Pattern)、代理模式(Proxy Pattern)等。
以下是一些示例:
- 依赖注入:
Spring框架提供了自动依赖注入的功能,可以使用@Autowired
注解自动注入依赖的服务。
@Service
public class MyService {
@Autowired
private MyRepository myRepository;
// ...
}
- 控制反转和依赖注入是相辅相成的,通常被看作是同一个概念的不同角度。
- 面向切面编程:
使用@Aspect
注解定义切面,并使用@Before
、@After
等注解定义建议,以便进行方法拦截。
@Aspect
@Component
public class MyAspect {
@Before("execution(* com.example.service.*.*(..))")
public void beforeMethod(JoinPoint joinPoint) {
// ...
}
}
- 策略模式:
在Spring Boot中,可以通过定义服务接口和不同的实现来实现策略模式。
public interface MyService {
void execute();
}
@Service
public class MyServiceImpl implements MyService {
@Override
public void execute() {
// ...
}
}
- 代理模式:
Spring AOP自动为符合切点的bean创建代理对象。
@Aspect
@Component
public class MyAspect {
@Around("execution(* com.example.service.*.*(..))")
public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {
// 前置逻辑
Object result = joinPoint.proceed();
// 后置逻辑
return result;
}
}
以上只是一些简单的示例,Spring Boot中设计模式的应用远不止这些,还包括工厂模式、单例模式、观察者模式等。