Плагины
Плагин Play 2 — это класс, который расширяет класс Java play.Plugin или имеет признак Scala play.api.Plugin . Этот класс может быть чем-то, что вы написали в своем собственном приложении, или это может быть плагин из модуля.
Написание плагина на Java
Создайте новый класс и продлите его. Плагин. Есть три метода, доступных для переопределения — onStart (), onStop () и enabled (). Вы также можете добавить конструктор, который принимает аргумент play.Application .
Чтобы некоторые функции возникали при запуске приложения, переопределите onStart (). Чтобы функциональность возникала при остановке приложения, переопределите onStop (). Это так просто! Вот пример реализации, которая не переопределяет enabled ().
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package be.objectify.example;import play.Application;import play.Configuration;import play.Logger;import play.Plugin;/** * An example Play 2 plugin written in Java. */public class MyExamplePlugin extends Plugin{ private final Application application; public MyExamplePlugin(Application application) { this.application = application; } @Override public void onStart() { Configuration configuration = application.configuration(); // you can now access the application.conf settings, including any custom ones you have added Logger.info("MyExamplePlugin has started"); } @Override public void onStop() { // you may want to tidy up resources here Logger.info("MyExamplePlugin has stopped"); }} |
Написание плагина в Scala
Создайте новый класс Scala, и он будет расширять play.api.Plugin. Как и в версии Java, есть методы onStart (), onStop () и enabled () вместе с аргументом конструктора play.api.Application. Вот реализация Scala:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package be.objectify.exampleimport play.api.{Logger, Application, Plugin}/** * An example Play 2 plugin written in Scala. */class MyExamplePlugin(application: Application) extends Plugin{ override def onStart() { val configuration = application.configuration; // you can now access the application.conf settings, including any custom ones you have added Logger.info("MyExamplePlugin has started"); } override def onStop() { // you may want to tidy up resources here Logger.info("MyExamplePlugin has stopped"); }} |
Подключить плагин к вашему приложению
Независимо от языка реализации, плагины вызываются непосредственно Play, как только вы добавили их в файл conf / play.plugins. Этот файл не создается при запуске нового приложения, поэтому вам нужно добавить его самостоятельно. Синтаксис: <приоритет>: <имя класса>. Например, чтобы добавить пример плагина в ваш проект, вы должны использовать
|
1
|
10000:be.objectify.example.MyExamplePlugin |
Имя класса — это имя вашего плагина. Приоритет определяет порядок запуска плагинов, и просто должен быть числом, которое больше или меньше номера другого плагина. Если у вас есть несколько плагинов, вы можете явно заказать их:
|
1
2
|
5000:be.objectify.example.MyExamplePlugin10000:be.objectify.example.MyOtherExamplePlugin |
Модули
Модуль можно рассматривать как приложение многократного использования, которое вы можете включить в свое собственное приложение. Это аналог сторонней библиотеки, которая добавляет определенные функции. Модуль может содержать плагины, которые вы можете подключить к своему приложению с помощью файла conf / play.plugins.
Например, если вы используете Deadbolt 2, вам необходимо добавить в файл play.plugins следующее:
|
1
|
10000:be.objectify.deadbolt.DeadboltPlugin |
Список модулей Play 2 можно найти на вики Play 2 GitHub .
Вы можете прочитать больше о создании модулей для Play 2 здесь и здесь .
Справка: Play 2 — модули, плагины, какая разница? от нашего партнера JCG Стива Чалонера в блоге Objectify .