maven相关知识整理

一、Maven:
1.管理依赖包(jar包)
  Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 使用惯
  例优于配置的原则 。
  例如导入A.jar,如果A.jar依赖于B.jar,
  在导入A.jar时,Maven会帮我们导入B.jar。


本地仓库 本地设备上存放所有jar包的地方。
中央仓库(远程仓库) 在远程服务器上存放jar包的地方。
中央仓库镜像
导入jar包的过程,先从本地仓库中查找,如果用直接使用,
如果没有,从中央仓库中导入。

私服 公司搭建的服务器,在该服务器上存放一些常用的jar包,
        当从本地仓库查找不到,可以使用公司服务器上的jar包。

2.将项目模块化
   在A项目中完成Dao层,在B项目中完成service层,
   在C项目中完成表现(UI)层。

   在实际开发中service要依赖于Dao,Controller依赖于service。
 
   将Dao层所在的项目构建于本地仓库中,在service层中配置Dao的依赖
   包,在service中就可以使用Dao项目中的功能。

Maven项目架构:
src
    java———java源文件
    resource———资源文件和配置文件
test
    java
    resource

Maven依赖配置文件
POM(Project Object Model)文件

1.依赖的有效性:test,compile,provide,system,runtime

2.依赖排除:A.jar—>B.jar
但是只想依赖单独A.jar

3.依赖的传递性:
A.jar—>B.jar—C.jar
只有当B.jar和C.jar的有效性为compile,A.jar—>C.jar

4.MavenA中整合MavenB
在MavenB install到本地仓库
在MavenA的pom文件中依赖MavenB
在MavenA中使用MavenB的功能

5.JDK版本设置<profiles></profiles>

6.统一版本设置
<properties>
    <name>value</name>
</properties>

……
<version> ${name} </version>

7.依赖原则(解决依赖冲突)
  ①.最短路径:
      MavenA—>Junit
      MavenA—>MavenB—>Junit
  ②.如果在同一个pom文件中,配置了同一个依赖,按照下面的依赖引
      入。
  ③.如果都是通过依赖其他模块传递过来的jar包,按照上面的依赖引入。
       MavenA—>MavenB—>Junit 4.0
       MavenA—>MavenB—>Junit 4.12
       谁先声明,按照谁来。

8.Maven的继承
   ①.一般父工程packaging是pom;
   ②.在自工程的pom中配置
        <parent>
           父工程的gav
           父工程的pom文件的相对路径
        </parent>
   ③.并不是将父工程中所有的依赖都导入进来,需要哪些依赖,还需要
        子工程指定,指定的时候,只需要给定groupId和artifactId。

9.Maven聚合
   将多个的模块,整合到一起


二、springMVC的高级功能
    ajax请求
        1.在页面上尽量不要用submit触发ajax,会经常遇到触发不了ajax的问题,尽量使用button触发。
        2.如果利用ajax提交form表单,则可以再ajax的data属性中提供form表单的序列化, 例如data:$("#fromId").serialize()
        3.若使用submit提交信息,则可以使用$("#formId").submit(function(){          //ajax代码     });
        4.springMVC处理ajax请求时,若不利用json返回数据,则返回的是一个页面
        5.jackson自动包装son数据,在springMVC-beans.xml中配置, 在bean中引入MappingJackon2HttpMessageConverter类
    数据校验
        1.导入数据校验的包 validation-api,hibernate-validator,jboss-logging
        2.在需要数据校验的POJO中进行设置
        3.在controller中需要校验的参数前面加@Validated
        4.在springMVC-beans.xml中配置localValidator的bean,并且将该bean设置为annotation-Driven标签的属性
        5.在需要验证的参数后面,加一个BinderResult对象,从该对象中就可以获取验证信息。
        6.在前端界面通过Spring的<form:errors>标签获取错误信息 <form:errors path=“数据校验的参数名(对象).成员变量名”> </form:errors>
    全局异常处理
        @ControllerAdvice+@ExceptionHandler 用@ControllerAdvice修饰的类,类中的方法用@ExceptionHandler修饰的方法都可以处理异常,处理的事全局异常。被@RequestMapping修饰的方法产生的异常。
    国际化
        1.在SpringMVC-beans.xml文件中配置国际化资源,在bean中引入ResourceBundleMessageSource类
        2.添加多语言的配置文件: language_zh_US.properties和 language_zh_CN.porperties文件放在src下
        3.在SpringMVC-beans.xml中加入i18n过滤器
        4.在页面时使用多语言
    文件的上传和下载
        1.文件上传
            单文件上传
                1.在前端控制器配置文件中加入上传文件所需的bean,在bean中引入CommonsMultipartResolver类
                2.在pom.xml中注入上传文件所需的依赖
                3.新建一个上传文件的jsp界面,注: 1).form表单属性添加enctpye="multipart/from-data",表示不对所提交的内容编码; 2).action=""路径中添项目名; 3).input标签中的name="file"要和方法中所接收的参数名称一致。
                4.自定义访问成功的jsp页面
                5.在Controller层中加入访问文件上传的页面,并且定义上传文件的响应方法(form表单中所提交的action的方法名)
            多文件上传
                步骤同上
                在上传多个文件的jsp页面中,form表单中要传多少个文件就加入多少个input标签,name和方法中的接收参数值相同
                注:1.与上传单个文件处理方法不同的是接受参数由MultipartFile类型改为MultipartFile[]数组(或者MultipartHttpServletRequest)
        2.文件下载
            单文件下载
                获得返回给用户的文件(要被下载的文件目录)
                拼接返回给用户的文件路径
                通过FileUtils.readFileToByteArray()方法将要下载的文件转换为二进制流
                设置响应头,利用响应头设置返回数据类型: 响应头对象.setContentType(MediaType. APPLICATION_OCTET_STREAM) ResponseEntity可以设置响应头和响应内容,还可以设置防止中文乱码
            批量下载,将多个文件压缩成zip,然后将zip文件转换为二进制流返回
                将多个文件的文件名储存在集合中,遍历压缩
                压缩文件的文件名和文件的输出目录,ZipOutPutStream()
                遍历文件,进行压缩,将文件内容读出,写入压缩包中。利用inputStream读取文件内容,创建压缩实体(单元):ZipEntry()
                通过FileUtils.readFileToByteArray()方法将要下载的文件转换为二进制类型
                设置响应头,通过响应头进一步设置防中文乱码和返回数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊掌渔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值