Java基础入门day68

day68

maven

简介

maven字面意思是知识的积累,是项目对象模型的一个项目管理工具,可以用来实现项目的构建,打包,编译,运行等功能

可以很好的实现项目与代码的分离

依赖jar包版本升级也会更加方便

新建的maven项目结构:

pom.xml:用来设置当前项目的jar包,管理,项目间的继承与依赖

下载安装

Maven – Welcome to Apache Mavenmaven官网,maven和之前的tomcat一样,也是apache下的一个子产品

下载指定的版本后解压,解压后的目录:

├─bin: 含有maven命令脚本mvn的目录 ├─boot: 含有类加载器框架的目录,使用框架加载自己的类库 ├─conf:配置目录,含有settings.xml,里面配置了本地仓库,还有阿里云镜像 └─lib: 含有maven运行时所需要的java类库

测试:

D:\apache-maven-3.9.5\bin>mvn -version
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: D:\apache-maven-3.9.5
Java version: 1.8.0_312, vendor: International Business Machines Corporation, runtime: D:\jdk1.8\jdk8u312-b07\jre
Default locale: zh_CN, platform encoding: GB18030
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

能够出现正确的maven版本信息,即maven配置完成

maven的配置

本地仓库:在settings.xml文件中配置

<localRepository>D:\apache-maven-3.9.5\repo</localRepository>

当需要依赖时,会从仓库中查找,优先顺序为:

本地仓库 > 私服 (已经配置) > 公共仓库 (已经配置) > 中央仓库

远程仓库:

中央仓库:

maven中央仓库时有maven社区提供的仓库,不用任何配置,maven中内置了中央仓库的地址

其中包含绝大多数流行的Java开源构件

Maven Repository: Search/Browse/Explore (mvnrepository.com)

公共仓库:

比如阿里云仓库,中央仓库服务器一般在国外,下载速度过慢,所以都会配置一个国内的公共仓库替代中央仓库

公共仓库也可以在settings.xml文件中配置

    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>阿里云公共仓库</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

私服:

公司范围内共享的仓库,一般不对外

可以公共nexus来创建、管理一个私服

idea配置maven

idea中配置maven

file - new project setup - setting for new projects

找到build execution deployment - build tool - maven

分别配置:

  • maven home path:D:/apache-maven-3.9.5

  • user settings file: D:\apache-maven-3.9.5\conf\settings.xml

  • Local repository: D:\apache-maven-3.9.5\repo

新建项目

使用单元测试来测试maven环境

在项目中的pom.xml文件中配置junit的依赖

<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
 <scope>test</scope>
</dependency>

测试代码

@Test
public void testJunit(){
 System.out.println("this is junit test.");
}

junit4采用注解方式,测试更加简洁方便

在junit4中:

  • 方法名可以随意

  • 访问修饰符必须是public

  • 方法返回值必须为void类型

  • 方法必须为无参方法

单元测试3和4的版本区别

  • JUnit3需要让测试类继承自TestCase类,java的单继承会出现局限

  • JUnit3需要测试方法必须以test开头, 方法命名很不灵活

测试套件:

一次性测试多个测试类

package com.saas;
​
public class Calc {
​
    public int add(int a, int b) {
        return a + b;
    }
​
    public int sub(int a, int b) {
        return a - b;
    }
​
    public int mul(int a, int b) {
        return a * b;
    }
​
    public int div(int a, int b) {
        return a / b;
    }
​
    public int mod(int a, int b) {
        return a % b;
    }
}
package com.saas.dao;
​
import com.saas.Calc;
import org.junit.Ignore;
import org.junit.Test;
​
import static org.junit.Assert.assertEquals;
​
public class TestCalc {
    Calc calc = new Calc();
​
    int n1 = 1, n2 = 2;
​
    @Test
    public void testAdd(){
​
        int actual = calc.add(n1, n2);
​
        assertEquals(3, actual);
    }
​
    @Test
    public void testSub(){
​
        int actual = calc.sub(n1, n2);
​
        assertEquals(-1, actual);
    }
​
    @Test
    public void testMul(){
​
        int actual = calc.mul(n1, n2);
​
        assertEquals(2, actual);
    }
​
    @Test
    @Ignore
    public void testDiv(){
​
        int actual = calc.div(n1, 0);
​
        assertEquals(0, actual);
    }
​
    @Test
    public void testMod(){
​
        int actual = calc.mod(n1, n2);
​
        assertEquals(1, actual);
    }
}
package com.saas.dao;
​
import com.saas.Calc;
import org.junit.Ignore;
import org.junit.Test;
​
import static org.junit.Assert.assertEquals;
​
public class TestCalc02 {
    Calc calc = new Calc();
​
    int n1 = 1, n2 = 2;
​
    @Test
    public void testAdd(){
​
        int actual = calc.add(n1, n2);
​
        assertEquals(3, actual);
    }
​
    @Test
    public void testSub(){
​
        int actual = calc.sub(n1, n2);
​
        assertEquals(-1, actual);
    }
​
    @Test
    public void testMul(){
​
        int actual = calc.mul(n1, n2);
​
        assertEquals(2, actual);
    }
​
    @Test
    public void testDiv(){
​
        int actual = calc.div(n1, 0);
​
        assertEquals(0, actual);
    }
​
    @Test
    public void testMod(){
​
        int actual = calc.mod(n1, n2);
​
        assertEquals(1, actual);
    }
}
package com.saas.dao;
​
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
​
@RunWith(Suite.class)
@Suite.SuiteClasses({
        TestCalc.class,
        TestCalc02.class
})
public class AllTest {
}

测试套件使用两个注解:

@RunWith是由Suite.class来运行

@Suite.SuiteClasses把多个需要测试的测试类的类对象都放进来进行一次性的套件测试

该类不需要类体

lombok

简介

快速编写实体类,自动生成getter和setter,以及toString方法

实现步骤

  1. 使得idea工具添加lombok插件(新版本的idea默认已经添加)

  2. 项目的pom文件中添加lombok的gav坐标

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.16</version>
        <scope>provided</scope>
    </dependency>
  3. 在实体类之上添加@Data, @NoArgsConstructor, @AllArgsConstructor

package com.saas.pojo;
​
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Student {
    private int sid  ;
    private String name ;
    private String sex  ;
    private double score;
    private int cid  ;
    private int age  ;
}

使用lombok,使得更新类里面的属性名,属性类型,属性个数变得异常方便

lombok确实提高了程序的编写效率

mybatis

简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

持久层框架,使得对象从瞬时态变成持久态

对象有三种状态

  • 瞬时态

  • 持久态

  • 游离态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值