Saya mencoba mencari cara menggunakan injeksi ketergantungan di Play Framework 2.4. Saya memahami prinsip-prinsip umum, tetapi tidak begitu memahami implikasinya terhadap desain. Alasan umum saya adalah, metode statis di kelas pengontrol terlalu mirip dengan penggunaan variabel global, dan itu dapat dengan mudah menyebabkan masalah dengan keamanan thread, dll., dan secara umum mendorong desain yang buruk. Jadi karena Play sekarang mendorong peralihan ke injeksi ketergantungan, saya harus beralih juga.
Yang membuat saya bingung adalah praktik apa yang baik dalam konteks ini. Saat saya membaca dokumen resmi Play, dokumen tersebut membahas secara singkat tentang injeksi ketergantungan dan kemudian segera menyebutkan anotasi @Singleton. Dan contoh yang tersedia (http://www.typesafe.com/activator/template/play-guice) juga membahas tentang kelas "WelcomeTextGenerator" tunggal.
Jadi saya bertanya-tanya, haruskah saya menggunakan objek tunggal seperti yang tersirat dalam contoh? Jika demikian, apa kelebihannya dibandingkan pendekatan metode statis yang lama? Apakah ada tipe objek tertentu (misalnya, pengontrol?) yang harus berupa objek tunggal, dan apakah ada implikasi kinerja jika tidak menandai objek sebagai objek tunggal?