关于SpringMVC入门配置

来源:互联网 发布:淘宝买电脑主机 编辑:程序博客网 时间:2024/06/03 01:42

**1.先创建Maven项目
2.配置pom.xml**

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.fly</groupId>  <artifactId>ZXF</artifactId>  <packaging>war</packaging>  <version>1.0-SNAPSHOT</version>  <name>test</name>  <properties>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <commons-lang.version>2.6</commons-lang.version>    <slf4j.version>1.7.6</slf4j.version>    <spring.version>4.1.3.RELEASE</spring.version>    <!-- mybatis版本号 -->    <mybatis.version>3.2.6</mybatis.version>    <jackson.version>2.5.4</jackson.version>  </properties>  <dependencyManagement>   <dependencies>     <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-framework-bom</artifactId>       <version>${spring.version}</version>       <type>pom</type>       <scope>import</scope>     </dependency>   </dependencies>  </dependencyManagement> <dependencies>        <dependency>            <groupId>c3p0</groupId>            <artifactId>c3p0</artifactId>            <version>0.9.1.2</version>        </dependency>    <!-- mybatis核心包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis</artifactId>              <version>${mybatis.version}</version>          </dependency>          <dependency>            <groupId>org.mybatis.generator</groupId>            <artifactId>mybatis-generator-core</artifactId>            <version>1.3.2</version>        </dependency>        <!-- mybatis/spring包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis-spring</artifactId>              <version>1.2.2</version>          </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.11</version>            <scope>test</scope>        </dependency>        <!-- 导入Mysql数据库链接jar包 -->          <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>              <version>5.1.30</version>          </dependency>          <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>        </dependency>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>spring-jdbc</artifactId>     </dependency>        <dependency>            <groupId>commons-lang</groupId>            <artifactId>commons-lang</artifactId>            <version>${commons-lang.version}</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>${slf4j.version}</version>            <exclusions>                <exclusion>                    <artifactId>slf4j-api</artifactId>                    <groupId>org.slf4j</groupId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-api</artifactId>            <version>${slf4j.version}</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>servlet-api</artifactId>            <version>2.5</version>        </dependency>        <dependency>            <groupId>commons-fileupload</groupId>            <artifactId>commons-fileupload</artifactId>            <version>1.3.1</version>        </dependency>        <dependency>            <groupId>com.fasterxml.jackson.core</groupId>            <artifactId>jackson-databind</artifactId>            <version>${jackson.version}</version>        </dependency>        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>            <version>1.2</version>        </dependency>    </dependencies>  <build>    <finalName>ZXF</finalName>    <plugins>        <plugin>              <groupId>org.apache.maven.plugins</groupId>              <artifactId>maven-compiler-plugin</artifactId>              <version>2.3.2</version>              <configuration>                  <source>1.7</source>                  <target>1.7</target>              </configuration>          </plugin>         <plugin>                <groupId>org.mybatis.generator</groupId>                <artifactId>mybatis-generator-maven-plugin</artifactId>                <version>1.3.2</version>                <configuration>                </configuration>            </plugin>    </plugins>        <!-- define the project compile level -->    </build></project>

3.再配置web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  <display-name>Spring MVC Study</display-name>  <!-- Spring应用上下文, 理解层次化的ApplicationContext -->  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:spring-mybatis.xml</param-value>  </context-param>  <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>  </listener>  <!-- DispatcherServlet, Spring MVC的核心 -->  <servlet>        <servlet-name>mvc-dispatcher</servlet-name>        <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>        <!-- DispatcherServlet对应的上下文配置, 默认为/WEB-INF/$servlet-name$-servlet.xml         -->        <init-param>          <param-name>contextConfigLocation</param-name>          <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>mvc-dispatcher</servlet-name>        <!-- mvc-dispatcher拦截所有的请求-->        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

4.需要先引入mybatis spring-mybatis.xml 文件
此文件位于项目 这里写图片描述

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"    xsi:schemaLocation="http://www.springframework.org/schema/beans                          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                          http://www.springframework.org/schema/context                          http://www.springframework.org/schema/context/spring-context-3.1.xsd                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd                          http://www.springframework.org/schema/mvc                          http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">     <!-- 自动扫描 -->      <context:component-scan base-package="com.fly" />    <aop:config proxy-target-class="true"></aop:config>     <bean id="propertyConfigurer"        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="location" value="classpath:c3p0.properties" />    </bean>     <bean id="dataSource"  class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="${driver}" />        <property name="jdbcUrl" value="${url}" />        <property name="user" value="${username}" />        <property name="password" value="${password}" />        <!-- 初始化的连接数,值在minPoolSize和maxPoolSize之间 -->        <property name="initialPoolSize" value="${initialPoolSize}" />        <!-- 连接池中保留的最小连接数 -->        <property name="minPoolSize" value="${minPoolSize}" />        <!--连接池中保留的最大连接数。Default: 15 -->        <property name="maxPoolSize" value="${maxPoolSize}" />        <!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->        <property name="maxIdleTime" value="${maxIdleTime}" />        <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->        <property name="acquireIncrement" value="3" />        <!-- JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量 -->        <property name="maxStatements" value="1000" />        <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->        <property name="idleConnectionTestPeriod" value="60" />        <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->        <property name="acquireRetryAttempts" value="30" />        <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试             获取连接失败后该数据源将申明已断开并永久关闭。Default: false -->        <property name="breakAfterAcquireFailure" value="true" />        <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable             等方法来提升连接测试的性能。Default: false -->        <property name="testConnectionOnCheckout" value="false" />    </bean>    <!-- 创建SqlSessionFactory,同时指定数据源 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="mapperLocations" value="classpath:mybatis/*.xml"></property>    </bean>    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="com.fly.dao" />        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>    </bean>    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->    <bean id="transactionManager"        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean></beans>

5.对SpringMVC核心配置 mvc-dispatcher-servlet.xml 文件
此文件位于这里写图片描述

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!-- 本配置文件是工名为mvc-dispatcher的DispatcherServlet使用, 提供其相关的Spring MVC配置 -->    <!-- 启用Spring基于annotation的DI, 使用户可以在Spring MVC中使用Spring的强大功能。 激活 @Required         @Autowired,JSR 250's @PostConstruct, @PreDestroy and @Resource 等标注 -->    <context:annotation-config />    <!-- DispatcherServlet上下文, 只管理@Controller类型的bean, 忽略其他型的bean, 如@Service -->    <context:component-scan base-package="com.fly.controller" />    <mvc:annotation-driven>        <mvc:argument-resolvers>            <bean class="springmvc.extention.BeanArgumentResolver" />        </mvc:argument-resolvers>    </mvc:annotation-driven>    <!-- HandlerMapping, 无需配置, Spring MVC可以默认启动。 DefaultAnnotationHandlerMapping         annotation-driven HandlerMapping -->    <!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->    <mvc:annotation-driven />    <!-- 静态资源处理, css, js, imgs -->    <mvc:resources mapping="/resources/**" location="/resources/" />    <!-- 配置ViewResolver。 可以用多个ViewResolver。 使用order属性排序。 InternalResourceViewResolver放在最后。 -->    <bean        class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">        <property name="order" value="1" />        <property name="mediaTypes">            <map>                <entry key="json" value="application/json" />                <entry key="xml" value="application/xml" />                <entry key="htm" value="text/html" />            </map>        </property>        <property name="defaultViews">            <list>                <!-- JSON View -->                <bean                    class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">                </bean>            </list>        </property>        <property name="ignoreAcceptHeader" value="true" />    </bean>    <bean        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass"            value="org.springframework.web.servlet.view.JstlView" />        <property name="prefix" value="/WEB-INF/jsps/" />        <property name="suffix" value=".jsp" />    </bean>    <!--200*1024*1024即200M resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->    <bean id="multipartResolver"        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        <property name="maxUploadSize" value="209715200" />        <property name="defaultEncoding" value="UTF-8" />        <property name="resolveLazily" value="true" />    </bean></beans>

此例子中需要注意在web.xml中文件引入的顺序。

1 0