كيفية جعل جزءا لا يتجزأ من بريمج محرك مثيل سيرفلتس بفارغ الصبر?

StackOverflow https://stackoverflow.com/questions/75379

  •  09-06-2019
  •  | 
  •  

سؤال

المشكلة بسيطة ، ولكن أنا أعاني قليلا بالفعل.

Server server = new Server(8080);  
Context context = new Context(server, "/", Context.NO_SESSIONS);
context.addServlet(MainPageView.class, "/");
context.addServlet(UserView.class, "/signup");
server.start();

هذا هو معيار جميلة قطعة من التعليمات البرمجية التي يمكنك أن تجد في أي مكان في رصيف العالم.يجب تطبيق يدمج جيتي كما بريمج المحرك وبعض servlets.

إنشاء مثيل من بعض هذه سيرفلتس يتطلب الثقيلة تعمل على بدء التشغيل.أقول – قراءة إضافية ملفات التكوين ، وربط قاعدة البيانات ، إلخ.كيف يمكنني جعل بريمج محرك مثيل كل سيرفلتس بفارغ الصبر ، لدرجة أنني يمكن أن تفعل كل العمل الشاق مقدما وليس على المستخدم الأول الطلب ؟

هل كانت مفيدة؟

المحلول

لست متأكدا لماذا باستخدام Guice جعل جاستن الخيار لا عمل لك.ما هو بالضبط الحصول على حقن ؟ لست متأكدا إذا كان هذا سوف تساعدك في كل شيء لأنها هي مشابهة جدا ما جاستن كتب أعلاه ولكن إذا كنت تفعل ذلك بهذه الطريقة, رصيف سوف تفعل في الواقع إنشاء.

Context context = new Context(server, "/", Context.NO_SESSIONS);
ServletHolder mainPageViewHolder = new ServletHolder(MainPageView.class);
// Do this to force Jetty to instantiate the servlet
mainPageViewHolder.getServlet();  
context.addServlet(mainPageViewHolder, "/");

نصائح أخرى

استخدام Context.addServlet الزائد أن يأخذ ServletHolder. ServletHolder هي الفئة التي تقبل أي فئة أو بريمج سبيل المثال.

Servlet myServlet = new MyServlet();
ServletHolder holder = new ServletHolder(myServlet);
context.addServlet(holder, "/");

هذا يفترض جيتي 6.أعتقد أنه سوف يعمل على رصيف 7 كذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top