Maven系列第9篇:多环境构建,作为核心开发,这个玩不转有点说不过去!

src/main/resources中新增一个const.properties文件,内容如下:

email=javacode2018@163.com

jdbc.url=${jdbc.url}

jdbc.username= j d b c . u s e r n a m e jdbc.username jdbc.username

jdbc.password=##jdbc.password##

执行下面命令:

D:\code\IdeaProjects\b2b>mvn clean package -pl :b2b-account-service

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------< com.javacode2018:b2b-account-service >----------------

[INFO] Building b2b-account-service 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ b2b-account-service —

[INFO] Deleting D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target

[INFO]

[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 2 resources

[INFO]

[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-resources-plugin:2.6:testResources (default-testResources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO]

[INFO] — maven-compiler-plugin:3.1:testCompile (default-testCompile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ b2b-account-service —

[INFO]

[INFO] — maven-jar-plugin:2.4:jar (default-jar) @ b2b-account-service —

[INFO] Building jar: D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target\b2b-account-service-1.0-SNAPSHOT.jar

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  1.667 s

[INFO] Finished at: 2019-11-21T18:26:01+08:00

[INFO] ------------------------------------------------------------------------

看一下target/classes中,如下图:

target/classes/const.properties内容变成下面这样了:

email=javacode2018@163.com

jdbc.url=${jdbc.url}

jdbc.username=root

jdbc.password=root

说明const.properteis也被替换了。2个资源文件都被复制到了target中,如果我们不想让cont.properties被复制到target/classes目录,我们怎么做?我们需要在资源构建的过程中排除他,可以使用exclude元素信息进行排除操作。

修改pom.xml中resources元素配置如下:

${project.basedir}/src/main/resources

true

**/jdbc.properties

**/const.properties

上面使用includes列出需要被处理的,使用excludes排除需要被处理的资源文件列表,采用通配符的写法,**匹配任意深度的文件路径,*匹配任意个字符。

再执行下面命令:

mvn clean package -pl :b2b-account-service

再看一下target/classes中,如下:

const.properties被排除了,确实没有被复制过来。

如果此时我想让const.propertis只是被复制到target下面,但是不要去替换里面的内容,该怎么做呢?此时需要配置多个resouce元素了,如下案例。

多个resource元素的使用案例

修改pom.xml中resources,如下:

${project.basedir}/src/main/resources

true

**/jdbc.properties

${project.basedir}/src/main/resources

**/const.properties

现在pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

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

com.javacode2018

b2b-account-service

1.0-SNAPSHOT

UTF-8

<jdbc.url>jdbc:mysql://localhost:3306/javacode2018?characterEncoding=UTF-8</jdbc.url>

<jdbc.username>root</jdbc.username>

<jdbc.password>root</jdbc.password>

com.javacode2018

b2b-account-api

${project.version}

${project.basedir}/src/main/resources

true

**/jdbc.properties

${project.basedir}/src/main/resources

**/const.properties

${project.basedir}/src/test/resources

true

org.apache.maven.plugins

maven-resources-plugin

2.6

false

∗ *

##

执行命令看效果:

D:\code\IdeaProjects\b2b>mvn clean package -pl :b2b-account-service

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------< com.javacode2018:b2b-account-service >----------------

[INFO] Building b2b-account-service 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ b2b-account-service —

[INFO] Deleting D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target

[INFO]

[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO] Copying 1 resource

[INFO]

[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-resources-plugin:2.6:testResources (default-testResources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO]

[INFO] — maven-compiler-plugin:3.1:testCompile (default-testCompile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ b2b-account-service —

[INFO]

[INFO] — maven-jar-plugin:2.4:jar (default-jar) @ b2b-account-service —

[INFO] Building jar: D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target\b2b-account-service-1.0-SNAPSHOT.jar

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  2.116 s

[INFO] Finished at: 2019-11-21T18:38:59+08:00

[INFO] ------------------------------------------------------------------------

上面有如下输出:

[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO] Copying 1 resource

插件处理了2个资源文件。

我们看一下target/classes目录下两个文件的内容。

jdbc.proerties:

jdbc.url=${jdbc.url}

jdbc.username=root

jdbc.password=root

const.properties:

email=javacode2018@163.com

jdbc.url=${jdbc.url}

jdbc.username= j d b c . u s e r n a m e jdbc.username jdbc.username

jdbc.password=##jdbc.password##

2个资源都被复制到target/classes目录了,只有jdbc.properties中的内容被替换了。

关于资源文件处理的,更详细的过程可以去看这个插件的源码,下面我们来说多环境处理的问题。

使用profiles处理多环境构建问题

maven支持让我们配置多套环境,每套环境中可以指定自己的maven属性,mvn命令对模块进行构建的时候可以通过-P参数来指定具体使用哪个环境的配置,具体向下看。

profiles元素支持定义多套环境的配置信息,配置如下用法:

测试环境配置信息

开发环境配置信息

线上环境配置信息

环境n配置信息

profiles中包含多个profile元素,每个profile可以表示一套环境,profile示例如下:

dev

<jdbc.url>dev jdbc url</jdbc.url>

<jdbc.username>dev jdbc username</jdbc.username>

<jdbc.password>dev jdbc password</jdbc.password>

id:表示这套环境的标识信息,properties可以定义环境中使用到的属性列表。

执行mvn命令编译的时候可以带上一个-P profileid来使用指定的环境进行构建。

指定环境进行构建

b2b-account-service/pom.xml加入下面配置:

dev

<jdbc.url>dev jdbc url</jdbc.url>

<jdbc.username>dev jdbc username</jdbc.username>

<jdbc.password>dev jdbc password</jdbc.password>

test

<jdbc.url>test jdbc url</jdbc.url>

<jdbc.username>test jdbc username</jdbc.username>

<jdbc.password>test jdbc password</jdbc.password>

prod

<jdbc.url>test jdbc url</jdbc.url>

<jdbc.username>test jdbc username</jdbc.username>

<jdbc.password>test jdbc password</jdbc.password>

将pom.xml的project->properties中的下面几个元素干掉,这些和profile中的重复了,需要干掉:

<jdbc.url>jdbc:mysql://localhost:3306/javacode2018?characterEncoding=UTF-8</jdbc.url>

<jdbc.username>root</jdbc.username>

<jdbc.password>root</jdbc.password>

此时pom.xml内容如下,建议大家直接贴进去:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

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

com.javacode2018

b2b-account-service

1.0-SNAPSHOT

UTF-8

dev

<jdbc.url>dev jdbc url</jdbc.url>

<jdbc.username>dev jdbc username</jdbc.username>

<jdbc.password>dev jdbc password</jdbc.password>

test

<jdbc.url>test jdbc url</jdbc.url>

<jdbc.username>test jdbc username</jdbc.username>

<jdbc.password>test jdbc password</jdbc.password>

prod

<jdbc.url>prod jdbc url</jdbc.url>

<jdbc.username>prod jdbc username</jdbc.username>

<jdbc.password>prod jdbc password</jdbc.password>

com.javacode2018

b2b-account-api

${project.version}

${project.basedir}/src/main/resources

true

**/jdbc.properties

${project.basedir}/src/main/resources

**/const.properties

${project.basedir}/src/test/resources

true

org.apache.maven.plugins

maven-resources-plugin

2.6

false

∗ *

##

修改src/main/resource/jdbc.properties内容如下:

jdbc.url= j d b c . u r l jdbc.url jdbc.url

jdbc.username= j d b c . u s e r n a m e jdbc.username jdbc.username

jdbc.password=##jdbc.password##

运行下面的构建命令:

D:\code\IdeaProjects\b2b>mvn clean package -pl :b2b-account-service -Pdev

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------< com.javacode2018:b2b-account-service >----------------

[INFO] Building b2b-account-service 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ b2b-account-service —

[INFO] Deleting D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target

[INFO]

[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO] Copying 1 resource

[INFO]

[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-resources-plugin:2.6:testResources (default-testResources) @ b2b-account-service —

[INFO] Using ‘UTF-8’ encoding to copy filtered resources.

[INFO] Copying 1 resource

[INFO]

[INFO] — maven-compiler-plugin:3.1:testCompile (default-testCompile) @ b2b-account-service —

[INFO] Nothing to compile - all classes are up to date

[INFO]

[INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ b2b-account-service —

[INFO]

[INFO] — maven-jar-plugin:2.4:jar (default-jar) @ b2b-account-service —

[INFO] Building jar: D:\code\IdeaProjects\b2b\b2b-account\b2b-account-service\target\b2b-account-service-1.0-SNAPSHOT.jar

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  2.361 s

[INFO] Finished at: 2019-11-21T18:51:16+08:00

[INFO] ------------------------------------------------------------------------

注意上面命令中多了一个-Pdev参数,-P后面跟的是pom.xml中profile的id,表示需要使用那套环境进行构建。此时我们使用的是dev环境,即开发环境。

看一下target/classes/jdbc.properties,内容变成了下面这样:

jdbc.url=dev jdbc url

jdbc.username=dev jdbc username

jdbc.password=dev jdbc password

上面文件的内容和pom.xml中dev的profile中的properties对比一下,内容是不是一样的,说明资源文件中内容被替换为了dev环境的配置,我们再来试试test环境,执行下面命令:

mvn clean package -pl :b2b-account-service -Ptest

看一下target/classes/jdbc.properties,内容变成了下面这样:

jdbc.url=test jdbc url

jdbc.username=test jdbc username

jdbc.password=test jdbc password

看到了么,神奇的效果出现了,test环境起效了。

开启默认环境配置

我们在执行下面命令:

mvn clean package -pl :b2b-account-service

看一下target/classes/jdbc.properties,内容变成了下面这样:

jdbc.url= j d b c . u r l jdbc.url jdbc.url

jdbc.username= j d b c . u s e r n a m e jdbc.username jdbc.username

jdbc.password=##jdbc.password##

内容没有被替换,因为我们没有通过-P来指定具体使用哪个环境进行构建,所以出现了这种现象。

但是我们可以指定一个默认开启的配置,我们默认开启dev的配置,修改dev的profile元素,在这个元素下面加上:

true

activeByDefault表示默认开启这个环境的配置,默认值是false,这个地方我们设置为true,表示开启默认配置。

此时dev的配置如下:

dev

true

<jdbc.url>dev jdbc url</jdbc.url>

<jdbc.username>dev jdbc username</jdbc.username>

<jdbc.password>dev jdbc password</jdbc.password>

执行下面命令:

mvn clean package -pl :b2b-account-service

看一下target/classes/jdbc.properties,内容变成了下面这样:

jdbc.url=dev jdbc url

jdbc.username=dev jdbc username

jdbc.password=dev jdbc password

这次我们没有指定环境,默认使用了dev环境。

通过maven属性来控制环境的开启

刚才上面说了通过-P profileId的方式来指定环境,现在我们想通过自定义的属性值来控制使用哪个环境。

可以在profile元素中加入下面配置

属性xx

属性xx的值

那么我们可以在mvn后面跟上下面的命令可以开启匹配的环境:

mvn … -D属性xx=属性xx的值

-D可以通过命令行指定一些属性的值,这个前面有讲过,-D后面的属性会和activation->properties中的name、value进行匹配,匹配成功的环境都会被开启。

将pom.xml中profiles元素修改成下面这样:

dev

true

env

env_dev

<jdbc.url>dev jdbc url</jdbc.url>

<jdbc.username>dev jdbc username</jdbc.username>

<jdbc.password>dev jdbc password</jdbc.password>

test

env

env_test

<jdbc.url>test jdbc url</jdbc.url>

<jdbc.username>test jdbc username</jdbc.username>

<jdbc.password>test jdbc password</jdbc.password>

prod

env

env_prod

<jdbc.url>prod jdbc url</jdbc.url>

<jdbc.username>prod jdbc username</jdbc.username>

<jdbc.password>prod jdbc password</jdbc.password>

运行命令:

mvn clean package -pl :b2b-account-service -Denv=env_prod

target/classes/jdbc.properties内容如下:

jdbc.url=prod jdbc url

jdbc.username=prod jdbc username

jdbc.password=prod jdbc password

说明使用到了prod环境的配置。

启动的时候指定多个环境

可以在-P参数后跟多个环境的id,多个之间用逗号隔开,当使用多套环境的时候,多套环境中的maven属性会进行合并,如果多套环境中属性有一样的,后面的会覆盖前面的。

运行下面命令看效果:

mvn clean package -pl :b2b-account-service -Pdev,test,prod

修改pom.xml中的profiles元素,如下:

dev

true

env

env_dev

<jdbc.url>dev jdbc url</jdbc.url>

test

env

env_test

<jdbc.username>test jdbc username</jdbc.username>

prod

env

env_prod

<jdbc.password>prod jdbc password</jdbc.password>

注意看一下上面3个环境中都只有一个自定义属性了

下面我们同时使用3个环境,执行下面命令:

mvn clean package -pl :b2b-account-service -Pdev,test,prod

target中的jdbc.properties文件变成了这样:

jdbc.url=dev jdbc url

jdbc.username=test jdbc username

jdbc.password=prod jdbc password

查看目前有哪些环境
命令:

mvn help:all-profiles

案例:

D:\code\IdeaProjects\b2b>mvn help:all-profiles -pl :b2b-account-service

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------< com.javacode2018:b2b-account-service >----------------

[INFO] Building b2b-account-service 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] — maven-help-plugin:3.2.0:all-profiles (default-cli) @ b2b-account-service —

[INFO] Listing Profiles for Project: com.javacode2018:b2b-account-service:jar:1.0-SNAPSHOT

Profile Id: dev (Active: true , Source: pom)

Profile Id: prod (Active: false , Source: pom)

Profile Id: test (Active: false , Source: pom)

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  1.527 s

[INFO] Finished at: 2019-11-21T19:16:34+08:00

[INFO] ------------------------------------------------------------------------

从输出中可以看到有3个环境,他们的id,默认激活的是那个等信息。

查看目前激活的是哪些环境
命令:

mvn help:active-profiles

案例:

D:\code\IdeaProjects\b2b>mvn help:active-profiles -pl :b2b-account-service -Ptest,prod

[INFO] Scanning for projects…

[INFO]

[INFO] ----------------< com.javacode2018:b2b-account-service >----------------

[INFO] Building b2b-account-service 1.0-SNAPSHOT

[INFO] --------------------------------[ jar ]---------------------------------

[INFO]

[INFO] — maven-help-plugin:3.2.0:active-profiles (default-cli) @ b2b-account-service —

[INFO]

Active Profiles for Project ‘com.javacode2018:b2b-account-service:jar:1.0-SNAPSHOT’:

The following profiles are active:

- test (source: com.javacode2018:b2b-account-service:1.0-SNAPSHOT)

- prod (source: com.javacode2018:b2b-account-service:1.0-SNAPSHOT)

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  1.387 s

[INFO] Finished at: 2019-11-21T19:25:56+08:00

[INFO] ------------------------------------------------------------------------

从输出中可以看到启用了2套环境,分别是testprod

新问题:配置太分散了

我们的系统中有2个模块需要用到数据库的配置,这两个模块是:

b2b-account-service

b2b-order-service

上面我们介绍了b2b-account-service不同环境的构建操作,是在pom.xml中进行配置的,b2b-order-service中数据的配置也可以这么做,如果以后有更多的模块都需要连接不同的数据库,是不是每个模块中都需要配置这样的pom.xml,那时候数据库的配置分散在几十个pom.xml文件中,如果运维需要修改数据库的配置的时候,需要去每个模块中去修改pom.xml中的属性,这种操作会让人疯掉的,我们可以怎么做?

我们可以将数据库所有的配置放在一个文件中,运维只用修改这一个文件就行了,然后执行构件操作,重新发布上线,就ok了。

maven支持我们这么做,可以在profile中指定一个外部属性文件xx.properties,文件内容是这种格式的:

key1=value1

key2=value2

keyn=value2

然后在profile元素中加入下面配置:

xx.properties文件路径(相对路径或者完整路径)

上面的filter元素可以指定多个,当有多个外部属性配置文件的时候,可以指定多个来进行引用。

然后资源文件复制的时候就可以使用下面的方式引用外部资源文件的内容:

xxx=${key1}

案例

新建文件b2b/config/dev.properties,内容如下:

# b2b-account-service jdbc配置信息

b2b-account-service.jdbc.url=dev_account_jdbc_url

b2b-account-service.jdbc.username=dev_account_jdbc_username

b2b-account-service.jdbc.password=dev_account_jdbc_password

# b2b-order-service jdbc配置信息

b2b-order-service.jdbc.url=dev_order_jdbc_url

b2b-order-service.jdbc.username=dev_order_jdbc_username

b2b-order-service.jdbc.password=dev_order_jdbc_password

新建文件b2b/config/test.properties,内容如下:

# b2b-account-service jdbc配置信息

b2b-account-service.jdbc.url=test_account_jdbc_url

b2b-account-service.jdbc.username=test_account_jdbc_username

b2b-account-service.jdbc.password=test_account_jdbc_password

# b2b-order-service jdbc配置信息

b2b-order-service.jdbc.url=test_order_jdbc_url

b2b-order-service.jdbc.username=test_order_jdbc_username

b2b-order-service.jdbc.password=test_order_jdbc_password

新建文件b2b/config/prod.properties,内容如下:

# b2b-account-service jdbc配置信息

b2b-account-service.jdbc.url=prod_account_jdbc_url

b2b-account-service.jdbc.username=prod_account_jdbc_username

b2b-account-service.jdbc.password=prod_account_jdbc_password

# b2b-order-service jdbc配置信息

b2b-order-service.jdbc.url=prod_order_jdbc_url

b2b-order-service.jdbc.username=prod_order_jdbc_username

b2b-order-service.jdbc.password=prod_order_jdbc_password

b2b-account-service/src/main/resource/jdbc.properties文件内容:

jdbc.url=${b2b-account-service.jdbc.url}

jdbc.username=${b2b-account-service.jdbc.username}

jdbc.password=${b2b-account-service.jdbc.password}

看到了没,这里面${}中的属性名称取的是上面b2b/config目录中资源文件中的属性名称。

b2b-order-service/src/main/resource/jdbc.properties文件内容:

jdbc.url=${b2b-order-service.jdbc.url}

jdbc.username=${b2b-order-service.jdbc.username}

jdbc.password=${b2b-order-service.jdbc.password}

b2b-account/pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

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

com.javacode2018

b2b-account-service

1.0-SNAPSHOT

com.javacode2018

b2b-account-api

${project.version}

UTF-8

dev

true

env

env_dev

…/…/config/dev.properties

test

env

env_test

…/…/config/test.properties

prod

env

env_prod

…/…/config/prod.properties

${project.basedir}/src/main/resources

true

${project.basedir}/src/test/resources

true

b2b-order/pom.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

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

com.javacode2018

b2b-order-service

1.0-SNAPSHOT

${project.groupId}

b2b-account-api

${project.version}

${project.groupId}

b2b-order-api

${project.version}

UTF-8

dev

true

env

env_dev

…/…/config/dev.properties

test

env

env_test

…/…/config/test.properties

prod

env

env_prod

…/…/config/prod.properties

${project.basedir}/src/main/resources

true

${project.basedir}/src/test/resources

true

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南
roperty>

env

env_dev

…/…/config/dev.properties

test

env

env_test

…/…/config/test.properties

prod

env

env_prod

…/…/config/prod.properties

${project.basedir}/src/main/resources

true

${project.basedir}/src/test/resources

true

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

[外链图片转存中…(img-znGcevMc-1719166223789)]

JVM面试专题

[外链图片转存中…(img-e1y3UPr3-1719166223790)]

Java并发面试专题

[外链图片转存中…(img-tkj26ZNc-1719166223790)]

Kafka面试专题

[外链图片转存中…(img-1SpuVOU2-1719166223790)]

MongDB面试专题

[外链图片转存中…(img-x62ZmtDT-1719166223791)]

MyBatis面试专题

[外链图片转存中…(img-djft8197-1719166223791)]

MySQL面试专题

[外链图片转存中…(img-k7vPjf8f-1719166223791)]

Netty面试专题

[外链图片转存中…(img-r41cWDCJ-1719166223792)]

RabbitMQ面试专题

[外链图片转存中…(img-501MWRGE-1719166223792)]

Redis面试专题

[外链图片转存中…(img-ST0n26G4-1719166223792)]

Spring Cloud面试专题

[外链图片转存中…(img-6z2S4ivK-1719166223793)]

SpringBoot面试专题

[外链图片转存中…(img-YaF27nPy-1719166223793)]

zookeeper面试专题

[外链图片转存中…(img-fLegd2Dt-1719166223793)]

常见面试算法题汇总专题

[外链图片转存中…(img-jNbtvjZI-1719166223794)]

计算机网络基础专题

[外链图片转存中…(img-9USx0AcB-1719166223794)]

设计模式专题

[外链图片转存中…(img-gjd3rQIE-1719166223794)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值