问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SpringMVC的工作原理是什么样的,跟Spring的关系是怎么样的?_百度知 ...

发布网友 发布时间:2022-04-24 16:26

我来回答

3个回答

懂视网 时间:2022-05-01 11:47

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>org.andy.springmvc</groupId>  
  5.     <artifactId>springmvc_demo</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.   
  9.     <name>springmvc_demo Maven Webapp</name>  
  10.     <url>http://maven.apache.org</url>  
  11.   
  12.     <properties>  
  13.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  14.         <spring.version>4.1.4.RELEASE</spring.version>  
  15.         <jackson.version>2.5.0</jackson.version>  
  16.     </properties>  
  17.   
  18.     <dependencies>  
  19.   
  20.         <!-- junit -->  
  21.         <dependency>  
  22.             <groupId>junit</groupId>  
  23.             <artifactId>junit</artifactId>  
  24.             <version>4.12</version>  
  25.             <scope>test</scope>  
  26.         </dependency>  
  27.   
  28.         <!-- spring -->  
  29.         <dependency>  
  30.             <groupId>org.springframework</groupId>  
  31.             <artifactId>spring-core</artifactId>  
  32.             <version>${spring.version}</version>  
  33.         </dependency>  
  34.   
  35.         <dependency>  
  36.             <groupId>org.springframework</groupId>  
  37.             <artifactId>spring-beans</artifactId>  
  38.             <version>${spring.version}</version>  
  39.         </dependency>  
  40.   
  41.         <dependency>  
  42.             <groupId>org.springframework</groupId>  
  43.             <artifactId>spring-context</artifactId>  
  44.             <version>${spring.version}</version>  
  45.         </dependency>  
  46.   
  47.         <dependency>  
  48.             <groupId>org.springframework</groupId>  
  49.             <artifactId>spring-tx</artifactId>  
  50.             <version>${spring.version}</version>  
  51.         </dependency>  
  52.   
  53.         <dependency>  
  54.             <groupId>org.springframework</groupId>  
  55.             <artifactId>spring-web</artifactId>  
  56.             <version>${spring.version}</version>  
  57.         </dependency>  
  58.   
  59.         <dependency>  
  60.             <groupId>org.springframework</groupId>  
  61.             <artifactId>spring-webmvc</artifactId>  
  62.             <version>${spring.version}</version>  
  63.         </dependency>  
  64.   
  65.         <dependency>  
  66.             <groupId>org.springframework</groupId>  
  67.             <artifactId>spring-jdbc</artifactId>  
  68.             <version>${spring.version}</version>  
  69.         </dependency>  
  70.   
  71.         <dependency>  
  72.             <groupId>org.springframework</groupId>  
  73.             <artifactId>spring-test</artifactId>  
  74.             <version>${spring.version}</version>  
  75.             <scope>test</scope>  
  76.         </dependency>  
  77.   
  78.         <!-- log4j -->  
  79.         <dependency>  
  80.             <groupId>log4j</groupId>  
  81.             <artifactId>log4j</artifactId>  
  82.             <version>1.2.17</version>  
  83.         </dependency>  
  84.   
  85.         <!-- mysql连接 -->  
  86.         <dependency>  
  87.             <groupId>mysql</groupId>  
  88.             <artifactId>mysql-connector-java</artifactId>  
  89.             <version>5.1.34</version>  
  90.         </dependency>  
  91.   
  92.         <!-- c3p0数据源 -->  
  93.         <dependency>  
  94.             <groupId>com.mchange</groupId>  
  95.             <artifactId>c3p0</artifactId>  
  96.             <version>0.9.5-pre10</version>  
  97.         </dependency>  
  98.   
  99.         <!-- json -->  
  100.         <dependency>  
  101.             <groupId>com.alibaba</groupId>  
  102.             <artifactId>fastjson</artifactId>  
  103.             <version>1.2.3</version>  
  104.         </dependency>  
  105.   
  106.         <dependency>  
  107.             <groupId>com.fasterxml.jackson.core</groupId>  
  108.             <artifactId>jackson-annotations</artifactId>  
  109.             <version>${jackson.version}</version>  
  110.         </dependency>  
  111.   
  112.         <dependency>  
  113.             <groupId>com.fasterxml.jackson.core</groupId>  
  114.             <artifactId>jackson-core</artifactId>  
  115.             <version>${jackson.version}</version>  
  116.         </dependency>  
  117.   
  118.         <dependency>  
  119.             <groupId>com.fasterxml.jackson.core</groupId>  
  120.             <artifactId>jackson-databind</artifactId>  
  121.             <version>${jackson.version}</version>  
  122.         </dependency>  
  123.   
  124.         <!-- servlet -->  
  125.         <dependency>  
  126.             <groupId>javax.servlet</groupId>  
  127.             <artifactId>servlet-api</artifactId>  
  128.             <version>3.0-alpha-1</version>  
  129.             <scope>provided</scope>  
  130.         </dependency>  
  131.   
  132.         <dependency>  
  133.             <groupId>javax.servlet</groupId>  
  134.             <artifactId>jstl</artifactId>  
  135.             <version>1.2</version>  
  136.         </dependency>  
  137.   
  138.         <!-- 文件上传 -->  
  139.         <dependency>  
  140.             <groupId>commons-io</groupId>  
  141.             <artifactId>commons-io</artifactId>  
  142.             <version>2.4</version>  
  143.         </dependency>  
  144.   
  145.         <dependency>  
  146.             <groupId>commons-fileupload</groupId>  
  147.             <artifactId>commons-fileupload</artifactId>  
  148.             <version>1.2.2</version>  
  149.         </dependency>  
  150.   
  151.     </dependencies>  
  152.   
  153.   
  154.     <build>  
  155.         <finalName>springmvc_demo</finalName>  
  156.   
  157.         <plugins>  
  158.             <!-- Run the JUnit unit tests in an isolated classloader -->  
  159.             <plugin>  
  160.                 <groupId>org.apache.maven.plugins</groupId>  
  161.                 <artifactId>maven-surefire-plugin</artifactId>  
  162.                 <version>2.4.2</version>  
  163.                 <configuration>  
  164.                     <skipTests>true</skipTests>  
  165.                 </configuration>  
  166.             </plugin>  
  167.   
  168.             <plugin>  
  169.                 <groupId>org.apache.maven.plugins</groupId>  
  170.                 <artifactId>maven-war-plugin</artifactId>  
  171.                 <version>2.3</version>  
  172.                 <configuration>  
  173.                     <webXml>src/main/webapp/WEB-INF/web.xml</webXml>  
  174.                 </configuration>  
  175.             </plugin>  
  176.   
  177.             <!-- generate java doc -->  
  178.             <plugin>  
  179.                 <groupId>org.apache.maven.plugins</groupId>  
  180.                 <artifactId>maven-javadoc-plugin</artifactId>  
  181.                 <version>2.9.1</version>  
  182.                 <configuration>  
  183.                     <javadocDirectory>target/javadoc</javadocDirectory>  
  184.                     <reportOutputDirectory>target/javadoc</reportOutputDirectory>  
  185.                     <charset>UTF-8</charset>  
  186.                     <encoding>UTF-8</encoding>  
  187.                     <docencoding>UTF-8</docencoding>  
  188.                     <show>private</show>  
  189.                 </configuration>  
  190.             </plugin>  
  191.   
  192.             <!-- 部署至本机 -->  
  193.             <plugin>  
  194.                 <groupId>org.codehaus.cargo</groupId>  
  195.                 <artifactId>cargo-maven2-plugin</artifactId>  
  196.                 <version>1.0</version>  
  197.                 <configuration>  
  198.                     <container>  
  199.                         <containerId>tomcat6x</containerId>  
  200.                         <home>D:WebServerapache-tomcat-6.0.39</home>  
  201.                     </container>  
  202.                     <configuration>  
  203.                         <type>existing</type>  
  204.                         <home>D:WebServerapache-tomcat-6.0.39</home>  
  205.                     </configuration>  
  206.                 </configuration>  
  207.             </plugin>  
  208.         </plugins>  
  209.     </build>  
  210. </project>  

 

4、搭建Spring

4.1、 创建配置文件,添加c3p0数据源配置信息

      src/main/resources/applicationConfig.xml


[plain] view plain copy 技术分享技术分享
  1. #application all config  
  2.   
  3. #jdbc c3p0  
  4. jdbc.driver = com.mysql.jdbc.Driver  
  5. jdbc.url = jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8  
  6. jdbc.username = root  
  7. jdbc.password = 12345  

4.2、创建Spring配置文件

    src/main/resources/applicationContext.xml

   

[html] view plain copy 技术分享技术分享
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  5.             http://www.springframework.org/schema/beans/spring-beans-4.1.xsd  
  6.             http://www.springframework.org/schema/context  
  7.             http://www.springframework.org/schema/context/spring-context-4.1.xsd  
  8.         ">  
  9.   
  10.     <!--引入配置属性文件 -->  
  11.     <context:property-placeholder location="classpath*:/applicationConfig.properties" />  
  12.     <!--扫描org.andy.work下文件,自动注入dao,entity,service为bean -->  
  13.     <context:component-scan base-package="org.andy.shop.dao.Impl,org.andy.shop.service.Impl" />  
  14.   
  15.     <!-- c3p0数据源配置 -->  
  16.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
  17.         destroy-method="close">  
  18.         <property name="driverClass" value="${jdbc.driver}" />  
  19.         <property name="jdbcUrl" value="${jdbc.url}" />  
  20.         <property name="user" value="${jdbc.username}" />  
  21.         <property name="password" value="${jdbc.password}" />  
  22.   
  23.         <!-- 请求超时时间 -->  
  24.         <property name="checkoutTimeout" value="30000" />  
  25.         <!-- 每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 -->  
  26.         <property name="idleConnectionTestPeriod" value="30" />  
  27.         <!-- 连接数据库连接池最大空闲时间 -->  
  28.         <property name="maxIdleTime" value="30" />  
  29.         <!-- 连接池初始化连接数 -->  
  30.         <property name="initialPoolSize" value="5" />  
  31.         <property name="minPoolSize" value="5" />  
  32.         <property name="maxPoolSize" value="20" />  
  33.         <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 -->  
  34.         <property name="acquireIncrement" value="5" />  
  35.     </bean>  
  36.   
  37.     <!-- spring jdbc -->  
  38.     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  39.         <property name="dataSource" ref="dataSource" />  
  40.     </bean>  
  41.   
  42.     <bean id="namedParameterJdbcTemplate"  
  43.         class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">  
  44.         <constructor-arg ref="dataSource" />  
  45.     </bean>  
  46.   
  47.     <!-- 配置事务管理 -->  
  48.     <bean id="transactionManager"  
  49.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  50.         <property name="dataSource" ref="dataSource" />  
  51.     </bean>  
  52.   
  53.     <!-- 声明式事务,事务拦截器 -->  
  54.     <bean id="transactionInterceptor"  
  55.         class="org.springframework.transaction.interceptor.TransactionInterceptor">  
  56.         <property name="transactionManager" ref="transactionManager" />  
  57.         <!-- 配置事务属性 -->  
  58.         <property name="transactionAttributes">  
  59.             <!--下面定义事务传播属性 -->  
  60.             <props>  
  61.                 <prop key="save*">PROPAGATION_REQUIRED</prop>  
  62.                 <prop key="del*">PROPAGATION_REQUIRED</prop>  
  63.                 <prop key="update">PROPAGATION_REQUIRED</prop>  
  64.                   
  65.                 <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>  
  66.                 <prop key="find*">PROPAGATION_SUPPORTS,readOnly</prop>  
  67.                 <prop key="*">PROPAGATION_REQUIRED</prop>  
  68.             </props>  
  69.         </property>  
  70.     </bean>  
  71.   
  72.     <!-- Bean后处理器BeanNameAutoProxyCreator,根据List配置创建事务代理 -->  
  73.     <bean  
  74.         class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
  75.         <!-- 下面是所有需要自动创建事务代理的bean -->  
  76.          热心网友 时间:2022-05-01 08:55

    springMVC的工作原理如下:

    springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 

    DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 

    DispatcherServlet请请求提交到目标Controller 

    Controller进行业务逻辑处理后,会返回一个ModelAndView 

    Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 

    视图对象负责渲染返回给客户端。 

    与spring的关系:

     Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean 的方式。
      组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 
      核心容器:核心容器提供 Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 
      Spring 上下文:Spring 上下文是一个配置文件,向 Spring框架提供上下文信息。Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 
      Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。 
      Spring  DAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SpringDAO的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 
      Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM的对象关系工具,其中包括JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和DAO异常层次结构。 
      Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 
      Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText 和 POI。 

      Spring 框架的功能可以用在任何 J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定 J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web或EJB)、独立应用程序、测试环境之间重用。

    由此可以看出:Spring MVC 框架只是spring的一个子模块,用在java ee工程的web层组件。

    热心网友 时间:2022-05-01 10:13

    springMVC的工作原理如下:

      springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 

      DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 

      DispatcherServlet请请求提交到目标Controller 

      Controller进行业务逻辑处理后,会返回一个ModelAndView 

      Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 

      视图对象负责渲染返回给客户端。 

      与spring的关系:

      Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean 的方式。
      组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
      核心容器:核心容器提供 Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
      Spring 上下文:Spring 上下文是一个配置文件,向 Spring框架提供上下文信息。Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
      Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。
      Spring  DAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SpringDAO的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
      Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM的对象关系工具,其中包括JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和DAO异常层次结构。
      Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
      Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText 和 POI。 

      Spring 框架的功能可以用在任何 J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定 J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web或EJB)、独立应用程序、测试环境之间重用。

      由此可以看出:Spring MVC 框架只是spring的一个子模块,用在java ee工程的web层组件。java学习群前面是665中间是617后面是一五零。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? ubuntu怎么进去mysql MVC三层和spring三层的原理? EPS线条的功能和特点 什么MVC框架实现原理? eps线条开裂是什么原因?怎么处理? 如何在ubuntu中操作mysql数据库 spring mvc原理是什么? eps装饰线条的EPS装饰线条与传统装饰线条的对比 springmvc的工作原理是什么? 引进一整套eps线条生产设备大概需要投资多少钱 MVC模式的基本原理 ?? MVC 模式的原理,它在 Android 中是如何运用的? 哪为是预算的高手,帮帮忙可以不,外墙保温eps线形的材料单价及每米用量还有理论单价如何计算? 车辆里程如何归零? 汽车转速表和里程表在行驶过程中瞬间归零又瞬间复原,是怎么回事? 捷达VS7原始行车里程清零了怎么办? 依维柯总公里数归零了,怎么恢复到原来的数字。 本田xrv2020款1.5T豪华版TRIP B行程总公里数不小心清零怎么恢复? 汽车里程表归零后能恢复吗? 吉利缤越汽车断电后公里数归零了怎么恢复。。。 css mvc框架基本原理 ubuntu怎么进入mysql目录 简述mvc开发模式的优点 ubuntu mysql安装后怎么启动 spring mvc和三层架构是一样的原理吗? ubuntu mysql 密码忘了怎么办 怎么连接ubuntu mysql ubuntu怎么进入mysql 北京世纪高教图书有限公司怎么样? 北京读书新世纪图书有限公司怎么样? 北京世纪书缘图书有限公司怎么样? 北京世纪前程图书有限公司怎么样? 北京世纪云星图书有限公司怎么样? 在北京世纪高教图书有限公司工作能有北京居住证吗 女生青春期时候得了厌食症两年没怎么吃饭瘦了60斤 会影响以后身高吗? 职工医疗保险的缴费年限是多久?中断的必须补缴吗? 北京世纪鼎图书发行有限公司怎么样? 北京世纪捷进图书有限公司 拖欠员工工资二个月多了 这个公司是不是快倒闭了 拖欠员工工资是违法的吧? 怎么看待女大学生疯狂减肥到60斤后昏厥? 19岁女孩身高1米68,体重不到60斤,为何这么瘦?