久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

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

瀏覽:103日期: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
相關文章:
主站蜘蛛池模板: 久久婷婷视频 | 四虎首页| 99精品久久久久久久免费看蜜月 | 亚洲伊人中文字幕 | 精品www| 午夜视频网| 国产欧美一区二区精品婷 | 激情综合五月 | 中文字幕亚洲一区 | 国产亚洲精品精品国产亚洲综合 | 国产一级网站 | 久久久国产精品入口麻豆 | 精品久久一区二区三区 | 天天天堂| 亚洲精品日韩激情欧美 | 成人a在线观看 | 亚洲国产婷婷 | 欧美日韩一区二区三区四区 | 国内精品国产三级国产在线专 | 天天爽夜夜爽夜夜爽精品视频 | 国产精品久久久99 | 99久久精品免费看国产一区二区三区 | 91一级| 黄色影视网址 | 久久久久国产一级毛片高清版小说 | 黑人精品xxx一区一二区 | 男女网站视频 | 成人在线精品 | 午夜一区二区三区 | 欧美一级淫片免费看 | 久久欧美精品 | 99精品九九 | 日韩欧美中文在线 | 美女午夜视频 | 少妇无套高潮一二三区 | 国产日韩欧美视频 | 天堂√在线观看一区二区 | 成人午夜激情 | 欧美一级黄色片免费看 | 爱色区综合网 | 国产一区二区精品久久 |