av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

在Spring Boot中從類(lèi)路徑加載文件的示例

瀏覽:97日期:2023-08-09 11:23:24

資源加載器

使用Java,您可以使用當(dāng)前線(xiàn)程的classLoader并嘗試加載文件,但是Spring Framework為您提供了更為優(yōu)雅的解決方案,例如ResourceLoader。

您只需要自動(dòng)連接ResourceLoader,然后調(diào)用getResource(„somePath“)方法即可。

在Spring Boot(WAR)中從資源目錄/類(lèi)路徑加載文件的示例

在以下示例中,我們從類(lèi)路徑中加載名為GeoLite2-Country.mmdb的文件作為資源,然后將其作為File對(duì)象檢索。

@Service('geolocationservice') public class GeoLocationServiceImpl implements GeoLocationService { private static final Logger LOGGER = LoggerFactory.getLogger(GeoLocationServiceImpl.class); private static DatabaseReader reader = null; private ResourceLoader resourceLoader; @Autowired public GeoLocationServiceImpl(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } @PostConstruct public void init() { try { LOGGER.info('GeoLocationServiceImpl: Trying to load GeoLite2-Country database...'); Resource resource = resourceLoader.getResource('classpath:GeoLite2-Country.mmdb'); File dbAsFile = resource.getFile(); // Initialize the reader reader = new DatabaseReader .Builder(dbAsFile) .fileMode(Reader.FileMode.MEMORY) .build(); LOGGER.info('GeoLocationServiceImpl: Database was loaded successfully.'); } catch (IOException | NullPointerException e) { LOGGER.error('Database reader cound not be initialized. ', e); } } @PreDestroy public void preDestroy() { if (reader != null) { try { reader.close(); } catch (IOException e) { LOGGER.error('Failed to close the reader.'); } } } }

在Spring Boot(JAR)中從資源目錄/類(lèi)路徑加載文件的示例

如果您想從Spring Boot JAR中的 classpath加載文件,則必須使用該resource.getInputStream()方法將其作為InputStream檢索。如果嘗試使用resource.getFile()該方法,則會(huì)收到錯(cuò)誤消息,因?yàn)镾pring嘗試訪(fǎng)問(wèn)文件系統(tǒng)路徑,但無(wú)法訪(fǎng)問(wèn)JAR中的路徑。

@Service('geolocationservice') public class GeoLocationServiceImpl implements GeoLocationService { private static final Logger LOGGER = LoggerFactory.getLogger(GeoLocationServiceImpl.class); private static DatabaseReader reader = null; private ResourceLoader resourceLoader; @Inject public GeoLocationServiceImpl(ResourceLoader resourceLoader) { this.resourceLoader = resourceLoader; } @PostConstruct public void init() { try { LOGGER.info('GeoLocationServiceImpl: Trying to load GeoLite2-Country database...'); Resource resource = resourceLoader.getResource('classpath:GeoLite2-Country.mmdb'); InputStream dbAsStream = resource.getInputStream(); // <-- this is the difference // Initialize the reader reader = new DatabaseReader .Builder(dbAsStream) .fileMode(Reader.FileMode.MEMORY) .build(); LOGGER.info('GeoLocationServiceImpl: Database was loaded successfully.'); } catch (IOException | NullPointerException e) { LOGGER.error('Database reader cound not be initialized. ', e); } } @PreDestroy public void preDestroy() { if (reader != null) { try { reader.close(); } catch (IOException e) { LOGGER.error('Failed to close the reader.'); } } } }

以上就是在Spring Boot中從類(lèi)路徑加載文件的示例的詳細(xì)內(nèi)容,更多關(guān)于spring boot 加載文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩精品一区二区三区视频 | 91色视频在线 | 国产精品69毛片高清亚洲 | 羞羞网站在线观看 | 久久久久久久久久久久久九 | 久久久免费在线观看 | 久在线视频| 免费看91| 亚洲精品99 | 一区二区在线不卡 | 亚洲最大福利网 | 日韩午夜精品 | 日韩在线免费播放 | 精品国产高清一区二区三区 | 久久精品视频在线免费观看 | 亚洲精品欧美一区二区三区 | 午夜精品一区二区三区在线视 | 欧美成人h版在线观看 | 亚洲精品www | 婷婷在线视频 | 国产精品久久久久久久久久妇女 | 欧美日韩三级 | 精品久久99 | 三级成人在线 | 91亚洲国产成人久久精品网站 | 91精品无人区卡一卡二卡三 | 午夜99| 国产一区精品 | 欧美成人高清视频 | 丝袜美腿一区二区三区动态图 | 国产综合久久 | 一区二区三区视频在线免费观看 | 成人激情视频在线观看 | 欧美视频一区二区三区 | 粉嫩一区二区三区四区公司1 | 超碰男人天堂 | 欧美精品一区二区三区在线 | 夜夜爽夜夜操 | 麻豆91av| 精品一区二区三区在线视频 | 国产一区二区影院 |