injizieren Ich benutze die Play-Framework-Version 2.49, ich versuche, eine Abhängigkeits-Injektion zu tun, und es ist mein erstes Mal, dies zu tun. Ich habe 3 Ordner-Schnittstelle: Repository: Controller. Die Schnittstelle legt abstrakte Methoden fest, die ich in einem Repository-Ordner implementiere und dann in eine Controller-Aktion injiziere. Ich bin nur verloren, wenn es um die Controller-Aktion geht. Hier ist ein Beispielcode von MinenScala PlayFramework wie kann ich Repository-Methode in Funktion
Schnittstelle
package Interface
abstract class Iprofiles {
def edit_profile
def view_profile
def forgot_password
}
Repository
package Repository
import Interface.Iprofiles
import slick.driver.PostgresDriver.api._
class ProfileRepository extends Iprofiles {
val db= Database.forConfig("database")
// These 3 methods will have Database logic soon
def edit_profile: Unit
def view_profile: Unit
def forgot_password: Unit
}
-Controller
package controllers
import play.api.data.Form
import play.api.data.Forms._
class Relations extends Controller {
def MyAction() = Action {
// How can I inject edit_profile in the repository folder here
Ok()
}
}
Meine Repository-Methoden sind im Moment leer, aber ich werde bald Datenlogik in ihnen haben. In meinem Controller MyAction() Methode zum Beispiel, wie kann ich eine DI und einschließlich edit_profile aus dem Repository-Ordner? Ich habe gesucht, wie man das erledigt, aber nichts hat funktioniert
Ich habe DI in Play (meist mit Guice) für Paare letzten Tagen, und mein Verständnis ist, dass der empfohlene Weg ist, indem Abhängigkeiten durch Konstruktoren, nicht in Methoden injiziert. Wäre das für Sie akzeptabel? – michaJlS