基于GeoTools和SpringBoot的省域駕車(chē)最快路線規(guī)劃方法
前言
在當(dāng)今數(shù)字化時(shí)代,地理信息系統(tǒng)(GIS)技術(shù)與現(xiàn)代交通出行需求的深度融合正不斷催生出諸多創(chuàng)新應(yīng)用,其中駕車(chē)路線規(guī)劃作為人們?nèi)粘3鲂兄袠O為關(guān)鍵的一項(xiàng)服務(wù),其重要性愈發(fā)凸顯。無(wú)論是長(zhǎng)途旅行、商務(wù)出差,還是日常通勤,人們都渴望能夠獲取到一條既快速又高效的駕車(chē)路線,以節(jié)省寶貴的時(shí)間成本。而基于 GeoTools 和 SpringBoot 的省域駕車(chē)最快路線生成實(shí)踐,正是在這一背景下應(yīng)運(yùn)而生的前沿探索,它不僅匯聚了先進(jìn)開(kāi)源地理空間工具與高效微服務(wù)框架的雙重優(yōu)勢(shì),更是為解決大范圍區(qū)域內(nèi)復(fù)雜路況下的最優(yōu)路線規(guī)劃問(wèn)題提供了全新的思路與方法。
推薦閱讀:使用SpringBoot整合高德地圖實(shí)現(xiàn)路線規(guī)劃功能

本次實(shí)踐聚焦于省域這一相對(duì)較大范圍的地理區(qū)域,相較于城市內(nèi)部的路線規(guī)劃,省域駕車(chē)路線面臨著更多的挑戰(zhàn)。省域內(nèi)道路網(wǎng)絡(luò)更為復(fù)雜,涵蓋了高速公路、國(guó)道、省道以及鄉(xiāng)村道路等多種類(lèi)型,不同道路之間的連接關(guān)系、通行規(guī)則以及路況信息差異巨大。與常規(guī)的兩點(diǎn)之間直線最短的計(jì)算方式不同,在兩個(gè)城市的行車(chē)距離計(jì)算中,往往兩者的距離會(huì)超出直線距離。因此我們通過(guò)駕車(chē)距離的長(zhǎng)短來(lái)衡量與省會(huì)城市的聯(lián)系度,也可以作為衡量交通對(duì)地域經(jīng)濟(jì)影響的因素評(píng)估做參考。同時(shí),省域范圍內(nèi)的地理環(huán)境多樣,山脈、河流、湖泊等自然地理要素對(duì)路線的選擇也會(huì)產(chǎn)生重要影響。此外,跨區(qū)域的交通流量分布不均,節(jié)假日、特殊事件等還會(huì)引發(fā)交通流量的大幅波動(dòng),這些都使得省域駕車(chē)最快路線的生成難度大幅提升。然而,正是這些復(fù)雜多變的因素,也為基于 GeoTools 和 SpringBoot 的路線規(guī)劃實(shí)踐提供了豐富的應(yīng)用場(chǎng)景和極具價(jià)值的研究課題。
在接下來(lái)的章節(jié)中,我們將逐步展開(kāi)對(duì)基于 GeoTools 和 SpringBoot 的省域駕車(chē)最快路線生成實(shí)踐的詳細(xì)闡述,從理論基礎(chǔ)到實(shí)踐操作,從技術(shù)實(shí)現(xiàn)到系統(tǒng)優(yōu)化,全方位地呈現(xiàn)這一項(xiàng)目的全貌。讓我們一同踏上這段充滿(mǎn)挑戰(zhàn)與機(jī)遇的探索之路,開(kāi)啟一場(chǎng)關(guān)于地理空間技術(shù)與交通出行服務(wù)融合創(chuàng)新的精彩旅程。
一、相關(guān)空間表簡(jiǎn)介及設(shè)計(jì)
本節(jié)將重點(diǎn)介紹需要使用到的一些基礎(chǔ)空間表和用于存儲(chǔ)省級(jí)城市距離的空間表信息。通過(guò)本節(jié)的講解,讓大家知曉如何進(jìn)行省級(jí)地市的信息查詢(xún)。同時(shí)了解如何去存儲(chǔ)省級(jí)城市距離及其路線信息。而這條路線信息在存儲(chǔ)下來(lái)以后就可以在后續(xù)的分析中進(jìn)行展示。因此將這部分內(nèi)容放到第一節(jié)來(lái)講解,是一個(gè)基礎(chǔ)內(nèi)容。
1、相關(guān)基礎(chǔ)空間表
為了查詢(xún)省會(huì)城市還有其他的地級(jí)城市,這里我們需要使用兩張表,第一張表是之前導(dǎo)入PostGIS空間表的biz_geographic_name表,另外一張是biz_city城市信息表。這兩張表是我們最基礎(chǔ)的兩張表,通過(guò)省級(jí)行政區(qū)劃代碼找到biz_city表的的城市信息,然后查找對(duì)應(yīng)的包含的省會(huì)及地區(qū)城市信息。為了方便大家了解這兩張表的結(jié)構(gòu)信息,這里分享這兩張表的物理結(jié)構(gòu)腳本:
CREATE TABLE "public"."biz_city" (
"id" int8 NOT NULL,
"province_code" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
"province_name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
"city_code" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
"city_name" varchar(512) COLLATE "pg_catalog"."default" NOT NULL,
"type" varchar(32) COLLATE "pg_catalog"."default",
"geom" "public"."geometry",
CONSTRAINT "pk_biz_city" PRIMARY KEY ("id")
);
CREATE INDEX "idx_biz_city_citycode" ON "public"."biz_city" USING btree (
"city_code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_city_pcode" ON "public"."biz_city" USING btree (
"province_code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
COMMENT ON COLUMN "public"."biz_city"."id" IS '主鍵ID';
COMMENT ON COLUMN "public"."biz_city"."province_code" IS '省份編碼';
COMMENT ON COLUMN "public"."biz_city"."province_name" IS '省份名稱(chēng)';
COMMENT ON COLUMN "public"."biz_city"."city_code" IS '市級(jí)編碼';
COMMENT ON COLUMN "public"."biz_city"."city_name" IS '實(shí)際名稱(chēng)';
COMMENT ON COLUMN "public"."biz_city"."type" IS '類(lèi)型';
COMMENT ON COLUMN "public"."biz_city"."geom" IS 'geom';
CREATE TABLE "public"."biz_geographic_name" (
"pk_id" int8 NOT NULL,
"name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
"pinyin" varchar(255) COLLATE "pg_catalog"."default",
"classz" varchar(4) COLLATE "pg_catalog"."default",
"bz" varchar(100) COLLATE "pg_catalog"."default",
"slx" varchar(20) COLLATE "pg_catalog"."default",
"geom" "public"."geometry" NOT NULL,
CONSTRAINT "pk_biz_geographic_name" PRIMARY KEY ("pk_id")
);
CREATE INDEX "idex_biz_geographic_name_classz" ON "public"."biz_geographic_name" USING btree (
"classz" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_geographic_name_geom" ON "public"."biz_geographic_name" USING gist (
"geom" "public"."gist_geometry_ops_2d"
);
COMMENT ON COLUMN "public"."biz_geographic_name"."pk_id" IS '主鍵id';
COMMENT ON COLUMN "public"."biz_geographic_name"."name" IS '地名';
COMMENT ON COLUMN "public"."biz_geographic_name"."pinyin" IS '漢語(yǔ)拼音';
COMMENT ON COLUMN "public"."biz_geographic_name"."classz" IS 'classz';
COMMENT ON COLUMN "public"."biz_geographic_name"."bz" IS '備注';
COMMENT ON COLUMN "public"."biz_geographic_name"."slx" IS 'slx';
COMMENT ON COLUMN "public"."biz_geographic_name"."geom" IS '空間對(duì)象';
COMMENT ON TABLE "public"."biz_geographic_name" IS '地名基礎(chǔ)信息表,用于存儲(chǔ)中國(guó)范圍內(nèi)的地名信息';2、查找省會(huì)與地市信息
查詢(xún)省會(huì)與地市信息的SQL如下:
SELECT T .*, st_x ( T.geom ) lon, st_y ( T.geom ) lat, st_asgeojson ( T.geom ) FROM biz_geographic_name T, biz_city tc WHERE tc.province_code = '430000' AND T.classz IN ( 'AD', 'AC' ) AND st_contains ( tc.geom, T.geom );
使用數(shù)據(jù)庫(kù)客戶(hù)端軟件執(zhí)行以上SQL腳本后,可以看到以下結(jié)果:

這個(gè)結(jié)果很重要,作為下一步計(jì)算的基礎(chǔ),首先我們需要先將計(jì)算的目標(biāo)先查詢(xún)出來(lái)。
3、省級(jí)城市距離表設(shè)計(jì)
為了存儲(chǔ)兩地的行車(chē)最快路線以及其行駛的里程數(shù),同時(shí)也方便我們進(jìn)行數(shù)據(jù)的查詢(xún),在第一次調(diào)用后,后面就不需要重新進(jìn)行計(jì)算,這樣能顯著的提高我們的計(jì)算能力。所以呢,我們需要設(shè)計(jì)一張空間信息表,用來(lái)存儲(chǔ)經(jīng)過(guò)計(jì)算過(guò)的行車(chē)路線信息。這里給出一張物理結(jié)構(gòu),如下圖所示:

空間表的物理表結(jié)構(gòu)如下所示:
CREATE TABLE "public"."biz_provincial_city_distance" (
"pk_id" int8 NOT NULL,
"province_code" varchar(16) NOT NULL DEFAULT ''::character varying,
"province_name" varchar(64) NOT NULL DEFAULT ''::character varying,
"distance" numeric(10,4) NOT NULL DEFAULT 0,
"city_name" varchar(64) NOT NULL DEFAULT ''::character varying,
"geom" "geometry",
"source" varchar(10) NOT NULL DEFAULT ''::character varying,
CONSTRAINT "pk_biz_provincial_city_distanc" PRIMARY KEY ("pk_id")
);
COMMENT ON COLUMN "biz_provincial_city_distance"."pk_id" IS '主鍵';
COMMENT ON COLUMN "biz_provincial_city_distance"."province_code" IS '省份code';
COMMENT ON COLUMN "biz_provincial_city_distance"."province_name" IS '省份name';
COMMENT ON COLUMN "biz_provincial_city_distance"."distance" IS '距離';
COMMENT ON COLUMN "biz_provincial_city_distance"."city_name" IS '城市名稱(chēng)';
COMMENT ON COLUMN "biz_provincial_city_distance"."geom" IS '路線信息';
COMMENT ON COLUMN "biz_provincial_city_distance"."source" IS '來(lái)源';
COMMENT ON TABLE "biz_provincial_city_distance" IS '省市距離信息表';作為行車(chē)計(jì)算的成果保存表,這張表在以后的計(jì)算中還會(huì)經(jīng)常用到,大家也可以根據(jù)自己的實(shí)際需要增加其它的字段。
二、省會(huì)與地級(jí)市距離實(shí)現(xiàn)
為了實(shí)現(xiàn)能夠計(jì)算省域的省會(huì)與地級(jí)市的最快行車(chē)距離的計(jì)算。我們需要做以下的一些工作,首先需要明確一個(gè)詳細(xì)的工作流,為了方便進(jìn)行數(shù)據(jù)的生成。我們首先繪制一個(gè)具體的系統(tǒng)工作流程,然后使用天地圖的駕車(chē)API來(lái)輔助生成距離的路線,同時(shí)計(jì)算同行時(shí)間,最后使用GeoTools來(lái)實(shí)現(xiàn)成果入庫(kù)。
1、系統(tǒng)工作流程圖

為了實(shí)現(xiàn)省會(huì)及其地市的距離信息,基本需要按照以下五個(gè)步驟來(lái)實(shí)現(xiàn):第一步是根據(jù)輸入的省份code查詢(xún)省會(huì)及對(duì)應(yīng)得地級(jí)市信息,如果查找的地市信息,則進(jìn)入循環(huán),在循環(huán)中去調(diào)用天地圖的最快行車(chē)API查詢(xún)接口,最后將得到的路線信息及其實(shí)踐進(jìn)行一個(gè)批量的入庫(kù)。
2、查詢(xún)指定省份的省會(huì)與地市
在前面的內(nèi)容中講過(guò),如何查詢(xún)省會(huì)及其地級(jí)市信息,在查詢(xún)出數(shù)據(jù)之后,通常來(lái)說(shuō),省會(huì)城市是返回的結(jié)果集中的第一條,因此在進(jìn)行行車(chē)導(dǎo)航的時(shí)候,我們就默認(rèn)第一條是省會(huì)城市。因此將第一條數(shù)據(jù)的經(jīng)緯度作為目標(biāo)點(diǎn)。需要說(shuō)明的是,這里我們使用的是天地圖的檢索接口,因此返回的數(shù)據(jù)采用的坐標(biāo)還是4326的坐標(biāo)系,這里需要弄錯(cuò)了。不然可能會(huì)引起不必要的問(wèn)題。根據(jù)省份code查詢(xún)省會(huì)及其地級(jí)市的方法如下:
String province_code = "430000"; String provinceName = "湖南省"; List<GeographicNameVo> cityList = GeoNameService.findProvinceCityListByPcode(province_code);
然后在返回的結(jié)果集當(dāng)中,默認(rèn)第一條數(shù)據(jù)是省會(huì)城市,因此需要將其單獨(dú)拿出來(lái)作為目標(biāo)城市,并提取具體的經(jīng)緯度信息。
GeographicNameVo provincialCapital = cityList.get(0); String destInfo = provincialCapital.getLon() + "," + provincialCapital.getLat();
3、天地圖行車(chē)導(dǎo)航
下來(lái)就循環(huán)各個(gè)地級(jí)市,比如以湖南省為例,就是循環(huán)湘潭市、衡陽(yáng)市、邵陽(yáng)市、岳陽(yáng)市、常德市、張家界市、益陽(yáng)市、郴州市、永州市、懷化市、婁底市、湘西土家族苗族自治州這些城市,然后基于這些城市的經(jīng)緯度坐標(biāo),分別計(jì)算與省會(huì)長(zhǎng)沙市的最快通勤距離。調(diào)用過(guò)程方法如下所示:
List<ProvincialCityDistance> dataList = new ArrayList<ProvincialCityDistance>();
for(int i = 1;i<cityList.size();i++) {
GeographicNameVo sourceCity = cityList.get(i);
String origInfo = sourceCity.getLon() + "," + sourceCity.getLat();
String postStr = "%7B'orig':'" + origInfo + "','dest':'" + destInfo + "','style':'" + 0 + "'%7D";
HttpResponse<String> resp = tdtOptService.drivePlan(postStr, "search", TDT_SERVER_KEY);
JAXBContext context = JAXBContext.newInstance(TdtResult.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
TdtResult result = (TdtResult) unmarshaller.unmarshal(new StringReader(resp.getBodyResult()));
System.out.println("距離: " + result.getDistance());
System.out.println("時(shí)長(zhǎng): " + result.getDuration());
String geom = convertToLineStringWKT(result.getRoutelatlon());
geom = "SRID=" + 4326 +";" + geom;//拼接srid,實(shí)現(xiàn)動(dòng)態(tài)寫(xiě)入
System.out.println(geom);
ProvincialCityDistance dinstance = new ProvincialCityDistance(province_code, provinceName, new BigDecimal(result.getDistance()), sourceCity.getName(), geom, "tianditu");
dataList.add(dinstance);
}這里需要注意的是,由于調(diào)用的是天地圖的API,因此這里的SRID就直接設(shè)置為4326。如果是其他的導(dǎo)航平臺(tái),比如高德或者百度就需用進(jìn)行坐標(biāo)的轉(zhuǎn)換,否則還會(huì)遇到其它的問(wèn)題。
4、導(dǎo)航路徑入庫(kù)
最后調(diào)用批量入庫(kù)的方法,代碼很簡(jiǎn)單,Mybatis_Plus集成了許多方便的方法,可以進(jìn)行數(shù)據(jù)操作。
//執(zhí)行入庫(kù)
if(dataList.size() > 0) {
distanceService.saveBatch(dataList, 100);
}上述代碼執(zhí)行后,可以在控制臺(tái)看到以下輸出表示數(shù)據(jù)成功的保存到數(shù)據(jù)庫(kù)中。


以上就成果獲得目標(biāo)省份及其省會(huì)和地級(jí)市距離的信息。
三、成果展示
最后我們來(lái)看看我們的成果,以湖南省、新疆自治區(qū)、黑龍江省為例,這三個(gè)省的省會(huì)及其地級(jí)市的距離情況究竟是什么樣的?篇幅有限,這里不能一一展開(kāi)。如果感興趣的,可以私聊或者在評(píng)論區(qū)留言,到時(shí)候可以穿一些成果的圖片。
1、湖南省最快行車(chē)距離展示
查詢(xún)湖南省的各個(gè)地級(jí)市到省會(huì)長(zhǎng)沙的具體SQL如下:
SELECT * , st_srid ( geom ) FROM biz_provincial_city_distance T WHERE T.province_code = '430000' ORDER BY distance;
可以看到在湖南省的各地級(jí)市中,距離長(zhǎng)沙最近的是湘潭60公里,而最遠(yuǎn)的則是湘西州387公里。具體列表如下:
1948389936998682626 430000 湖南省 59.5900 湘潭市 1948389936734441473 430000 湖南省 73.2500 株洲市 1948389936998682632 430000 湖南省 78.6600 益陽(yáng)市 1948389937334226946 430000 湖南省 139.1500 婁底市 1948389936998682629 430000 湖南省 155.4200 岳陽(yáng)市 1948389936998682630 430000 湖南省 171.5900 常德市 1948389936998682627 430000 湖南省 191.4800 衡陽(yáng)市 1948389936998682628 430000 湖南省 218.2000 邵陽(yáng)市 1948389936998682634 430000 湖南省 312.9900 永州市 1948389936998682633 430000 湖南省 318.0400 郴州市 1948389936998682631 430000 湖南省 320.3500 張家界市 1948389936998682635 430000 湖南省 385.1900 懷化市 1948389937556525057 430000 湖南省 387.1100 湘西土家族苗族自治州

2、新疆自治區(qū)最快行車(chē)距離展示
下面再來(lái)看下我國(guó)最大的一個(gè)省份,新疆自治區(qū)的各地市與省會(huì)烏魯木齊的距離又是多少呢?距離烏魯木齊最近的是昌吉35公里,最遠(yuǎn)的則是1334.7100喀什。
1948410402484256769 650000 新疆維吾爾自治區(qū) 34.9700 昌吉回族自治州 1948410402400370690 650000 新疆維吾爾自治區(qū) 191.2700 吐魯番市 1948410402513616897 650000 新疆維吾爾自治區(qū) 342.0900 巴音郭楞蒙古自治州 1948410402169683970 650000 新疆維吾爾自治區(qū) 389.7900 克拉瑪依市 1948410402484256770 650000 新疆維吾爾自治區(qū) 519.0300 博爾塔拉蒙古自治州 1948410402400370691 650000 新疆維吾爾自治區(qū) 585.5400 哈密地區(qū) 1948410402832384004 650000 新疆維吾爾自治區(qū) 618.0900 塔城地區(qū) 1948410402832384005 650000 新疆維吾爾自治區(qū) 618.0900 塔城地區(qū) 1948410402832384003 650000 新疆維吾爾自治區(qū) 689.1600 伊犁哈薩克自治州 1948410402832384006 650000 新疆維吾爾自治區(qū) 793.7300 阿勒泰地區(qū) 1948410402513616898 650000 新疆維吾爾自治區(qū) 877.0100 阿克蘇地區(qū) 1948410402832384002 650000 新疆維吾爾自治區(qū) 1278.1100 和田地區(qū) 1948410402652028930 650000 新疆維吾爾自治區(qū) 1294.6200 克孜勒蘇柯?tīng)柨俗巫灾沃? 1948410402773663746 650000 新疆維吾爾自治區(qū) 1334.7100 喀什地區(qū)

3、黑龍江省最快行車(chē)距離展示
最后來(lái)看一下我國(guó)的北疆,黑龍江省的最快行車(chē)距離展示。使用客戶(hù)端軟件運(yùn)行以上sql后,可以看到如下結(jié)果。距離哈爾濱最近的是綏化市112公里,最遠(yuǎn)的是黑河市560公里。
1948411772348157953 230000 黑龍江省 112.7800 綏化市 1948411772171997186 230000 黑龍江省 153.4400 大慶市 1948411771584794626 230000 黑龍江省 302.9300 齊齊哈爾市 1948411772171997187 230000 黑龍江省 322.4100 伊春市 1948411772171997190 230000 黑龍江省 330.8700 牡丹江市 1948411772171997188 230000 黑龍江省 380.4400 佳木斯市 1948411772171997189 230000 黑龍江省 427.0100 七臺(tái)河市 1948411771853230081 230000 黑龍江省 444.5100 鶴崗市 1948411771853230082 230000 黑龍江省 452.5800 雙鴨山市 1948411771765149697 230000 黑龍江省 477.3500 雞西市 1948411772171997191 230000 黑龍江省 569.4200 黑河市

四、總結(jié)
以上就是本文的主要內(nèi)容, 本次實(shí)踐聚焦于省域這一相對(duì)較大范圍的地理區(qū)域,相較于城市內(nèi)部的路線規(guī)劃,省域駕車(chē)路線面臨著更多的挑戰(zhàn)。省域內(nèi)道路網(wǎng)絡(luò)更為復(fù)雜,涵蓋了高速公路、國(guó)道、省道以及鄉(xiāng)村道路等多種類(lèi)型,不同道路之間的連接關(guān)系、通行規(guī)則以及路況信息差異巨大。與常規(guī)的兩點(diǎn)之間直線最短的計(jì)算方式不同,在兩個(gè)城市的行車(chē)距離計(jì)算中,往往兩者的距離會(huì)超出直線距離。因此我們通過(guò)駕車(chē)距離的長(zhǎng)短來(lái)衡量與省會(huì)城市的聯(lián)系度,也可以作為衡量交通對(duì)地域經(jīng)濟(jì)影響的因素評(píng)估做參考。在本文中,我們將逐步展開(kāi)對(duì)基于 GeoTools 和 SpringBoot 的省域駕車(chē)最快路線生成實(shí)踐的詳細(xì)闡述,從理論基礎(chǔ)到實(shí)踐操作,從技術(shù)實(shí)現(xiàn)到系統(tǒng)優(yōu)化,全方位地呈現(xiàn)這一項(xiàng)目的全貌。行文倉(cāng)促,定有不足之處,歡迎各位朋友在評(píng)論區(qū)批評(píng)指正,不勝感激。
到此這篇關(guān)于基于GeoTools和SpringBoot的省域駕車(chē)最快路線規(guī)劃方法的文章就介紹到這了,更多相關(guān)GeoTools和SpringBoot駕車(chē)路線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)的讀寫(xiě)分離操作
讀寫(xiě)分離的作用是為了緩解寫(xiě)庫(kù),也就是主庫(kù)的壓力,但一定要基于數(shù)據(jù)一致性的原則,就是保證主從庫(kù)之間的數(shù)據(jù)一定要一致,這篇文章給大家介紹SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫(kù)的讀寫(xiě)分離操作,感興趣的朋友跟隨小編一起看看吧2024-03-03
Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程2022-04-04
java實(shí)現(xiàn)切割wav音頻文件的方法詳解【附外部jar包下載】
這篇文章主要介紹了java實(shí)現(xiàn)切割wav音頻文件的方法,結(jié)合實(shí)例形式詳細(xì)分析了java切割wav音頻文件的相關(guān)原理、操作技巧與注意事項(xiàng),并附帶外部jar包供讀者下載,需要的朋友可以參考下2019-05-05
Java使用freemarker實(shí)現(xiàn)word下載方式
文章介紹了如何使用FreeMarker實(shí)現(xiàn)Word文件下載,包括引用依賴(lài)、創(chuàng)建Word模板、將Word文件存為XML格式、更改后綴為FTL模板、處理圖片和代碼實(shí)現(xiàn)2025-02-02
Java實(shí)戰(zhàn)之多線程模擬站點(diǎn)售票
今天帶大家來(lái)練習(xí)Java實(shí)戰(zhàn),文中多線程模擬站點(diǎn)售票這個(gè)問(wèn)題作了詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
java網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)介紹
這篇文章主要介紹了java網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)介紹,涉及OSI分層模型和TCP/IP分層模型的對(duì)應(yīng)關(guān)系、IP地址、端口號(hào)、tcp、udp等相關(guān)內(nèi)容,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11
深入剖析SpringBoot配置文件加載順序(一場(chǎng)配置界的權(quán)力游戲)
這篇文章給大家介紹SpringBoot配置文件的加載順序,從配置文件的優(yōu)先級(jí)、加載位置、文件類(lèi)型優(yōu)先級(jí),到實(shí)戰(zhàn)場(chǎng)景解析和底層原理,通過(guò)實(shí)戰(zhàn)場(chǎng)景解析,感興趣的朋友跟隨小編一起看看吧2026-01-01
Java訪問(wèn)WebService返回XML數(shù)據(jù)的方法
這篇文章主要介紹了Java訪問(wèn)WebService返回XML數(shù)據(jù)的方法,涉及java操作WebService的相關(guān)技巧,需要的朋友可以參考下2015-06-06

