简述泛型、用Maven创建Web项目以及在Web项目上整合SpringMVC

表设计

Timestamp列是否取消“根据当前时间戳自动更新”

是否null及默认值选择合理不合理

外键命名规范及更新和删除时的动作是否合理

 

泛型

类型参数 ——允许在外部指定类型--类型不是固定的!

强类型——不允许改变变量或者属性或者参数的类型——类型的固定!

int add(User user);

在类型编程语言中类型是固定的,所以一个方法只能干一个事

如上面的方法因为参数类型的限制,只能添加用户,而无法添加“课程”、“分类”等

 

这种限制的好处:

    可以开发出强大的集成开发环境,用来对程序员代码进行实时错误检查

     智能提示、智能推断、智能改错、智能重构等强大的开发支持功能

 

强类型的缺陷

    无法写出跨越多种类型的通用代码  

    只能勉强写成   int add(Object obj);

         又会产生obj无法直接 . 出来我们希望使用属性、方法

         如果想 . 出来,就需要强制类型转换,但是转换的时候是没有类型检查的,非常容易出错

         此时,强类型语言的优势全部丧失!

泛型参数

    表示可变类型的符号,通常习惯用单字母表示

    定义时 ModelDao<M>    类比为形参

    使用时 ModelDao<User>  类比为实参

   

        通过下面的方法可以限定M的范围

        定义时 ModelDao<M extends Model>

        使用时 ModelDao<String>      就会报错!

               NodelDao<User>        正确

使用Maven创建Web项目

1.使用maven新建项目,选中create simple...

2.打包方式选择war

3.在项目点右键-->properties-->project facets

a. 取消 web project module 选择,点apply

b. 更改web project module 的版本号为3.1

c. 选中它,再点apply

d. 在下方蓝色链接(further config...)处点击

e. 在弹出的窗口中指定context root webcontent

l Webcontent设置为src/main/webappMaven的约定)

4. build path 中添加tomcat运行时依赖

5. deployment  assembly  中删除src/test/javasrc/test/resources  

6. 创建一个Servlet测试,确保Servlet能运行之后,然后添加

Web项目上整合SpringMVC

1.需要在pom文件中添加spring-webmvc依赖项

2.如果使用JSP作为视图引擎,则再添加jstl

3.如果不想在build path中添加tomcat,则需要再添加servlet-api

      A)<scope>设置为provided ,表示这个jar包由运行环境提供,

不需要打包到war

4.web.xml

     1>配置请求编码过滤器

    2>DispatcherServletSpringMVC的总请求处理器/前置控制器/请求派发器)

    3>配置ContextLoadListener(在应用启动时,加载Spring上下文配置文件,创建并启动Spring上下文)

5.创建springmvc-servlet.xml,在其中指定

     A)   component-scan    Spring去扫描@Controller@Service等注解

     B)   annotation-driven   SpringMVC进行默认装配,并实现

注解驱动----通过Spring上下文中的对象来支撑SpringMVC运行

     C)   配置视图控制解析器   指定使用哪种视图解析器(本项目使用JSP)

① 指定视图文件后缀名

② 视图文件的存放路径

6.创建applicationContext.xml配置文件

      A)  本文件用来启动和初始化Spring上下文,在上下文中注册系统运动时需要自动创建的对象  

  7.创建applicationContext指定的其它配置文件

       A)mybatis的配置文件

       B) log4j的配置文件    

Maven命令(部分)

  mvn  clean    清理项目的target文件夹

  mvn  compile  编译项目

(将java编译成类放到输出文件中,将资源文件放到输出文件中)

mvn  install   jar包安装到本地仓库

     跳过测试    mvn install -DskipTests

 

清理项目

方法一:在项目上点右键-->maven-->update projects.....

方法二: 在主菜单project-->clean.....

 

 

 父项目中的配置文件

<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/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.zhiyou100.video</groupId>

  <artifactId>video-parent</artifactId>

<!--   会在很多地方使用,方便修改 -->

  <version>${ version }</version>

  <name>Video Parent</name>

  

  <!-- 作为其他项目的父项目,为其他项目共享属性,共享信息 -->

  <packaging>pom</packaging>

  <url>http://www.zhiyou100.com</url>

  <description>智游在线。智游在线教育平台,提供视频教程,互动学习等服务</description>

  <properties>

   <version>0.1</version>

   <spring.version>4.3.9.RELEASE</spring.version>

     <maven.compiler.source>1.8</maven.compiler.source>

      <maven.compiler.target>1.8</maven.compiler.target>

  </properties>

  <dependencies>

  

<!--   下面的dependency为什么添加到父项目里?

  因为子项目都需要用到,放在父项目中,让子项目继承即可 -->

   <dependency>

   <groupId>junit</groupId>

   <artifactId>junit</artifactId>

   <version>4.12</version>

  

   <!-- 测试用的作用域 -->

   <scope>test</scope>

   </dependency>

  

   <dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<!-- 版本里为什么用变量定义?

spring里有很多jar包,需要保证jar包中一致,定义变量更好 -->

<version>${spring.version}</version>

<scope>test</scope>

</dependency>

  

  </dependencies>

  

  <modules>

   <module>video-service</module>

   <module>video-web</module>

  </modules>

</project>

  

原文地址:https://www.cnblogs.com/yangxiansen/p/7860023.html