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

时间:2023-01-11 11:08:41

表设计

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/webapp(Maven的约定)

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

5. 在deployment  assembly  中删除src/test/java和src/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>DispatcherServlet(SpringMVC的总请求处理器/前置控制器/请求派发器)

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>

简述泛型、用Maven创建Web项目以及在Web项目上整合SpringMVC的更多相关文章

  1. springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web&period;xml文件配置

    前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...

  2. maven创建子项目&lpar;适用于多模块管理项目&rpar;

    在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project ...

  3. eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis

    接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...

  4. springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试

    包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=&quot ...

  5. springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用

    log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n  ---internationalization  不就是i和n之间有18个字母... http://logging.a ...

  6. 使用IDEA结合MAVEN创建一个Spring Java Web项目

    前言 如今的Java项目,如果还使用传统的把jar包复制到目录下这种原始的方式,对于依赖管理来说实在是灾难.对某个功能需要引入某种技术包,但是你不确定是否已存在,如果分类好的话还好找,若是杂在一堆不仅 ...

  7. Eclipse中使用Maven创建web项目

    一.创建一个Maven项目 1.Eclipse中用Maven创建项目 上图中点击next 2.继续next 3.选maven-archetype-webapp后,next 4.填写相应的信息,Pack ...

  8. 如何用Maven创建web项目

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  9. 【maven】maven创建web项目-pom文件提示web&period;xml is missing and &lt&semi;failOnMissingWebXml&gt&semi; is set to true

    使用maven创建web项目,选择war类型后,pom文件红叉 提示web.xml is missing and <failOnMissingWebXml> is set to true ...

随机推荐

  1. Log4j基本用法----日志级别

    基本使用方法: Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN.INFO.DEBUG,分别用来指定这条日志信 ...

  2. virtual box硬盘扩容 不是加一块硬盘

    先执行 VirtualBox list hdds 查看当前 VirtualBox 管理的虚拟磁盘. 获取磁盘的 uuid. 结果如下 D:\Program Files\Oracle\VirtualBo ...

  3. js各种间距数据汇总

    clientX,offsetX,screenX,pageX区别 先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不 ...

  4. 《Linear Algebra and Its Applications》-chaper2-矩阵代数中的基本性质

    之前我们曾经提及,完成了线性方程组-向量方程-矩阵方程的等价转化之后,我们对于现实问题中的线性方程组,只需将其转移到矩阵(向量)方程,然后利用矩阵代数中的各种方法和性质进行计算或者化简即可,而下面我们 ...

  5. RabbitMQ学习-1

    转载自:http://blog.csdn.net/anzhsoft/article/details/19563091. 1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced ...

  6. C&num;从基于FTPS的FTP server下载数据 &lpar;FtpWebRequest 的使用&rpar;SSL 加密

    FTPS,亦或是FTPES, 是FTP协议的一种扩展,用于对TLS和SSL协议的支持. 本文讲述了如何从一个基于FTPS的Server中下载数据的实例.   任何地方,如有纰漏,欢迎诸位道友指教.   ...

  7. &lbrack;sharepoint&rsqb;rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  8. ASP&period;NET之虚方法

    1.虚方法关键字? Virtual 2.虚方法运行的周期? 虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时对象实例来动态判断要调用的函数,其中那个申明时定义的类叫申明类,执行 ...

  9. django 中自定义过滤器

    多参数过滤器

  10. &period;NET Core开发日志——Action

    在叙述Controller一文中,有一处未做解释,即CreateControllerFactory方法中ControllerActionDescriptor参数是如何产生的.这是因为其与Action的 ...