欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Spring | Spring、Spring MVC 和 Spring Boot 的区别

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

2025/4/4 22:41:31 来源:https://blog.csdn.net/Andya_net/article/details/146970472  浏览:    关键词:Spring | Spring、Spring MVC 和 Spring Boot 的区别

关注: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 {@Overridepublic 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 应用的开发过程。开发者可以根据实际需求选择合适的框架或组合来构建应用程序。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词