1. Spring 和 Spring MVC 的区别与关系
Spring
Spring 是一个开源的轻量级的 JavaEE 开发框架,主要解决企业级应用开发的复杂性。它提供了一个容器,可以管理应用中所有的组件和服务,帮助开发者解决组件之间的复杂依赖问题。
Spring 的特点:
- IoC(Inversion of Control) 控制反转
- AOP(Aspect Oriented programming) 面向切面编程
- 丰富的 API、不依赖其他框架、易于扩展、灵活性高
Spring MVC
Spring MVC 是基于 Spring 框架的一个 Web MVC 框架,它把请求映射到相应的控制器上,而控制器根据请求的信息获取模型数据,最后把模型数据展示给视图。
Spring MVC 的特点:
- 灵活性高,可以任意组合各种技术
- 易于扩展和迭代,使用起来相对简单
- 提供了强大的拦截器和解析器,方便进行数据绑定和验证
Spring 和 Spring MVC 的区别
- Spring 是一个框架,可以帮助我们管理应用程序中的一切组件和服务。Spring MVC 是基于 Spring 的 Web MVC 框架。
- Spring 的目标是解决企业级应用程序的复杂性问题,而 Spring MVC 的目标是帮助开发人员快速构建 Web 应用程序。
- Spring 涉及到所有的应用程序组件,包括业务逻辑、数据持久化、缓存等。而 Spring MVC 则仅关注 Web 层。
Spring 和 Spring MVC 的关系
Spring MVC 是基于 Spring 框架的一个 Web MVC 框架,它以 Web 的方式使用 Spring 框架技术,结合 Spring 框架提供的 IoC 和 AOP 等功能,更方便实现 Web 项目功能与细节控制。因此,Spring 和 Spring MVC 是一种包含关系,Spring 是一个更为广泛的框架,而 Spring MVC 只是 Spring 框架下的一个模块。
2. Spring 和 Spring MVC 的使用及示例说明
Spring 的使用示例
Spring 的使用步骤:
- 引入 Spring 相应的依赖。
- 在 Spring 配置文件中定义对象之间的依赖关系。
- 在 Java 代码中实例化 Spring 容器,并通过容器获取相应的 Bean 实例。
下面是一个使用 Spring 的示例代码:
- 引入 Spring 相应的依赖
<!-- 引入 Spring Framework 相关依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- 在 Spring 配置文件中定义对象之间的依赖关系
<!-- 定义一个 MessageService 接口的实现类 -->
<bean id="messageService" class="com.example.MessageServiceImpl"></bean>
<!-- 定义一个 MessagePrinter 类,并注入 MessageService 对象 -->
<bean id="messagePrinter" class="com.example.MessagePrinter">
<property name="messageService" ref="messageService"></property>
</bean>
- 在 Java 代码中实例化 Spring 容器并获取相应的 Bean 实例
public static void main(String[] args) {
// 实例化 Spring 容器
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// 获取 MessagePrinter 实例
MessagePrinter printer = context.getBean(MessagePrinter.class);
// 调用 printMessage 方法,输出消息
printer.printMessage();
}
Spring MVC 的使用示例
Spring MVC 的使用步骤:
- 引入 Spring MVC 相应的依赖。
- 配置 DispatcherServlet。
- 定义 Controller,并处理请求。
下面是一个使用 Spring MVC 的示例代码:
- 引入 Spring MVC 相应的依赖
<!-- 引入 Spring MVC 相关依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
- 配置 DispatcherServlet
在 web.xml 配置文件中增加 DispatcherServlet 的配置。
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
- 定义 Controller
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
- 处理请求
<!-- 定义视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置静态资源 -->
<mvc:resources mapping="/resources/**" location="/resources/"></mvc:resources>
<!-- 配置消息转换器 -->
<mvc:annotation-driven></mvc:annotation-driven>
在对应的视图(/WEB-INF/views/greeting.jsp)中显示模型数据。
<html>
<body>
<h1>Hello, ${name}!</h1>
</body>
</html>
以上是一个 Spring MVC 的例子,通过这个例子我们可以看到 Spring MVC 的基本使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈spring和spring MVC的区别与关系 - Python技术站