修复无法获取blog-resource.jar包资源的问题
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
package cn.celess.visitor.util;
|
package cn.celess.visitor.util;
|
||||||
|
|
||||||
|
import com.google.common.io.Files;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.lionsoul.ip2region.DataBlock;
|
import org.lionsoul.ip2region.DataBlock;
|
||||||
import org.lionsoul.ip2region.DbConfig;
|
import org.lionsoul.ip2region.DbConfig;
|
||||||
import org.lionsoul.ip2region.DbSearcher;
|
import org.lionsoul.ip2region.DbSearcher;
|
||||||
import org.lionsoul.ip2region.Util;
|
import org.lionsoul.ip2region.Util;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.util.FileCopyUtils;
|
import org.springframework.util.FileCopyUtils;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -24,20 +26,18 @@ public class AddressUtil {
|
|||||||
File file;
|
File file;
|
||||||
try {
|
try {
|
||||||
//db
|
//db
|
||||||
String dbPath = AddressUtil.class.getResource("/ip2region/ip2region.db").getPath();
|
ClassPathResource resource = new ClassPathResource("ip2region/ip2region.db");
|
||||||
file = new File(dbPath);
|
File tempDir = Files.createTempDir();
|
||||||
if (!file.exists()) {
|
tempDir.deleteOnExit();
|
||||||
String tmpDir = System.getProperties().getProperty("java.io.tmpdir");
|
file = new File(tempDir, "ip.db");
|
||||||
dbPath = tmpDir + "ip.db";
|
FileCopyUtils.copy(Objects.requireNonNull(resource.getInputStream()), new FileOutputStream(file));
|
||||||
file = new File(dbPath);
|
|
||||||
FileCopyUtils.copy(Objects.requireNonNull(AddressUtil.class.getClassLoader().getResourceAsStream("classpath:ip2region/ip2region.db")), new FileOutputStream(file));
|
|
||||||
}
|
|
||||||
//查询算法
|
//查询算法
|
||||||
//B-tree
|
//B-tree
|
||||||
int algorithm = DbSearcher.BTREE_ALGORITHM;
|
int algorithm = DbSearcher.BTREE_ALGORITHM;
|
||||||
try {
|
try {
|
||||||
DbConfig config = new DbConfig();
|
DbConfig config = new DbConfig();
|
||||||
DbSearcher searcher = new DbSearcher(config, dbPath);
|
DbSearcher searcher = new DbSearcher(config, file.getAbsolutePath());
|
||||||
Method method = null;
|
Method method = null;
|
||||||
switch (algorithm) {
|
switch (algorithm) {
|
||||||
case DbSearcher.BTREE_ALGORITHM:
|
case DbSearcher.BTREE_ALGORITHM:
|
||||||
|
|||||||
Reference in New Issue
Block a user