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

您的位置:首頁技術文章
文章詳情頁

在Spring Boot中從類路徑加載文件的示例

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

資源加載器

使用Java,您可以使用當前線程的classLoader并嘗試加載文件,但是Spring Framework為您提供了更為優雅的解決方案,例如ResourceLoader。

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

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

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

@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)中從資源目錄/類路徑加載文件的示例

如果您想從Spring Boot JAR中的 classpath加載文件,則必須使用該resource.getInputStream()方法將其作為InputStream檢索。如果嘗試使用resource.getFile()該方法,則會收到錯誤消息,因為Spring嘗試訪問文件系統路徑,但無法訪問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中從類路徑加載文件的示例的詳細內容,更多關于spring boot 加載文件的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 天堂中文资源在线 | 国产精品一区一区三区 | 亚洲欧洲综合av | 国产成人精品久久二区二区 | 午夜无码国产理论在线 | 亚洲电影免费 | 欧美视频1 | 99自拍视频| 亚洲欧洲视频 | 国产精品一区一区三区 | 日本综合在线观看 | 国产欧美精品区一区二区三区 | 一二区视频 | 久久综合av | 国产激情91久久精品导航 | 成年人黄色一级毛片 | 久久伊人在 | www.久久| 中文字幕不卡 | 丁香婷婷久久久综合精品国产 | 国产精品福利久久久 | 性生生活大片免费看视频 | 麻豆久久久9性大片 | 日韩中文字幕一区二区三区 | 亚洲444eee在线观看 | 在线免费国产视频 | 在线成人 | 久久成人一区 | 国内自拍第一页 | 精品熟人一区二区三区四区 | 一区二区av | 久草新视频 | 欧美美乳 | www亚洲精品 | 国产区在线| 欧美午夜精品理论片a级按摩 | 国产高清精品一区二区三区 | 超碰在线国产 | 人人干人人干人人 | 玖玖在线精品 | 日韩高清中文字幕 |