摘要:清理上一次執(zhí)行創(chuàng)建的文件處理資源文件編譯代碼執(zhí)行單元測(cè)試文件創(chuàng)建拷貝到本地的倉(cāng)庫(kù)下面發(fā)布生成文檔將工程所有文檔生成網(wǎng)站,生成的網(wǎng)站界面默認(rèn)和的項(xiàng)目站點(diǎn)類似,但是其文檔用格式寫(xiě)的,目前不支持,需要用其他插件配合才能支持。
前言
本文可以幫助你加深對(duì)Maven的整體認(rèn)識(shí),不是一篇基礎(chǔ)文章。如果你現(xiàn)在還沒(méi)有用 Maven 跑過(guò) HelloWorld,那么本文可能不適合你。
一、Maven簡(jiǎn)介Maven 官網(wǎng):https://maven.apache.org
Maven 3.3.9版本文檔:http://maven.apache.org/ref/3...
Maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。
版本:maven有自己的版本定義和規(guī)則
構(gòu)建:可以完成編譯,打包,部署等。
依賴管理:方便引入所需依賴 Jar 包,不需手動(dòng)下載
文檔生成:maven的site命令支持各種文檔信息的發(fā)布,包括構(gòu)建過(guò)程的各種輸出,javadoc,產(chǎn)品文檔等。
項(xiàng)目關(guān)系:一個(gè)大型的項(xiàng)目通常有幾個(gè)小項(xiàng)目或者模塊組成,用maven可以很方便地管理
二、Maven生命周期maven把項(xiàng)目的構(gòu)建劃分為不同的生命周期(lifecycle)。粗略一點(diǎn)的話,它這個(gè)過(guò)程(phase)包括:
驗(yàn)證(validate):驗(yàn)證項(xiàng)目是否正確
編譯(compile): 編譯項(xiàng)目的源代碼
測(cè)試(test):使用合適的單元測(cè)試框架測(cè)試編譯的源代碼。這些測(cè)試不應(yīng)該要求代碼被打包或部署
打包(package)
驗(yàn)證(verify)
安裝(install)
部署(deploy)
maven中所有的執(zhí)行動(dòng)作(goal)都需要指明自己在這個(gè)過(guò)程中的執(zhí)行位置,然后maven執(zhí)行的時(shí)候,就依照過(guò)程的發(fā)展依次調(diào)用這些goal進(jìn)行各種處理。
這個(gè)也是maven的一個(gè)基本調(diào)度機(jī)制。一般來(lái)說(shuō),位置稍后的過(guò)程都會(huì)依賴于之前的過(guò)程。當(dāng)然,maven同樣提供了配置文件,可以依照用戶要求,跳過(guò)某些階段。
三、Maven 版本規(guī)范maven使用如下幾個(gè)要素來(lái)唯一定位某一個(gè)輸出物: groupId:artifactId:packaging:version 。比如org.springframework:spring:2.5 。每個(gè)部分的解釋如下:
groupId 公司,團(tuán)體等。如Apache Software的項(xiàng)目有以org.apache開(kāi)頭的groupId。
artifactId 項(xiàng)目的唯一標(biāo)識(shí)符。比如一個(gè)helloworld項(xiàng)目就叫helloworld。
packaging 項(xiàng)目打包輸出的類型,默認(rèn)是jar。類型為war的項(xiàng)目產(chǎn)生一個(gè)web應(yīng)用。
version 一個(gè)項(xiàng)目的特定版本。發(fā)布的項(xiàng)目有一個(gè)固定的版本標(biāo)識(shí)來(lái)指向該項(xiàng)目的某一個(gè)特定的版本。而正在開(kāi)發(fā)中的項(xiàng)目可以用一個(gè)特殊的標(biāo)識(shí),這種標(biāo)識(shí)給版本加上一個(gè)"SNAPSHOT"的標(biāo)記。
maven有自己的版本規(guī)范,一般是如下定義
maven在版本管理時(shí)候可以使用幾個(gè)特殊的字符串 SNAPSHOT ,LATEST ,RELEASE 。比如"1.0-SNAPSHOT"。各個(gè)部分的含義和處理邏輯如下說(shuō)明:
SNAPSHOT 如果一個(gè)版本包含字符串"SNAPSHOT",Maven就會(huì)在安裝或發(fā)布這個(gè)組件的時(shí)候?qū)⒃摲?hào)展開(kāi)為一個(gè)日期和時(shí)間值,轉(zhuǎn)換為UTC時(shí)間。例如,"1.0-SNAPSHOT"會(huì)在2010年5月5日下午2點(diǎn)10分發(fā)布時(shí)候變成1.0-20100505-141000-1。這個(gè)詞只能用于開(kāi)發(fā)過(guò)程中,因?yàn)橐话銇?lái)說(shuō),項(xiàng)目組都會(huì)頻繁發(fā)布一些版本,最后實(shí)際發(fā)布的時(shí)候,會(huì)在這些snapshot版本中尋找一個(gè)穩(wěn)定的,用于正式發(fā)布,比如1.4版本發(fā)布之前,就會(huì)有一系列的1.4-SNAPSHOT,而實(shí)際發(fā)布的1.4,也是從中拿出來(lái)的一個(gè)穩(wěn)定版。
LATEST 指某個(gè)特定構(gòu)件的最新發(fā)布,這個(gè)發(fā)布可能是一個(gè)發(fā)布版,也可能是一個(gè)snapshot版,具體看哪個(gè)時(shí)間最后。
RELEASE 指最后一個(gè)發(fā)布版。
四、Maven 項(xiàng)目依賴 1. 多模塊依賴和繼承項(xiàng)目結(jié)構(gòu)圖:
parent ├─childA(model層) │ └─pom.xml(jar) ├─childB(web層) │ └─pom.xml(war) └─pom.xml(pom)
parent中執(zhí)行mvn install就能將 childA和childB 一起編譯
parent的pom.xml做如下配置:
com.song parent 1.0-SNAPSHOT pom childA childB
childA和childB的pom.xml都需要配置parent,防止引入的包沖突(如果不加parent,會(huì)分別去編譯他們引入的依賴,會(huì)重復(fù)引入包):
parent com.song 1.0-SNAPSHOT 4.0.0 childA jar parent com.song 1.0-SNAPSHOT 4.0.0 childB war
子pom間存在引用關(guān)系,比如childB引用到了childA的jar包
2. 子項(xiàng)目繼承父項(xiàng)目的依賴com.module childA 1.0-SNAPSHOT
parent中加上
3. 依賴范圍javax.servlet servlet-api 2.5
如果不顯示執(zhí)行
scope 屬性包括:
compile(編譯范圍):編譯范圍的
provided(已提供范圍):表示部署的環(huán)境當(dāng)中有某容器已經(jīng)提供了該jar包,只在編譯classpath(不是運(yùn)行時(shí))可用。它們不是傳遞性的,也不會(huì)被打包。例如,如果你開(kāi)發(fā)了一個(gè)web應(yīng)用,你可能在編譯classpath中需要可用的Servlet API來(lái)編譯一個(gè)servlet,但是你不會(huì)想要在打包好的WAR中包含這個(gè)Servlet API;這個(gè)Servlet API JAR由你的servlet容器(Tomcat)提供。
runtime(運(yùn)行時(shí)范圍):只在運(yùn)行和測(cè)試系統(tǒng)的時(shí)候需要,但在編譯的時(shí)候不需要。
test(測(cè)試范圍):在一般的 編譯和運(yùn)行時(shí)都不需要,它們只有在測(cè)試編譯和測(cè)試運(yùn)行階段可用。
system (系統(tǒng)范圍):該范圍不推薦使用(你應(yīng)該一直盡量去從公共或定制的Maven倉(cāng)庫(kù)中引用依賴)
詳細(xì)可參考:https://maven.apache.org/guid...4. 可選依賴(Optional Dependencies)和依賴排除(Dependency Exclusions)
maven的依賴關(guān)系是有傳遞性的。如:A-->B,B-->C。但有時(shí)候,項(xiàng)目A可能不是必需依賴C,因此需要在項(xiàng)目A中排除對(duì)A的依賴。在maven的依賴管理中,有兩種方式可以對(duì)依賴關(guān)系進(jìn)行,分別是可選依賴(Optional Dependencies)以及依賴排除(Dependency Exclusions)。
4.1 可選依賴 optional當(dāng)一個(gè)項(xiàng)目A依賴另一個(gè)項(xiàng)目B時(shí),項(xiàng)目A可能很少一部分功能用到了項(xiàng)目B,此時(shí)就可以在A中配置對(duì)B的可選依賴。舉例來(lái)說(shuō),一個(gè)類似hibernate的項(xiàng)目,它支持對(duì)mysql、oracle等各種數(shù)據(jù)庫(kù)的支持,但是在引用這個(gè)項(xiàng)目時(shí),我們可能只用到其對(duì)mysql的支持,此時(shí)就可以在這個(gè)項(xiàng)目中配置可選依賴。
配置可選依賴的原因:1、節(jié)約磁盤(pán)、內(nèi)存等空間;2、避免license許可問(wèn)題;3、避免類路徑問(wèn)題,等等。
sample.ProjectB Project-B 1.0 compile true
假設(shè)以上配置是項(xiàng)目A的配置,即:Project-A --> Project-B。在編譯項(xiàng)目A時(shí),是可以正常通過(guò)的。
如果有一個(gè)新的項(xiàng)目X依賴A,即:Project-X -> Project-A。此時(shí)項(xiàng)目X就不會(huì)依賴項(xiàng)目B了。如果項(xiàng)目X用到了涉及項(xiàng)目B的功能,那么就需要在pom.xml中重新配置對(duì)項(xiàng)目B的依賴。
4.2 依賴排除 exclusions當(dāng)一個(gè)項(xiàng)目A依賴項(xiàng)目B,而項(xiàng)目B同時(shí)依賴項(xiàng)目C,如果項(xiàng)目A中因?yàn)楦鞣N原因不想引用項(xiàng)目C,在配置項(xiàng)目B的依賴時(shí),可以排除對(duì)C的依賴。
示例(假設(shè)配置的是A的pom.xml,依賴關(guān)系為:A --> B; B --> C):
sample.ProjectB Project-B 1.0 compile sample.ProjectC Project-C
當(dāng)然,對(duì)于多重依賴,配置也很簡(jiǎn)單,參考如下示例:
Project-A -> Project-B -> Project-D -> Project-E -> Project-F -> Project C
A對(duì)于E相當(dāng)于有多重依賴,我們?cè)谂懦龑?duì)E的依賴時(shí),只需要在配置B的依賴中進(jìn)行即可:
五、Maven插件機(jī)制 1. Maven默認(rèn)插件sample.ProjectB Project-B 1.0-SNAPSHOT sample.ProjectE Project-E
不配置Plugin時(shí),Maven默認(rèn)會(huì)使用以下插件。如果針對(duì)各個(gè) plugin 有特殊配置的話,需要顯示指定 plugin 和 屬性配置。
plugin | function | life cycle phase |
---|---|---|
maven-clean-plugin | 清理上一次執(zhí)行創(chuàng)建的target文件 | clean |
maven-resources-plugin | 處理資源文件 | resources,testResources |
maven-compiler-plugin | 編譯Java代碼 | compile、testCompile |
maven-surefire-plugin | 執(zhí)行單元測(cè)試文件 | test |
maven-jar-plugin | 創(chuàng)建 jar | package |
maven-install-plugin | 拷貝jar到本地的maven倉(cāng)庫(kù) .m2/repository 下面 | install |
maven-deploy-plugin | 發(fā)布 jar | deploy |
maven-site-plugin | 生成文檔 | site |
maven-site-plugin:將工程所有文檔生成網(wǎng)站,生成的網(wǎng)站界面默認(rèn)和apache的項(xiàng)目站點(diǎn)類似,但是其文檔用doxia格式寫(xiě)的,目前不支持docbook,需要用其他插件配合才能支持。需要指出的是,在maven 2.x系列中和maven3.x的site命令處理是不同的,在舊版本中,用 mvn site 命令可以生成reporting節(jié)點(diǎn)中的所有報(bào)表,但是在maven3中,reporting過(guò)時(shí)了,要把這些內(nèi)容作為 maven-site-plugin的configuration的內(nèi)容才行。詳細(xì)內(nèi)容可以參考http://www.wakaleo.com/blog/2...
2. Maven常用插件 2.0 spring-boot-maven-pluginsrc/main/java true **/*.xml src/main/resources true **/*.properties *.xml *.dic *.txt src/main/resources false *.p12 maven-compiler-plugin 3.1 1.8 UTF-8 org.apache.maven.plugins maven-resources-plugin 2.6 UTF-8
當(dāng)使用SpringBoot開(kāi)發(fā)項(xiàng)目的時(shí)候,會(huì)使用到spring-boot-maven-plugin插件
官方文檔:https://docs.spring.io/spring...
Spring Boot Maven plugin有5個(gè)Goals:
命令 | 說(shuō)明 |
---|---|
spring-boot:repackage | 默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war, 并將mvn package生成的軟件包重命名為*.original |
spring-boot:run | 運(yùn)行Spring Boot應(yīng)用 |
spring-boot:start | 在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理 |
spring-boot:stop | 在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理 |
spring-boot:build-info | 生成Actuator使用的構(gòu)建信息文件build-info.properties |
其中比較重要的命令是:
mvn package spring-boot:repackage
執(zhí)行后會(huì)看到生成的兩個(gè)jar文件,一個(gè)是*.jar,另一個(gè)是*.jar.original。
這是由于在執(zhí)行上述命令的過(guò)程中,Maven首先在package階段打包生成*.jar文件;然后執(zhí)行spring-boot:repackage重新打包
我們也可以跳過(guò)repackage階段:
clean deploy -D spring-boot.repackage.skip=true
加上-D spring-boot.repackage.skip=true參數(shù)即可,此時(shí)只會(huì)生成一個(gè)普通的jar包
2.1 maven-source-pluginmaven-source-plugin提供項(xiàng)目自動(dòng)將源碼打包并發(fā)布的功能,在需要發(fā)布源碼項(xiàng)目的pom.xml文件中添加如下代碼即可:
org.apache.maven.plugins maven-source-plugin attach-sources jar
執(zhí)行 mvn install,maven會(huì)自動(dòng)將source install到repository 。
執(zhí)行 mvn deploy,maven會(huì)自動(dòng)將source deploy到remote-repository 。
執(zhí)行 mvn source:jar,多帶帶打包源碼。
注意:在多項(xiàng)目構(gòu)建中,將source-plugin置于頂層或parent的pom中并不會(huì)發(fā)揮作用,必須置于具體項(xiàng)目的pom中。2.2 Tomcat插件
tomcat插件有兩種:tomcat-maven-plugin 和 tomcat7-maven-plugin,使用方式基本相同。
tomcat-maven-plugin 插件是org.codehaus.mojo組織提供的,里面的tomcat是6.0.29版本,沒(méi)有更新了。
tomcat7-maven-plugin 插件是apache提供的,官網(wǎng):http://tomcat.apache.org/mave...
tomcat7-maven-plugin 插件使用
org.apache.tomcat.maven tomcat7-maven-plugin 2.2 / 8080 UTF-8 tomcat7 package run
命令:
tomcat7:deploy --部署一個(gè)web war包 tomcat7:reload --重新加載web war包 tomcat7:start --啟動(dòng)tomcat tomcat7:stop --停止tomcat tomcat7:undeploy --停止一個(gè)war包 tomcat7:run --啟動(dòng)嵌入式tomcat ,并運(yùn)行當(dāng)前項(xiàng)目
tomcat-maven-plugin 插件使用
org.codehaus.mojo tomcat-maven-plugin 1.1 /helloworld 8080 UTF-8 http://localhost:8080/manager/html tomcat6 -Xms256m -Xmx512m -XX:MaxPermSize=512m
命令:
tomcat:deploy --部署一個(gè)web war包 tomcat:reload --重新加載web war包 tomcat:start --啟動(dòng)tomcat tomcat:stop --停止tomcat tomcat:undeploy --停止一個(gè)war包 tomcat:run --啟動(dòng)嵌入式tomcat ,并運(yùn)行當(dāng)前項(xiàng)目
配置參數(shù):
path:是訪問(wèn)應(yīng)用的路徑
port:是tomcat 的端口號(hào)
uriEncoding:URL按UTF-8進(jìn)行編碼,這樣就解決了中文參數(shù)亂碼。
Server:指定tomcat名稱。
自動(dòng)部署包含三個(gè)步驟:
編譯打包、上傳到服務(wù)器、在服務(wù)器上執(zhí)行l(wèi)inux命令
Maven項(xiàng)目可使用 mvn install 指令打包,打包完成后包位于target目錄下,要想在遠(yuǎn)程服務(wù)器上部署,首先要將包上傳到服務(wù)器。
首先在本地的setting.xml中配置server的信息,包括id,用戶名,密碼。(當(dāng)然也可以在pom.xml里面配置)
linux_server user password
pom.xml
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 linux_server target/test.war scp://user:[email protected]/home/tomcat7/webapps
命令:
# 對(duì)項(xiàng)目進(jìn)行打包和上傳操作 mvn clean install wagon:upload-single
如果覺(jué)的wagon命令太長(zhǎng),可以設(shè)置 excutions 來(lái)配置phase和goals來(lái)簡(jiǎn)化命令。
2.3.2 在服務(wù)器上執(zhí)行l(wèi)inux命令org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 target/test.jar scp://user:[email protected]/home/java/exe pkill -f /home/java/exe/test.jar nohup java -jar /home/java/exe/test.jar > /home/java/exe/$(date +%Y%m%d-%H%M%S).log & true
命令
mvn clean install wagon:upload-single wagon:sshexec
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 target/javawebdeploy.war scp://user:[email protected]/home/tomcat7/webapps sh /home/tomcat7/bin/shutdown.sh rm -rf /home/tomcat7/webapps/test sh /home/tomcat7/bin/startup.sh true
命令
mvn clean install wagon:upload-single wagon:sshexec2.3.3 配置execution
如果覺(jué)得 mvn clean package wagon:upload-single wagon:sshexec 命令太長(zhǎng)了不好記,那么可以配置execution,在運(yùn)行deploy的同時(shí)運(yùn)行upload-single和sshexec。
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 upload-deploy deploy upload-single sshexec target/test.war scp://user:[email protected]/home/tomcat7/webapps sh /home/tomcat7/bin/shutdown.sh rm -rf /coder/tomcat7/webapps/test sh /coder/tomcat7/bin/startup.sh true
部署命令
mvn clean deploy -D maven.deploy.skip=true2.3.4. 完整示例配置
首先在本地的setting.xml中配置server的信息,包括id,用戶名,密碼。(當(dāng)然也可以在pom.xml里面配置)
linux_server user password
pom.xml
org.apache.maven.wagon wagon-ssh 2.8 org.codehaus.mojo wagon-maven-plugin 1.0 linux_server scp://192.168.20.128/home/tomcat7/webapps true upload-war-to-server deploy upload-single sshexec target/test.war datefilename=$(date +%Y%m%d-%H%M%S);cp /home/tomcat7/webapps/test.war /home/tomcat7/webapps/test.war.$datefilename ps -ef | grep /home/tomcat7/ | grep -v grep | awk {"print $2"} | sed -e "s/^/kill -9 /g" | sh rm -rf /home/tomcat7/webapps/test export JAVA_HOME=/home/jdk/jdk1.8.0_91;sh /home/tomcat7/bin/startup.sh
部署命令
# 必須加 -D maven.deploy.skip=true ,表示跳過(guò)maven自身的deploy使用wagon的deploy。否則報(bào)錯(cuò)“-DaltDeploymentRepository=id::layout::url parameter” mvn clean deploy -D maven.deploy.skip=true2.4 maven-war-plugin
Maven打包時(shí)可以對(duì)web.xml中的spring.profiles.active值進(jìn)行替換。
先web.xml中配置一個(gè)占位符${profiles.active}:
spring.profiles.active ${profiles.active}
在pom.xml配置maven-war-plugin:
maven-war-plugin 3.2.2 true dev dev dev release release
以上配置完成后,再通過(guò)mvn package -Pdev或mvn package -Preelase打包后,${profiles.active}<占位符就被替換為dev或release
六、Maven控制測(cè)試環(huán)境和正式環(huán)境 6.1 Maven profiles切換測(cè)試環(huán)境和正式環(huán)境dev dev true release release beta beta helloworld src/main/resources config/ src/main/resources/config/${profiles.active} .
id代表這個(gè)環(huán)境的唯一標(biāo)識(shí),在 mvn install -Pdev 來(lái)指定。
此properties定義了三個(gè)環(huán)境,分別是dev(開(kāi)發(fā)環(huán)境)、beta(測(cè)試環(huán)境)、release(發(fā)布環(huán)境)
activeByDefault=true代表如果不指定某個(gè)固定id的profile,那么就使用這個(gè)環(huán)境
使用 mvn install -Pdev會(huì)將 id 為 dev 的 profile 中的
如果想要整合Maven profile和Spring Framework profile,Maven打包時(shí)可以對(duì)web.xml中的spring.profiles.active值進(jìn)行替換。
先web.xml中配置一個(gè)占位符${profiles.active}:
spring.profiles.active ${profiles.active}
在pom.xml配置maven-war-plugin:
maven-war-plugin 3.2.2 true dev dev dev release release
以上配置完成后,再通過(guò)mvn package -Pdev或mvn package -Preelase打包后,${profiles.active}<占位符就被替換為dev或release
七、Maven 變量 1. 內(nèi)置屬性${basedir} represents the directory containing pom.xml
**${version}** equivalent to ${project.version } or ${pom.version }
2. Pom/Project properties所有pom中的元素都可以用 project. 前綴進(jìn)行引用,以下是部分常用的
**${project.build.directory}** results in the path to your "target" dir, this is the same as ${pom.project.build.directory}
${project.build.outputDirectory} results in the path to your "target/classes" dir
${project.name} refers to the name of the project.
${project.version} refers to the version of the project.
${project.build.finalName} refers to the final name of the file created when the built project is packaged
3. 本地用戶設(shè)定所有用的的 settings.xml 中的設(shè)定都可以通過(guò) settings. 前綴進(jìn)行引用
${settings.localRepository} refers to the path of the user"s local repository.
${maven.repo.local} also works for backward compatibility with maven1
4. 環(huán)境變量系統(tǒng)的環(huán)境變量通過(guò) env. 前綴引用
${env.M2_HOME} returns the Maven2 installation path.
**${java.home}** specifies the path to the current JRE_HOME environment use with relative paths to get for example:
所有JVM中定義的java系統(tǒng)屬性.
6. pom.xml自定義變量... ... hellowolrld
則引用 ${project.build.finalName} 就會(huì)得到值 hellowolrld
7. parent 工程的變量parent工程的pom.xml中的變量用前綴 ${project.parent} 引用. 上級(jí)工程的版本也可以這樣引用: ${parent.version }.
參考文章:
https://blog.csdn.net/wwbmyos...
https://blog.csdn.net/j080624...
http://xxgblog.com/2015/10/23...
https://blog.csdn.net/java_an...
https://blog.csdn.net/xiao__g...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69566.html
摘要:說(shuō)明目前互聯(lián)網(wǎng)公司,大部分項(xiàng)目都是基于分布式,一個(gè)項(xiàng)目被拆分成幾個(gè)小項(xiàng)目,這些小項(xiàng)目會(huì)分別部署在不同的計(jì)算機(jī)上面,這個(gè)叫做微服務(wù)。當(dāng)一臺(tái)計(jì)算機(jī)的程序需要調(diào)用另一臺(tái)計(jì)算機(jī)代碼的時(shí)候,就涉及遠(yuǎn)程調(diào)用。此時(shí)就粉末登場(chǎng)了。 showImg(https://s2.ax1x.com/2019/07/05/ZaELxe.jpg); 說(shuō)明 目前互聯(lián)網(wǎng)公司,大部分項(xiàng)目都是基于分布式,一個(gè)項(xiàng)目被拆分成幾個(gè)...
摘要:今天就介紹一款常用的緩存框架。設(shè)置緩存中對(duì)象是否為永久的,如果是,超時(shí)設(shè)置將被忽略,對(duì)象從不過(guò)期。內(nèi)存不足時(shí),是否啟用磁盤(pán)緩存。磁盤(pán)失效線程運(yùn)行時(shí)間間隔,默認(rèn)是秒。 在當(dāng)今大數(shù)據(jù)爆發(fā)時(shí)代,數(shù)據(jù)量每天都呈爆炸式增長(zhǎng),頻繁的數(shù)據(jù)庫(kù)訪問(wèn)無(wú)疑給數(shù)據(jù)庫(kù)帶來(lái)的極大負(fù)載,除了增大物理服務(wù)器的數(shù)量,我們也可以將一些常用的、公共的資源以cache形式放在客戶端或者靠近客戶端的服務(wù)器上,從而減少了服務(wù)器的...
摘要:最近在用開(kāi)發(fā)窗體程序,并且以后打算把所有的窗體軟件切換到上面,并且還想用的各種好處,集成了就可以愉快的用各種服務(wù)了。最重要的是打包工具。由于我是,一般用和,執(zhí)行命令會(huì)看到打包成了和兩種類型的安裝包。由于沒(méi)有計(jì)算機(jī),所以還不知道打包成的狀態(tài)。 最近在用 JavaFx 開(kāi)發(fā)窗體程序,并且以后打算把所有的窗體軟件切換到 JavaFx 上面,并且還想用 springboot 的__各種好處,集...
摘要:接下來(lái)我們繼續(xù)看如果達(dá)成包,在加入如下配置然后通過(guò)打包,最后通過(guò)命令啟動(dòng)這樣,最簡(jiǎn)單的就完成了,但是對(duì)于一個(gè)大型項(xiàng)目,這是遠(yuǎn)遠(yuǎn)不夠的,的詳細(xì)操作可以參照官網(wǎng)。以上實(shí)例只是最簡(jiǎn)單的項(xiàng)目入門實(shí)例,后面會(huì)深入研究。 什么是Spring Boot Spring Boot是由Pivotal團(tuán)隊(duì)提供的基于Spring的全新框架,其設(shè)計(jì)目的是為了簡(jiǎn)化Spring應(yīng)用的搭建和開(kāi)發(fā)過(guò)程。該框架遵循約定大...
閱讀 1891·2021-09-24 09:48
閱讀 3236·2021-08-26 14:14
閱讀 1692·2021-08-20 09:36
閱讀 1480·2019-08-30 15:55
閱讀 3640·2019-08-26 17:15
閱讀 1437·2019-08-26 12:09
閱讀 618·2019-08-26 11:59
閱讀 3335·2019-08-26 11:57