Spring | Spring、Spring MVC 和 Spring Boot 的区别

发布于:2025-04-04 ⋅ 阅读:(19) ⋅ 点赞:(0)

关注:CodingTechWork

引言

  在 Java 开发领域,SpringSpring MVCSpring Boot 是三个经常被提及的概念。它们之间既有联系又有区别,对于初学者来说可能会感到困惑。本文将详细介绍它们的区别,并通过示例代码帮助读者更好地理解。

Spring 框架

什么是 Spring 框架

  Spring 框架是一个开源的 Java 平台,为开发 Java 应用程序提供了全面的基础设施支持。它包含了许多模块,如依赖注入(DI)、面向切面编程(AOP)、数据访问(JDBC、ORM)、事务管理、Web 开发等。

Spring 框架的特点

  • 轻量级和松耦合:Spring 框架尽可能减少对其他框架和组件的依赖,同时通过依赖注入等机制降低组件之间的耦合度。
  • 模块化设计:Spring 框架由多个模块组成,开发者可以根据需要选择性地使用。

示例代码

以下是一个简单的 Spring 应用程序示例,展示如何通过 XML 配置文件管理 Bean。

xml文件

<!-- Spring XML 配置文件 -->
<beans>
    <bean id="userService" class="com.example.UserService">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
    </bean>
</beans>

业务类

public class UserService {
    private DataSource dataSource;

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    public void performService() {
        System.out.println("Service performed with data source: " + dataSource);
    }
}

主类

public class MainApp {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = (UserService) context.getBean("userService");
        userService.performService();
    }
}

Spring MVC

什么是 Spring MVC

  Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它是一个表现层框架,用于处理 HTTP 请求和响应。

Spring MVC 的特点

  • 灵活性高:Spring MVC 分离了控制器、模型对象、调度器以及处理程序对象等角色,使得开发更加灵活。
  • 与视图技术无关:Spring MVC 不限制开发者使用的视图技术,可以与 JSP、Thymeleaf 等多种视图技术配合使用。

示例代码

以下是一个简单的 Spring MVC 示例,展示如何处理 HTTP 请求。

controller类

@Controller
public class HelloWorldController {
    @RequestMapping("/hello")
    public String showHello(Model model) {
        model.addAttribute("message", "Hello, Spring MVC!");
        return "hello";
    }
}

jsp


<!-- hello.jsp -->
<html>
<body>
    <h2>${message}</h2>
</body>
</html>

mvc配置类

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        registry.viewResolver(resolver);
    }
}

主类

public class MainApp {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(WebConfig.class);
        // 启动 Spring MVC 容器
    }
}

Spring Boot

什么是 Spring Boot

  Spring Boot 是基于 Spring 框架的扩展,旨在简化 Spring 应用的初始搭建和开发过程。它通过“约定优于配置”的理念,减少了大量的配置工作。

Spring Boot 的特点

  • 快速开发:Spring Boot 提供了大量默认配置,减少了项目配置的工作量。
  • 独立运行:Spring Boot 应用程序可以被打包成可执行的 JAR 文件,内置嵌入式服务器,无需外部部署环境。
  • 生产就绪:Spring Boot 提供了多种生产就绪的功能,如健康检查、指标监控等。

示例代码

以下是一个简单的 Spring Boot 示例,展示如何快速搭建一个 Web 应用程序。

主类

@SpringBootApplication
public class SpringBootDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}

controller

@RestController
public class HelloWorldController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

配置文件

# application.properties
server.port=8080

Spring、Spring MVC 和 Spring Boot 的区别

Spring 框架

  • 定位:通用的 Java 应用程序开发框架,提供依赖注入、事务管理等基础功能。
  • 配置方式:主要通过 XML 文件或 Java 配置类。
  • 适用场景:适用于各种类型的 Java 应用程序,包括非 Web 应用。

Spring MVC

  • 定位:Spring 框架的一个模块,专门用于 Web 应用程序的开发。
  • 配置方式:需要配置 DispatcherServlet 和视图解析器等。
  • 适用场景:主要用于处理 HTTP 请求和响应,构建 Web 应用。

Spring Boot

  • 定位:基于 Spring 框架的扩展,简化了 Spring 应用的开发。
  • 配置方式:通过 application.properties 或 application.yml 文件进行配置,大量使用默认配置。
  • 适用场景:适用于快速开发独立的、生产级别的 Spring 应用。

总结

  Spring 框架是一个通用的 Java 开发框架,提供了依赖注入、事务管理等功能;Spring MVC 是 Spring 框架的一个模块,专注于 Web 应用程序的开发;Spring Boot 是 Spring 框架的扩展,通过“约定优于配置”的理念简化了 Spring 应用的开发过程。开发者可以根据实际需求选择合适的框架或组合来构建应用程序。


网站公告

今日签到

点亮在社区的每一天
去签到