第二节: IDEA中创建Java项目
1、在IDEA中集成Maven
2、在IDEA中创建Maven Java工程
3、进行简单代码开发
① pom.xml中添加JUnit、lombok依赖
② 创建类User并使用lombok注解
③ 创建XML资源文件
④ 创建测试类TestUser
⑤ 测试
4、Lombok

第二节: IDEA中创建Java项目

在idea中使用Maven是一件非常轻松的事情。首先要让idea集成Maven,再使用Maven。集成只需要进行一次。

1、在IDEA中集成Maven

02.IDEA中创建Java项目 - 图1
idea内嵌的Maven的支持,我们不使用它的内嵌版本,而是绑定我们刚刚安装的版本。需要指定Maven的安装目录、配置文件路径、本地仓库的路径。
02.IDEA中创建Java项目 - 图2
优化配置:-DarchetypeCatalog=internal:每次创建项目时,IDEA要使用插件进行创建,这些插件当创建新项目时,它每次都会去中央仓库下载,这样使得创建比较慢。应该在创建时让它找本地仓库中插件进行创建项目。注意:-D=,-D代表要添加或覆盖属性。
02.IDEA中创建Java项目 - 图3

2、在IDEA中创建Maven Java工程

02.IDEA中创建Java项目 - 图4
02.IDEA中创建Java项目 - 图5
指定项目的坐标:

  • GroupId:当前项目所属组织ID。一般采用分级结构,域名倒写。
  • ArtifactId:构件ID。当前项目的ID。
  • Version:当前项目的版本。SNAPSHOT是快照的意思,意为开发版;RELEASE 代表稳定版。

以上三项构成当前项目的唯一坐标。
02.IDEA中创建Java项目 - 图6
指定项目名称,并单击Finish。
02.IDEA中创建Java项目 - 图7

在Build视图中显示从远程仓库下载依赖过程,下载过程中可以观察本地仓库变化。
02.IDEA中创建Java项目 - 图8
如果弹出Maven project need to be import,是提示Maven项目需要导入变化,选择Import Changes即可。一般不选择Enable Auto-Import。
02.IDEA中创建Java项目 - 图9

3、进行简单代码开发

进行简单的代码开发并测试。最终项目结构如图所示。
02.IDEA中创建Java项目 - 图10

① pom.xml中添加JUnit、lombok依赖

<?xml version=”1.0” encoding=”UTF-8”?>
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”>
4.0.0

  1. <groupId>com.atguigu.maven</groupId><br /> <artifactId>_01_maven_java</artifactId><br /> <version>1.0-SNAPSHOT</version>
  2. <dependencies><br /> <dependency><br /> <groupId>junit</groupId><br /> <artifactId>junit</artifactId><br /> <version>4.12</version><br /> <scope>test</scope><br /> </dependency><br /> <dependency><br /> <groupId>org.projectlombok</groupId><br /> <artifactId>lombok</artifactId><br /> <version>1.18.12</version><br /> <scope>provided</scope><br /> </dependency><br /> </dependencies><br /></project>

② 创建类User并使用lombok注解

src/main/java下创建包com.bjsxt.entity,创建类User并使用lombok注解
package com.atguigu.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class User {
private String userId;
private String realName;
private Integer age;
private Double weight;
}

③ 创建XML资源文件

src/main/resources下创建XML文件(不需要内容)
<?xml version=”1.0” encoding=”utf-8” ?>

④ 创建测试类TestUser

src/test/java下创建测试文件TestUser,并使用JUnit完成测试
package com.atguigu.test;

import com.atguigu.entity.User;
import org.junit.Test;

public class TestUser {
@Test
public void testUser(){
User user = new User(“zhangsan”,”张三”,18,1.76);
System.out.println(user);
}
}
会生成target目录,存放编译后的结果,且main目录下java、resources的内容合并到classes目录下,test目录下java、resources内容也会合并到test-classes目录下。这个目录结构和之前第一个Maven项目的结构是一样的。

⑤ 测试

问题1:执行测试用例,输出结果中中文乱码。
解决方法一:

-Dfile.encoding=UTF-8

解决方法二:




org.apache.maven.plugins
maven-surefire-plugin
2.7.2

once
-Dfile.encoding=UTF-8










问题2:执行测试用例,出现版本和编码警告信息。

UTF-8

1.8

1.8

4、Lombok

① 什么是Lombok
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。
最近IDEA 2020最后一个版本发布了,已经内置了Lombok插件,SpringBoot 2.1.x之后的版本也在Starter中内置了Lombok依赖。

@Data 集成了@Getter和@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor这几个注解与一身,是一个非常强大的注解,这个注解更可以简化注解的代码量
@getter 在JavaBean中使用,注解会生成对应的getter方法
@setter 在JavaBean中使用,注解会生成对应的setter方法
@NoArgsConstructor 在JavaBean中使用,注解会生成对应的无参构造方法
@AllArgsConstructor 在JavaBean中使用,注解会生成对应的有参构造方法
@ToString 在JavaBean中使用,注解会自动重写对应的toStirng方法
@ToString(exclude={“column1”,”column2”}) 排除多个column列所对应的元素
@ToString(of={“column1”,”column2”}) 只生成包含多个column列所对应的元素
@EqualsAndHashCode 在JavaBean中使用,注解会自动重写对应的equals方法和hashCode方法
@Slf4j 在需要打印日志的类中使用,项目中使用slf4j日志框架
@Log4j 在需要打印日志的类中使用,项目中使用log4j日志框架
@NonNull 可以用在字段上,也可以用在方法的参数上,作用是自动帮你判断是否是null,如果是null,就会报空指针异常

② idea中使用lombok
第一步:导入依赖

org.projectlombok
lombok
1.18.12
provided

第二步:添加插件
02.IDEA中创建Java项目 - 图11

第三步:进行配置
02.IDEA中创建Java项目 - 图12

第四步:使用lombok
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer userId; //Integer 0 null int null
private String userName;
private Integer age;//阿里开发规范中规定,不使用基本数据类型作为成员变量的类型
private String address;

}
上一节 下一节 回目录