Halo是使用Java语言开发的一个博客系统,基于SpringBoot框架。这里下载使用的是halo-1.0.0-beta.7
的版本。
1. 查看配置
build.gradle配置
主要添加使用到的一些工具的依赖
1 | plugins { |
resource目录下的application.yaml配置
主要设置服务器端口等信息,SpringBoot的数据源、数据库等信息
1 | server: |
2. StartedListener
添加了一个StartedListener
implements ApplicationListener
监听程序的启动,并执行自定义的方法;
1 | package run.halo.app.listener; |
printStartInfo()
1 | private void printStartInfo() { |
通过调用optionService
的方法获取blogUrl:optionService.getBlogBaseUrl()
在optionServiceImpl
实现类中实现如下:
1 |
|
getByProperty(BlogProperties.BLOG_URL)
最终调用optionServiceImpl
的getByKey()方法:
1 |
|
通过listOptions()列出所有的键值对,再通过key获取对应的值。
需要注意的是,在实现类optionServiceImpl
中构造器会初始化
1 | private final Map<String, PropertyEnum> propertyEnumMap; |
1 | public OptionServiceImpl(OptionRepository optionRepository, |
listOptions()
实现:
1 |
|
initThemes()
1 | private void initThemes() { |
themeService.getBasePath()方法中返回ThemeServiceImpl
中的themeWorkDir
而ThemeServiceImpl
实现类中的构造器初始化了themeWorkDir路径:C:\Users\zzt.halo\templates\themes
1 | themeWorkDir = Paths.get(haloProperties.getWorkDir(), THEME_FOLDER); |
- 本文作者: zicair
- 本文链接: https://zicair.github.io/2020/08/31/Halo开源项目学习-1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!