Spring
核心功能
Spring IOC、AOP、Spring MVC。
一、IOC(Inversion of Control,控制反转)
在传统的程序设计中,通常由程序本身来控制对象的创建和管理,而在 Spring 中,控制权发生了颠倒,对象的创建和管理交给了 Spring 容器。这种控制反转的思想使得程序更加灵活,降低了组件之间的耦合度。
java
// 一、IOC(Inversion of Control,控制反转)
public class MyService {
private MyRepository repository;
// 使用构造器注入
public MyService(MyRepository repository) {
this.repository = repository;
}
// 使用setter方法注入
public void setRepository(MyRepository repository) {
this.repository = repository;
}
}
二、AOP(Aspect-Oriented Programming,面向切面编程)
AOP
是一种编程范式,用于解耦业务逻辑和横切关注点(如日志、事务、安全等),通过将这些横切关注点模块化,并在需要的时候将其动态地切入到业务逻辑中,从而提高了代码的可维护性和可重用性。
java
// 二、AOP(Aspect-Oriented Programming,面向切面编程)
@Aspect
@Component
public class LoggingAspect {
@Before("execution(public * com.example.MyService.*(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("Before executing " + joinPoint.getSignature());
}
}
三、Spring MVC(Model-View-Controller,模型-视图-控制器)
Spring MVC
是基于 MVC 设计模式的 Web 应用程序开发框架,它将应用程序分为模型、视图和控制器三个部分,通过 DispatcherServlet
统一管理请求和响应,实现了请求的分发和处理,视图的渲染以及结果的返回。
java
// 三、Spring MVC(Model-View-Controller,模型-视图-控制器)
@Controller
public class MyController {
@Autowired
private MyService service;
@RequestMapping("/hello")
public String hello(Model model) {
String message = service.getMessage();
model.addAttribute("message", message);
return "hello"; // 视图名称
}
}