Skip to content

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"; // 视图名称
    }
}