作业提交系统2.0(marven项目、project/module模式、数据库连接池

作业提交系统2.0(marven项目、project/module模式、数据库连接池)

Maven

  • Apache Maven是一个软件项目管理和依赖管理工具。基于项目对象模型(POM)的概念,Maven可以通过资源仓库管理项目的构建,报告和文件。

  • Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置

  • 以下步骤形成maven项目
    (1)令Maven使用阿里云国内镜像

  • 修改maven根目录下的conf文件夹下setting.xml文件,打开后找到mirror出,黏贴以下代码

<mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

(2)new --> project
在这里插入图片描述
在这里插入图片描述

使用project/module模式

  • 在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念。在 IntelliJ IDEA 中Project是最顶级的结构单元,然后就是Module,一个Project可以有多个Module。目前,主流的大型项目结构基本都是多Module的结构,这类项目一般是按功能划分的。

  • 当为单Module项目的时候,这个单独的Module实际上就是一个Project;

  • 当为多Module项目的时候,多个模块处于同一个Project之中,此时彼此之间具有互相依赖的关联关系。

  • 以下步骤建立一个project/module的maven项目
    (1)File --> New --> Module --> Maven --> next --> 选择父类为之前建立的工程名,ArtifactId设为该子工程的名

在这里插入图片描述
(2)在pom.xml中添加依赖

  • 在子工程JavaEE-01中添加以下依赖
<dependencies>
   <!-- <dependency>
        <groupId>org.example</groupId>
        <artifactId>db</artifactId>
    </dependency>-->

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>3.4.2</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.1.0</version>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>13</source>
                <target>13</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 在父类工程中添加以下依赖
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>

    </dependencies>
</dependencyManagement>

(3)将之前项目中代码导入新项目

(4)配置project struture

  • 点击右侧栏中的“Project”,修改最底下的地址为父类项目的/target
    在这里插入图片描述

  • 点击右侧栏中的“Modules”,右键子类项目,点击添加“web”,查看下图红框中的两个地址是否正确
    在这里插入图片描述

  • 点击右侧栏中的“Artifacts”,添加两个artifacts,如下图所示
    在这里插入图片描述
    在这里插入图片描述

(4)Add Configuration,配置Tomcat,配置完成运行项目即可

(5)完成!

数据库连接池

(1)在pom.xml中添加依赖

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.2</version>
</dependency>

(2)在jdbc包中建立新的类DatabasePool

package org.example.javaee.class01.jdbc;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

public class DatabasePool {
    private static HikariDataSource hikariDataSource;
    public static HikariDataSource getHikariDataSource(){
        if(null!=hikariDataSource){
            return hikariDataSource;
        }

        synchronized (DatabasePool.class){
            if(null==hikariDataSource){
                String jdbcUrl="jdbc:mysql://127.0.0.1:3306/j1?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT";
                String driverName = "com.mysql.cj.jdbc.Driver";
                HikariConfig hikariConfig=new HikariConfig();
                hikariConfig.setUsername("root");
                hikariConfig.setPassword("123456");
                hikariConfig.setDriverClassName(driverName);
                hikariConfig.setJdbcUrl(jdbcUrl);

                hikariDataSource=new HikariDataSource(hikariConfig);
                return hikariDataSource;

            }
        }

        return null;

    }

    public static void main(String[] args) throws InterruptedException {
        while(true){
            getHikariDataSource();

            Thread.sleep(3000);
        }
    }
}

(3)可以将之前jdbc中写url和driver的地方删除,换成以下

  • 以前
try(Connection connection =  DriverManager.getConnection(url, "root","123456");
  • 改为
Connection connection =  DatabasePool.getHikariDataSource().getConnection()

(4)配置project structure

  • 打开project structure --> Artifacts --> 点击web application:exploded那个artifact
  • 点击WEB-INF目录底下的lib
  • 右键点击add library files,将出现的所有files添加到lib中
  • 确认退出,运行项目
  • 成功~
    在这里插入图片描述

改造后的项目github地址

https://github.com/zhangzhangzhang0/javaee01

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值