《陈翔六点半之废话少说》。。。。

Spring WEB MVC 的请求流程:

      

Spring WEB MVC架构:

      

开始创建、配置gradle项目

  1.在gralde项目中,选择SDK 和框架、包。点击NEXT

    

     

    

  2.配置 build.gradle    

  1. group 'com.nf'
  2. version '1.0-SNAPSHOT'
  3.  
  4. apply plugin: 'java'
  5. apply plugin: 'war'
  6.  
  7. sourceCompatibility = 1.5
  8.  
  9. repositories {
  10. mavenCentral()
  11. jcenter()
  12. }
  13. // 配置需要的 jar 包依赖
  14. dependencies {
  15.  
  16. // 定义两个局部变量
  17. // 这里代表我们需要的 hibernate 和 spring 的版本
  18. def hibernateVersion = "5.1.0.Final"
  19. def springVersion = "4.3.5.RELEASE"
  20.  
  21. // 在 test 中需要用到的 jar 包
  22. testCompile (
  23. "junit:junit:4.12"
  24. )
  25.  
  26. // 指明 Tomcat 上已经自带的 jar 包,这样发布的时候才不会重复
  27. providedCompile (
  28. "javax:javaee-web-api:7.0",
  29. )
  30.  
  31. // 配置我们项目需要用到的所有 jar 包,即 compile 环节需要的 jar 包
  32. compile (
  33.  
  34. // OJDBC 包,数据库 Orcale
  35. "com.github.noraui:ojdbc7:12.1.0.2",
  36.  
  37. // 用来管理数据源的知名 jar 包
  38. "c3p0:c3p0:0.9.1.2",
  39.  
  40. // jsp 中 jstl 标签的支持 jar 包
  41. "javax.servlet:jstl:1.2",
  42.  
  43. // log4j 日志支持的 jar 包
  44. "log4j:log4j:1.2.17",
  45.  
  46. // 配置 hibernate
  47. "org.hibernate:hibernate-core:$hibernateVersion",
  48. "org.hibernate:hibernate-validator:5.4.0.Final",
  49.  
  50. // 配置 spring
  51. "org.springframework:spring-web:$springVersion",
  52. "org.springframework:spring-orm:$springVersion",
  53. "org.springframework:spring-aop:$springVersion",
  54. "org.springframework:spring-webmvc:$springVersion",
  55. "com.fasterxml.jackson.core:jackson-databind:2.5.1",
  56. )
  57. }
  58.  
  59. // 为编译器配置编码,防止某些情况下编译出现乱码的情况
  60. // 相应的,我们所有的代码应该保存成 UTF-8 格式
  61. tasks.withType(JavaCompile) {
  62. options.encoding = "UTF-8"
  63. }
  64.  
  65. // 自定义任务,将工程所需要的 jar 包拷贝到项目下的 lib 文件夹下
  66. // 需要手动执行这个 task 才会有效果。这是为了方便导出 jar 包
  67. task copyJars(type: Copy) {
  68. // 指明我们导出的是 compile 和 test 所依赖的 jar 包
  69. from configurations.compile, configurations.testCompile
  70. // 指明导出到 "lib" 文件夹下
  71. into "lib"
  72. }

  切记:包不可少,也不可重复。可以去 Maven Repository  查阅。

  配置tomcat

  

   

  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_3_1.xsd"
  5. version="3.1">
  6. <!-- 如果使用 RESTful 风格的编程,需要加上这个过滤器 -->
  7. <!-- 它能使得 FORM 提交支持 PUT/DELETE 等方法 -->
  8. <filter>
  9. <filter-name>forRESTful</filter-name>
  10. <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  11. </filter>
  12. <filter-mapping>
  13. <filter-name>forRESTful</filter-name>
  14. <servlet-name>springmvc</servlet-name>
  15. </filter-mapping>
  16.  
  17. <!-- 配置 SpringMVC 的 DispatcherServlet context (child) -->
  18. <!-- 它会为 SpringMVC 创建一个独立的容器 -->
  19. <!-- 如果使用 SpringMVC,这里必须要配置 -->
  20. <!-- 它的父容器是下面配置的 root Context -->
  21. <!-- 可以在 init-param 中指定配置文件路径,如果不配置,默认是 "WEB-INF/miniblog-servlet.xml" -->
  22. <servlet>
  23. <servlet-name>springmvc</servlet-name>
  24. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  25. <init-param>
  26. <param-name>contextConfigLocation</param-name>
  27. <param-value>classpath:spring_MVC.xml</param-value>
  28. </init-param>
  29. </servlet>
  30. <servlet-mapping>
  31. <servlet-name>springmvc</servlet-name>
  32. <url-pattern>/</url-pattern>
  33. </servlet-mapping>
  34.  
  35. <!-- 配置 spring 的 root application context (parent) -->
  36. <!-- 创建一个根容器 -->
  37. <!-- 如果只是使用 SpringMVC 但不使用 Spring 其他功能,这里可以不配置 -->
  38. <!-- 在这个容器里,配置一些全局的东西 -->
  39. <!-- 比如 dao/service 的依赖,数据源,sessionFactory,声明式事务之类 -->
  40. <!-- 可以通过 context-param 指定配置文件路径,如果不指定,默认是 "WEB-INF/applicationContext.xml" -->
  41. <listener>
  42. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  43. </listener>
  44. <context-param>
  45. <param-name>contextConfigLocation</param-name>
  46. <param-value>classpath:spring_Hibernate.xml</param-value>
  47. </context-param>
  48.  
  49. </web-app>

  spring_MVC.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:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  9.  
  10. <!-- 注意,要引入正确的命名空间!!! -->
  11.  
  12. <!-- mvc 版本的 context:annotation-driven -->
  13. <!-- 针对 mvc 增加了一些其他支持,需要开启 -->
  14. <mvc:annotation-driven />
  15.  
  16. <!-- 配置扫描发现所有具有 @Controller 注解的类,加载到容器 -->
  17. <!-- 注意,在 SpringMVC 的配置文件中,不要扫描 @Controller 之外的类 -->
  18. <context:component-scan base-package="edu.action"/>
  19.  
  20. <!-- 配置视图解析器,将 Controller 返回的字符串组织成全路径 -->
  21. <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  22. <property name="prefix" value="/WEB-INF/view/"/>
  23. <property name="suffix" value=".jsp"/>
  24. </bean>
  25.  
  26. <!-- 配置资源文件,如下配置,资源文件则为 resource 文件夹下的 message*.properties 或 message*.xml -->
  27. <!-- 注意,要把资源文件保存成 UTF-8 格式,否则,需要在这里通过 defaultEncoding 指定编码 -->
  28. <!--<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">-->
  29. <!--<property name="basename" value="message" />-->
  30. <!--<property name="defaultEncoding" value="GBK" />-->
  31. <!--</bean>-->
  32. <!-- 开启事务相关的注解 -->
  33. <!-- 然后,就可以在 Service 相关的类或方法上通过 @Transactional 开启事务支持了 -->
  34. <!--<tx:annotation-driven proxy-target-class="true"/>-->
  35. </beans>

  spring_Hibernate.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:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
  10.  
  11. <!-- 启用注解,让 spring 在加载的时候自动扫描指定包 -->
  12. <!-- 这样会将含有 @Service/@Repository/@Component 等注解的类在容器中实例化 -->
  13. <context:component-scan base-package="edu.dao,edu.service" />
  14.  
  15. <!-- 使用外部的 properties 文件 -->
  16. <!-- 我们一般会将经常要改动的一些参数提取出来放到外部 -->
  17. <context:property-placeholder location="classpath:db.properties" />
  18.  
  19. <!-- 配置 Hibernate 的 Sessionfactory -->
  20. <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
  21. <property name="dataSource">
  22. <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  23. <property name="user" value="${user}" />
  24. <property name="password" value="${password}" />
  25. <property name="jdbcUrl" value="${url}" />
  26. <property name="driverClass" value="${driver}" />
  27. </bean>
  28. </property>
  29. <property name="hibernateProperties">
  30. <props>
  31. <prop key="hibernate.show_sql">true</prop>
  32. <prop key="hibernate.format_sql">true</prop>
  33. <prop key="hibernate.hbm2ddl.auto">update</prop>
  34. <prop key="hibernate.dialect">${dialect}</prop>
  35. </props>
  36. </property>
  37. <property name="packagesToScan" value="edu.model" />
  38. </bean>
  39.  
  40. <!-- 配置事务管理器 -->
  41. <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  42. <property name="sessionFactory" ref="sessionFactory"/>
  43. </bean>
  44.  
  45. <!-- 开启事务相关的注解 -->
  46. <!-- 然后,就可以在 Service 相关的类或方法上通过 @Transactional 开启事务支持了 -->
  47. <tx:annotation-driven proxy-target-class="true"/>
  48.  
  49. </beans>

  db.properties

  1. user = vip
  2. password = vip
  3. url = jdbc:oracle:thin:localhost:1521:orcl
  4. driver = oracle.jdbc.driver.OracleDriver
  5.  
  6. dialect = org.hibernate.dialect.Oracle10gDialect

  日志文件配置(详解请看 http://blog.csdn.net/azheng270/article/details/2173430

  1. log4j.rootLogger=WARN, console
  2. log4j.appender.console=org.apache.log4j.ConsoleAppender
  3. log4j.appender.console.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.console.layout.conversionPattern=[%p] (%F:%L) - %m%n

注意一下几点:

  1.Hibernate 自动创表及表结构:  加以相关注释 @Entity、@Id @GeneratedValue、@Column

  2.dao包中 加入IOC容器 @Repository ,以及自动注入 SessionFactory  @Autowired

  3.service包中 加入IOC容器 @Service , 事务开启 [ springframework ]@Transactional ,以及自动注入 dao @Resource

  4.controller包中 实现页面接收、处理、跳转页面 @Controller  ,请求路径 @RequestMapper("/xx")  ,return "页面"

  5.参数接收页面数据写get、set 方法

Spring MVC 详解之废话少说的更多相关文章

  1. Spring MVC 详解(一)

    springmvc是spring的一个模块,提供web层解决方案(基于mvc设计架构),mvc是一个设计模式,在b/s系统的应用: spring 的架构 mvc设计模式 spring MVC的框架 第 ...

  2. 【64】Spring mvc详解

    Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...

  3. Java之Spring mvc详解

    文章大纲 一.Spring mvc介绍二.Spring mvc代码实战三.项目源码下载四.参考文章   一.Spring mvc介绍 1. 什么是springmvc   springmvc是sprin ...

  4. Spring MVC详解

    Spring MVC 教程,快速入门,深入分析 资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 目录  一.前言二.spring ...

  5. Spring mvc详解(山东数漫江湖)

    Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...

  6. 1.Spring MVC详解

    目录 1.SpringMVC 详细介绍 2.SpringMVC 处理请求流程 3.配置前端控制器 4.配置处理器适配器 5.编写 Handler 6.配置处理器映射器 7.配置视图解析器 8.Disp ...

  7. Spring MVC 详解(二)

    前端控制器 在web.xml中配置: 在springmvc.xml中配置springmvc架构三大组件(处理器映射器.适配器.视图解析器) 处理器映射器 在springmvc.xml中配置: Bean ...

  8. http数据绑定spring mvc详解

  9. MVC详解(转)

    原文链接:MVC详解 MVC与模板概念的理解 MVC(Model View Controller)模型-视图-控制器   MVC本来是存在于Deskt op程序中的,M是指数据模型,V是指用户界面,C ...

随机推荐

  1. 大数据学习(7)Hadoop高可用

    HDFS高可用 通过主从切换实现单NameNode高可用.通过Federation:水平扩展来联合多NameNode个: NameNode高可用 把edits日志从原来的nameNode中分离出来,存 ...

  2. WebApi的多版本管理

    1.多版本管理概念 什么是API的多版本问题?Android等App存在着多版本客户端共存的问题:由于早期没有内置升级机制,用户不会升级,拒绝升级等原因,造成了许多软件的旧版本App也在运行.开发新版 ...

  3. 微信小程序教学第二章:小程序中级实战教程之预备篇 - 项目结构设计 |基于最新版1.0开发者工具

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

  4. Python的HTTP服务实例

    1.前言 今天需要实现一个Pyhton的http服务,与Web的JS进行交换. 2.实例代码 支持HEAD.GET.POST方法,将参数转换为JSON格式,返回结果以JSON字符串返回. import ...

  5. python模拟shell执行脚本

    工作时候需要模拟shell来执行任务,借助包paramkio import paramiko class ShellExec(object): host = '127.0.0.1' port = 36 ...

  6. python各种类型的转换

    #进制转换 ord(x) #将一个字符转换为它的整数值 hex(x) #将一个整数转换为一个十六进制字符串 oct(x) #将一个整数转换为一个八进制字符串 #类型转换int(x [,base ]) ...

  7. bzoj 2588 Count on a tree

    Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始 ...

  8. input选择框样式修改与自定义

    html自带的选择框样式不好看,并且在ios设备上丑的罚款.所以一般都是自定义样式: 原理:将原来默认的input选择框隐藏,然后控制label的:before与:after,配合矢量图标或者图片来实 ...

  9. [编织消息框架][netty源码分析]13 ByteBuf 实现类CompositeByteBuf职责与实现

    public class CompositeByteBuf extends AbstractReferenceCountedByteBuf implements Iterable<ByteBuf ...

  10. KD树

    k-d树 在计算机科学里,k-d树( k-维树的缩写)是在k维欧几里德空间组织点的数据结构.k-d树可以使用在多种应用场合,如多维键值搜索(例:范围搜寻及最邻近搜索).k-d树是空间二分树(Binar ...