maven工程搭建及可能在项目中遇到的工具组件

    科技2025-09-03  14

    可能用到的工具组件准备

    1.远程接口调用

    后端启动定时任务,每半小时去执行我们的代码,调用天气预报接口,获取天气数据,把天气数据保存到自己的数据库中(redis或mysql)。再自己实现接口供自己调用获取天气数据。

    在服务端去调用第三方远程的接口。

    UrlConnection,了解…

    apache的HttpClient组件.

    加httpClient的jar包。

    spring的RestTemplate工具类

    RestTemplate t = new RestTemplate(); String str = t.getForObject("url",String.class,Object... uriValiables) String str = t.postForObject("url",Object requestEntity,String.class) t.put("url",Object requestEntity,Object... uriValiables) t.delete("url",Object... uriValiables)

    2.定时任务

    jdk的TimerTask,必须会,在程序运行期间动态的启动定时任务。比如30分钟后废除订单 1.从TimerTask类派生任务类,重写run方法 2.实例化Timer对象,schedule方法调度任务。 spring-task,必须会,在程序启东时,预先定义好了一些定时任务执行。比如每天的8,12,18,22去获取天气数据保存。 1.添加spring-context-support.jar 2.开启@Scheduled注解识别<task:annotation-driven> 3.编写任务类,在任务方法上加@Scheduled(cron="秒 分 时 日 月 周") 第三方的quartz,了解

    3.excel操作

    apache的poi组件来操作excel

    读excel:用户导入excel,服务端解析excel中的数据,保存到数据库。

    Workbook workbook = WorkbookFactory.create(InputStream in)

    写excel:把数据导出到excel文件,下载给客户。

    4.word操作

    政务系统中有生成word的业务。

    基于freemaker模板引擎来生成word.

    5.fastdfs

    为了在tomcat集群环境下能够上传下载文件,引入了独立的文件存储器,为了文件存储能够横线扩展,要求文件存储服务必须支持集群.

    fastdfs分布式文件存储服务器:适合于中小型文件

    ​ 客户端api调用:

    ​ TrackerServer:跟踪服务器

    ​ StorageServer:存储服务器,定期向跟踪服务器发送心跳包(磁盘空间)

    使用fastdfs:

    添加fastdfs的依赖;

    为了能够在浏览器上直接通过img标签展示图片,需要在跟踪服务器上部署一个http服务器(nginx) ​

    5.maven用来做什么

    ​ maven是一个项目管理工具,帮我们创建项目,编译输出项目,打包,部署,项目依赖项的管理。

    6.maven的机制

    远程中央仓库,维护的完整的maven资源(jar)

    远程企业私服仓库,通过nexus搭建私服。国内公开的私服,阿里云,码云

    本地仓库,通过maven客户端指定某个文件夹来存储所有的本地下载的jar

    资源坐标的概念,groupid,artifactid,version

    7.安装maven客户端

    修改文件夹名称,不带中文,不带符号

    修改conf/settings.xml

    本地仓库配置 <localRepository>D:\maven36\repository</localRepository> 镜像配置 <mirror> <id>nexus-javasm</id> <mirrorOf>central</mirrorOf> <url>http://192.168.20.252:8081/repository/maven-public/</url> </mirror>

    配置环境变量

    与idea关联

    4.创建maven项目

    项目骨架:

    使用maven官方骨架:

    java工程:maven-archetype-quickstart

    web工程:maven-archetype-webapp

    目录结构:

    ​ src/main/java:放源码

    ​ src/main/resources:放配置文件

    ​ src/main/webapp:放前端资源

    ​ src/test:放测试类

    ​ /pom.xml:maven项目的核心配置文件

    5.如何排除自动引入的依赖

    <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.8.RELEASE</version> <!--移除依赖jar--> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-jcl</artifactId> </exclusion> </exclusions> </dependency> </dependencies>

    6.部署maven项目

    本地tomcat部署,建议使用maven内嵌应用服务器插件(tomcat,jetty) <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.28.v20200408</version> <configuration> <httpConnector> <port>8080</port> </httpConnector> <webApp> <contextPath>/</contextPath> </webApp> </configuration> </plugin> 远程tomcat运行: 在远程tomcat下的conf/tomcat-users.xml下配置manager应用的登录用户和角色。在maven项目下配置tomcat-maven插件

    7.maven常用指令

    clean:清理项目输出物

    compile:编译项目

    package:打包项目

    test:执行test用例

    install:用来部署本地仓库

    deploy:用来部署远程仓库

    8.搭建ssm项目

    注意点:

    jar包版本统一管理.pom文件排版好src/main/java目录下的mybaits的映射文件的识别。 <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources> 添加的servlet-api的jar包,scope必须是providedmybatis的逆向工程: <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> </dependencies> <configuration> <configurationFile>src/main/resources/generator.xml</configurationFile> </configuration> </plugin>

    其他细节

    dependency的子标签scope:

    ​ test/provided/compile

    package标签的值:jar|war|pom,默认是jar

    finalName标签的值:jar包或war包的名称

    9.maven聚合工程

    在线教育平台:

    ​ 后台管理系统(java+视图):课程分类,注册用户管理,系统用户管理,评论,视频,订单

    ​ 前端接口系统(纯java):评论,订单,用户

    ​ 工具平台(纯java):

    ​ 前端系统(纯视图):

    ​ 移动应用(app,java开发):评论,订单,用户,课程

    把应用给拆分了。

    横向拆分(微服务)与纵向拆分(MVCDao)

    父工程:统合了所有的子工程;统一依赖包的版本;

    子工程:

    ​ ssm_entity:没有什么依赖

    ​ ssm_util:fastjson,jwt

    ​ ssm_dao:依赖mybatis,依赖ssm_entity

    ​ ssm_service:依赖ssm_dao,依赖spring

    ​ ssm_web:依赖ssm_service,依赖springMVC,spring

    Processed: 0.013, SQL: 8