分享 周末瞎折腾 spring 的坑

kaka · 2014年12月21日 · 最后由 mogodb 回复于 2015年03月15日 · 2587 次阅读

上比较诡异的图吧 之前一个同事遇到的问题,不管你怎么改 config/secrets.yml 配置文件,用 Rails.application.secrets 访问还时初始化的配置,结束 rails c 重新运行也一样,后来跟踪了一下源码发现 gem 包 spring 做了处理。

简单的介绍 spring

它帮我们在本地开发的命令 (rails console, rails generate, rails runner) 做预加载动作,在我们初始打开终端运行这些命令的时候 spring 会在后台启动一个服务,当我们第二次运行这些命令时就不会重复加载 Rails.application.initializers,这样运行速度会快很多,你可以在你的项目目录运行bin/spring status下查看状态,当我们改动 spring watcher 的一些文件时候 spring 服务会自动 reload.

所以上面这个问题是因为这个 spring 的版本 1.1.3 它没有对 secrets.yml 进行 watch 所以改动时 spring 不会重新 reload, 把 spring 的版本更新 1.2.0 就可以了。

还有在 rails c 运行Spring.watcher.send(:expanded_files)查看 watcher 的文件列表,也可以手动加一些文件 watcher。

下次童鞋们遇见这坑就不会陌生了

搞 java spring?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号