Как Grails справляется с перезагрузкой динамического класса - PullRequest
2 голосов
/ 16 марта 2011

Как Grails справляется с перезагрузкой динамического класса?

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Я немного покопался, теперь это может быть не идеально и не будет включать в себя все мелкие детали, однако на широком уровне я думаю, что это происходит:

  1. Потокзапускать, скажем, каждые X секунд, этот поток обнаруживает, были ли какие-либо изменения в артефактах Grails (домен, служба, контроллер), могут быть включены пользовательские артефакты.
  2. Если артефакт был изменен, то этотзапускается бит кода, который, я думаю, делает магию:

    GroovyClassLoader gcl = new GroovyClassLoader (application.getClassLoader ());initialisePlugin (gcl.parseClass (DefaultGroovyMethods.getText (conn.getInputStream ())));

Я получил это, осмотрев DefaultGrailsPlugin, который является частью ядра Grails.

Все в Grails рассматривается как плагин, даже служба, домен, контроллеры и т. Д.

0 голосов
/ 16 марта 2011

С пользовательским ClassLoader. Вероятно, неопределенный вопрос и требует слишком глубокого ответа для сайта, как SO Может быть лучше подходит для списка рассылки Grails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...