SpringMVC搭建流程

超、凢脫俗 2022-12-08 01:43 236阅读 0赞

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <!-- post 方式的中文乱码解决 -->
  7. <filter>
  8. <filter-name>characterEncoding</filter-name>
  9. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  10. <init-param>
  11. <param-name>encoding</param-name>
  12. <param-value>utf8</param-value>
  13. </init-param>
  14. </filter>
  15. <filter-mapping>
  16. <filter-name>characterEncoding</filter-name>
  17. <url-pattern>/*</url-pattern>
  18. </filter-mapping>
  19. <!--引入spring mvc的核心控制器 配置 -->
  20. <servlet>
  21. <servlet-name>DispatchServlet</servlet-name>
  22. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  23. <!-- 指定加载哪个配置文件 -->
  24. <init-param>
  25. <param-name>contextConfigLocation</param-name>
  26. <param-value>classpath:springmvc.xml</param-value>
  27. </init-param>
  28. <!-- tomcat服务器启动时,创建servlet对象 -->
  29. <load-on-startup>1</load-on-startup>
  30. </servlet>
  31. <servlet-mapping>
  32. <servlet-name>DispatchServlet</servlet-name>
  33. <url-pattern>/</url-pattern>
  34. <!--<url-pattern>*.do</url-pattern>-->
  35. </servlet-mapping>
  36. <!-- spring的核心配置 -->
  37. <context-param>
  38. <param-name>contextConfigLocation</param-name>
  39. <!-- classpath相当于/WEB-INF/classes -->
  40. <param-value>classpath:springbean.xml</param-value>
  41. </context-param>
  42. <listener>
  43. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  44. </listener>
  45. </web-app>

SpringMVC.xml

  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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/mvc
  14. http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  15. <!-- 扫描控制器的注解 -->
  16. <context:component-scan base-package="com.qfedu.controller, com.qfedu.common"/>
  17. <!-- 如果想要在控制器中方法的参数上直接使用验证器的话,就必须加这个类-->
  18. <bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
  19. <!-- 重要配置!!! -->
  20. <!-- 设置转换的服务-->
  21. <mvc:annotation-driven conversion-service="convertorService" validator="validator"/>
  22. <!-- 重要配置!!! -->
  23. <mvc:annotation-driven>
  24. <!-- 处理json里的日期数据,默认日期被fastjson转为时间戳数据 -->
  25. <mvc:message-converters>
  26. <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  27. <property name="objectMapper">
  28. <bean class="com.fasterxml.jackson.databind.ObjectMapper">
  29. <property name="dateFormat">
  30. <bean class="java.text.SimpleDateFormat">
  31. <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
  32. </bean>
  33. </property>
  34. </bean>
  35. </property>
  36. </bean>
  37. </mvc:message-converters>
  38. </mvc:annotation-driven>
  39. <!-- 设置自定义的转化器-->
  40. <bean id="convertorService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
  41. <property name="converters">
  42. <list>
  43. <bean class="com.qfedu.convert.CustomerDateConvert"/>
  44. </list>
  45. </property>
  46. </bean>
  47. <!-- 配置资源文件 -->
  48. <bean id="hibernateMessages" class="org.springframework.context.support.ResourceBundleMessageSource">
  49. <property name="defaultEncoding" value="UTF-8"/>
  50. <property name="basenames">
  51. <list>
  52. <value>ValidationMessages</value>
  53. </list>
  54. </property>
  55. </bean>
  56. <!-- 配置验证器 -->
  57. <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
  58. <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
  59. <property name="validationMessageSource" ref="hibernateMessages"/>
  60. </bean>
  61. <!-- url-pattern配置成/后, 使用如下配置将静态资源交给web服务器默认的servlet进行处理 -->
  62. <mvc:default-servlet-handler/>
  63. <!-- 文件上传的解析器 id的值不能改-->
  64. <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  65. <!-- 上传文件的最大大小 ,单位字节 ,比如 1024 * 1024 = 1M-->
  66. <property name="maxUploadSize" value="1048576"/>
  67. </bean>
  68. <!-- <!–拦截器相关的配置–>-->
  69. <!-- <mvc:interceptors>-->
  70. <!-- <mvc:interceptor>-->
  71. <!-- <!– 拦截所有资源包括一些静态资源 js–>-->
  72. <!-- <mvc:mapping path="/**"/>-->
  73. <!-- <!–除了js文件夹的所有的文件不被拦截其他的被拦截–>-->
  74. <!-- <mvc:exclude-mapping path="/js/**"/>-->
  75. <!-- <mvc:exclude-mapping path="/layui/**"/>-->
  76. <!-- <!–除了login.html login.do 不被拦截,其他的被拦截-->
  77. <!-- –>-->
  78. <!-- <mvc:exclude-mapping path="/**/login.*"/>-->
  79. <!-- <bean class="com.qfedu.interceptor.LoginInterceptor"/>-->
  80. <!-- </mvc:interceptor>-->
  81. <!-- </mvc:interceptors>-->
  82. <!-- 视图解析器 -->
  83. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  84. <!-- 前缀 -->
  85. <property name="prefix" value="/"/>
  86. <!-- 后缀 -->
  87. <property name="suffix" value=".jsp"/>
  88. </bean>
  89. </beans>

Spring-bean.xml

  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"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/tx
  14. http://www.springframework.org/schema/tx/spring-tx.xsd">
  15. <!-- 扫描相关注解 -->
  16. <context:component-scan base-package="com.qfedu.service"/>
  17. <!-- 1 druid数据源 -->
  18. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
  19. init-method="init" destroy-method="close">
  20. <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  21. <property name="url" value="jdbc:mysql://localhost:3306/carrental?useSSL=false" />
  22. <property name="username" value="root" />
  23. <property name="password" value="123456" />
  24. <!-- 配置初始化大小、最小、最大 -->
  25. <property name="initialSize" value="1" />
  26. <property name="minIdle" value="1" />
  27. <property name="maxActive" value="10" />
  28. <!-- 配置获取连接等待超时的时间 -->
  29. <property name="maxWait" value="10000" />
  30. <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  31. <property name="timeBetweenEvictionRunsMillis" value="60000" />
  32. <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  33. <property name="minEvictableIdleTimeMillis" value="300000" />
  34. <property name="testWhileIdle" value="true" />
  35. <!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
  36. <property name="testOnBorrow" value="true" />
  37. <property name="testOnReturn" value="false" />
  38. </bean>
  39. <!-- 2 创建Mybatis的工厂对象 -->
  40. <bean id="sqlSessionFactory"
  41. class="org.mybatis.spring.SqlSessionFactoryBean">
  42. <!--设置数据库连接池 -->
  43. <property name="dataSource" ref="dataSource"/>
  44. <!-- 加载mybatis主配置文件 -->
  45. <property name="configLocation" value="classpath:mybatis.xml"/>
  46. <!-- 加载映射文件 -->
  47. <property name="mapperLocations" value="classpath:com/qfedu/mapper/*.xml"/>
  48. </bean>
  49. <!--3设置Mybatis的映射接口 -->
  50. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  51. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  52. <!-- 设置映射文件所在包 -->
  53. <property name="basePackage" value="com.qfedu.dao"/>
  54. </bean>
  55. <!--spring 事务-->
  56. <!--1.配置事务管理类-->
  57. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  58. <property name="dataSource" ref="dataSource"/>
  59. </bean>
  60. <!--2配置事务的增强-->
  61. <tx:advice id="txAdvice" transaction-manager="txManager">
  62. <tx:attributes>
  63. <!--针对切点对应的方法
  64. read-only:针对于查询 true, 增删改都是 falsew
  65. propagation:传播特性 REQUIRED
  66. SUPPORTS 只是针对于查询的时候
  67. -->
  68. <tx:method name="add*" read-only="false" propagation="REQUIRED"/>
  69. <tx:method name="delete*" read-only="false" propagation="REQUIRED"/>
  70. <tx:method name="update*" read-only="false" propagation="REQUIRED"/>
  71. <tx:method name="find*" read-only="true" propagation="SUPPORTS"/>
  72. <tx:method name="select*" read-only="true" propagation="SUPPORTS"/>
  73. <!-- 表示没有满足上面的不支持事务 -->
  74. <tx:method name="*" propagation="NOT_SUPPORTED"/>
  75. </tx:attributes>
  76. </tx:advice>
  77. <!--3.aop配置-->
  78. <aop:config>
  79. <!--切入点-->
  80. <aop:pointcut id="pc" expression="execution(* com.qfedu.service.impl.*.*(..))"/>
  81. <!--针对于事务不需要配置切面类,已经实现了针对事务的切面类-->
  82. <aop:advisor advice-ref="txAdvice" pointcut-ref="pc"></aop:advisor>
  83. </aop:config>
  84. </beans>

mybatis.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!--设置别名-->
  7. <plugins>
  8. <plugin interceptor="com.github.pagehelper.PageInterceptor">
  9. <!-- 使用以下的参数配置下面几个参数都是针对默认 dialect 情况下的参数。使用自定义 dialect 实现时,下面的参数没有任何作用。
  10. helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:
  11. oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby-->
  12. <property name="helperDialect" value="mysql"/>
  13. </plugin>
  14. </plugins>
  15. </configuration>

log4j.properties

  1. ### set log levels ###
  2. log4j.rootLogger = debug,stdout,D,E
  3. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  4. log4j.appender.stdout.Target = System.out
  5. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  6. log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
  7. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
  8. log4j.appender.D.File = F://logs/log.log
  9. log4j.appender.D.Append = true
  10. log4j.appender.D.Threshold = DEBUG
  11. log4j.appender.D.layout = org.apache.log4j.PatternLayout
  12. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  13. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
  14. log4j.appender.E.File =F://logs/error.log
  15. log4j.appender.E.Append = true
  16. log4j.appender.E.Threshold = ERROR
  17. log4j.appender.E.layout = org.apache.log4j.PatternLayout
  18. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.example</groupId>
  7. <artifactId>Car_Express</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <packaging>war</packaging>
  10. <dependencies>
  11. <!-- jstl的jar -->
  12. <dependency>
  13. <groupId>jstl</groupId>
  14. <artifactId>jstl</artifactId>
  15. <version>1.2</version>
  16. </dependency>
  17. <!-- servelt相关 -->
  18. <dependency>
  19. <groupId>javax.servlet</groupId>
  20. <artifactId>javax.servlet-api</artifactId>
  21. <version>3.1.0</version>
  22. <scope>provided</scope>
  23. </dependency>
  24. <!-- 引入spring的jar包 -->
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-context</artifactId>
  28. <version>5.1.5.RELEASE</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-aop</artifactId>
  33. <version>5.1.5.RELEASE</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework</groupId>
  37. <artifactId>spring-aspects</artifactId>
  38. <version>5.1.5.RELEASE</version>
  39. </dependency>
  40. <!--<dependency>
  41. <groupId>org.aspectj</groupId>
  42. <artifactId>aspectjrt</artifactId>
  43. <version>1.8.2</version>
  44. </dependency>
  45. <dependency>
  46. <groupId>org.aspectj</groupId>
  47. <artifactId>aspectjweaver</artifactId>
  48. <version>1.8.2</version>
  49. </dependency>
  50. <dependency>
  51. <groupId>aopalliance</groupId>
  52. <artifactId>aopalliance</artifactId>
  53. <version>1.0</version>
  54. </dependency>-->
  55. <dependency>
  56. <groupId>org.springframework</groupId>
  57. <artifactId>spring-jdbc</artifactId>
  58. <version>5.1.5.RELEASE</version>
  59. </dependency>
  60. <dependency>
  61. <groupId>org.springframework</groupId>
  62. <artifactId>spring-tx</artifactId>
  63. <version>5.1.5.RELEASE</version>
  64. </dependency>
  65. <!-- springmvc相关 -->
  66. <dependency>
  67. <groupId>org.springframework</groupId>
  68. <artifactId>spring-web</artifactId>
  69. <version>5.1.5.RELEASE</version>
  70. </dependency>
  71. <dependency>
  72. <groupId>org.springframework</groupId>
  73. <artifactId>spring-webmvc</artifactId>
  74. <version>5.1.5.RELEASE</version>
  75. </dependency>
  76. <!-- 单元测试 -->
  77. <dependency>
  78. <groupId>org.springframework</groupId>
  79. <artifactId>spring-test</artifactId>
  80. <version>5.1.5.RELEASE</version>
  81. </dependency>
  82. <dependency>
  83. <groupId>junit</groupId>
  84. <artifactId>junit</artifactId>
  85. <version>4.12</version>
  86. <scope>test</scope>
  87. </dependency>
  88. <!-- 日志相关 -->
  89. <dependency>
  90. <groupId>org.slf4j</groupId>
  91. <artifactId>slf4j-log4j12</artifactId>
  92. <version>1.7.2</version>
  93. </dependency>
  94. <!-- 文件上传 -->
  95. <dependency>
  96. <groupId>commons-fileupload</groupId>
  97. <artifactId>commons-fileupload</artifactId>
  98. <version>1.3.3</version>
  99. </dependency>
  100. <!-- 验证 -->
  101. <dependency>
  102. <groupId>org.hibernate</groupId>
  103. <artifactId>hibernate-validator</artifactId>
  104. <version>5.0.1.Final</version>
  105. </dependency>
  106. <!-- jackson -->
  107. <dependency>
  108. <groupId>com.fasterxml.jackson.core</groupId>
  109. <artifactId>jackson-core</artifactId>
  110. <version>2.9.5</version>
  111. </dependency>
  112. <dependency>
  113. <groupId>com.fasterxml.jackson.core</groupId>
  114. <artifactId>jackson-databind</artifactId>
  115. <version>2.9.5</version>
  116. </dependency>
  117. <!-- mybatis -->
  118. <dependency>
  119. <groupId>org.mybatis</groupId>
  120. <artifactId>mybatis</artifactId>
  121. <version>3.4.5</version>
  122. </dependency>
  123. <dependency>
  124. <groupId>org.mybatis</groupId>
  125. <artifactId>mybatis-spring</artifactId>
  126. <version>1.3.2</version>
  127. </dependency>
  128. <!-- pageHelper插件 -->
  129. <dependency>
  130. <groupId>com.github.pagehelper</groupId>
  131. <artifactId>pagehelper</artifactId>
  132. <version>5.1.4</version>
  133. </dependency>
  134. <!-- 数据库连接池 -->
  135. <dependency>
  136. <groupId>com.alibaba</groupId>
  137. <artifactId>druid</artifactId>
  138. <version>1.0.18</version>
  139. </dependency>
  140. <!-- mysql驱动 -->
  141. <dependency>
  142. <groupId>mysql</groupId>
  143. <artifactId>mysql-connector-java</artifactId>
  144. <version>5.1.39</version>
  145. </dependency>
  146. </dependencies>
  147. <build>
  148. <finalName>banksys</finalName>
  149. <resources>
  150. <!--需要设置打包的文件 特别是非java文件-->
  151. <resource>
  152. <directory>src/main/java</directory>
  153. <includes>
  154. <include>**/*.xml</include>
  155. </includes>
  156. <filtering>false</filtering>
  157. </resource>
  158. <resource>
  159. <directory>src/main/resources</directory>
  160. <includes>
  161. <include>**/*.xml</include>
  162. <include>**/*.properties</include>
  163. </includes>
  164. </resource>
  165. </resources>
  166. <plugins>
  167. <!-- tomcat插件 -->
  168. <plugin>
  169. <groupId>org.apache.tomcat.maven</groupId>
  170. <artifactId>tomcat7-maven-plugin</artifactId>
  171. <version>2.2</version>
  172. <configuration>
  173. <uriEncoding>UTF-8</uriEncoding>
  174. <path>/car</path>
  175. </configuration>
  176. </plugin>
  177. <!-- 编译插件 -->
  178. <plugin>
  179. <groupId>org.apache.maven.plugins</groupId>
  180. <artifactId>maven-compiler-plugin</artifactId>
  181. <version>3.1</version>
  182. <configuration>
  183. <source>1.8</source>
  184. <target>1.8</target>
  185. <compilerVersion>1.8</compilerVersion>
  186. <encoding>UTF-8</encoding>
  187. </configuration>
  188. </plugin>
  189. </plugins>
  190. </build>
  191. </project>

20200917084447966.png

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringMVC框架

    框架项目请跳转到: [springMVC][] 本文在他人框架配置文件的基础上,学习Spring框架的知识,同时也结合多篇博文对框架进行改进与增加工鞥,比如缓存、多数据源以及