نمایش نتایج 1 تا 12 از 12

نام تاپیک: Application scope in spring framework

  1. #1
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    Application scope in spring framework

    با سلام

    برای انجام پروژه ای نیاز دارم که 10 ثانیه یک بار اطلاعاتی رو از فایل خونده و در database ذخیره کنم برای اینکه هر 10 ثانیه این کارانجام شود از quartz استفاده می کنم اما نمی دونم کجا باید این کلاس رو فراخوانی کنم که با start سرور کارش رو شروع کنه و در تمام مدت Scope خودش رو نگه دارد ؟

    spring 3
    jsf 1.2
    server:apache tomcat

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    سن
    44
    پست
    966

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط shani1367 مشاهده تاپیک
    با سلام

    برای انجام پروژه ای نیاز دارم که 10 ثانیه یک بار اطلاعاتی رو از فایل خونده و در database ذخیره کنم برای اینکه هر 10 ثانیه این کارانجام شود از quartz استفاده می کنم اما نمی دونم کجا باید این کلاس رو فراخوانی کنم که با start سرور کارش رو شروع کنه و در تمام مدت Scope خودش رو نگه دارد ؟

    spring 3
    jsf 1.2
    server:apache tomcat
    در context spring از آن با scope پیشفرض instance بگیری مشکلی نداره
    scope پیشفرض singleton هست.

    به لینک یک نگاه بکن
    http://www.mkyong.com/spring/spring-...duler-example/

  3. #3
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    Question نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط javaphantom مشاهده تاپیک
    در context spring از آن با scope پیشفرض instance بگیری مشکلی نداره
    scope پیشفرض singleton هست.

    به لینک یک نگاه بکن
    http://www.mkyong.com/spring/spring-...duler-example/
    سلام و تشکر
    من از anotation ها استفاده می کنم
    یعنی اگر کلاسم رو اینجوری بنویسم حل میشه؟

    @Scope("singleton")
    @Component("FooComponent")
    public class FooComponentImpl implements FooComponent {

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    سن
    44
    پست
    966

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط shani1367 مشاهده تاپیک
    سلام و تشکر
    من از anotation ها استفاده می کنم
    یعنی اگر کلاسم رو اینجوری بنویسم حل میشه؟

    @Scope("singleton")
    @Component("FooComponent")
    public class FooComponentImpl implements FooComponent {

    همانطور که گفتم scope پیشفرض همیشه در spring همان singleton هست پس اگرم نذاشتی نزاشتی.

    در مورد @Component که زدی فقط باید حواست باشه که توی xml فایلی که داری تو appcontext می یاریش بالا یا همان load می کنی
    <context:annotation-config/>
    <context:component-scan base-package=""/>
    رو اعمال کرده باشی تا بتونه اسکن کنه و کلاس رو instance بگیره. و در جای دیگه این کلاس رون lookup یا inject کنی با همون نامی که توی Component@ دادی

  5. #5
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط javaphantom مشاهده تاپیک
    همانطور که گفتم scope پیشفرض همیشه در spring همان singleton هست پس اگرم نذاشتی نزاشتی.

    در مورد @Component که زدی فقط باید حواست باشه که توی xml فایلی که داری تو appcontext می یاریش بالا یا همان load می کنی
    <context:annotation-config/>
    <context:component-scan base-package=""/>
    رو اعمال کرده باشی تا بتونه اسکن کنه و کلاس رو instance بگیره. و در جای دیگه این کلاس رون lookup یا inject کنی با همون نامی که توی Component@ دادی
    ممنون از link قبلی اما من تو پروژه کلاسی که متد main داشته باشه ندارم یعنی یه webApplication دارم ایا باید کلاسی با متد main داشته باشم؟

    بله در حال حاضر این کلاس اسکن می شه و کاری که می خوام انجام میشه
    اما می خوام کلاس از زمان شروع کار سرور کارش رو شروع کنه نه زمانی که reuqest میرسه،یعنی در حال حاضر حتما باید از طریق درخواست browser یه بار این کلاس صدا زده بشه .اما نباید اینطور باشه.میشه چنین کاری کرد؟


    شاید من اصلا نباید از component یا controller استفاده کنم و باید با کلاس های ساده این کار رو انجام بدم اما من برای ذخیره در database از Dao استفاده می کنم اما نمی تونم این Dao رو از کلاسی اسکن نمیشه فراخوانی کنم
    اگر منبعی برای مطالعه داشته باشین ممنون می شم در اختیار من قرار بدین

    تشکر

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    سن
    44
    پست
    966

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط shani1367 مشاهده تاپیک
    ممنون از link قبلی اما من تو پروژه کلاسی که متد main داشته باشه ندارم یعنی یه webApplication دارم ایا باید کلاسی با متد main داشته باشم؟

    بله در حال حاضر این کلاس اسکن می شه و کاری که می خوام انجام میشه
    اما می خوام کلاس از زمان شروع کار سرور کارش رو شروع کنه نه زمانی که reuqest میرسه،یعنی در حال حاضر حتما باید از طریق درخواست browser یه بار این کلاس صدا زده بشه .اما نباید اینطور باشه.میشه چنین کاری کرد؟


    شاید من اصلا نباید از component یا controller استفاده کنم و باید با کلاس های ساده این کار رو انجام بدم اما من برای ذخیره در database از Dao استفاده می کنم اما نمی تونم این Dao رو از کلاسی اسکن نمیشه فراخوانی کنم
    اگر منبعی برای مطالعه داشته باشین ممنون می شم در اختیار من قرار بدین

    تشکر
    تو web داستانش فرق می کنه برای اینکه بخوای context بیاری بالا. اون فایل xml ی که context شما هست رو در داخل classpath برنامه قرار بده. بطوری و بعد در فایل web.xml این تغییرات رو باید داشته باشی که هنگامی که داره پروژه deploy می شه context ها یکی یکی بالا بیان

    اول باید یک همچین چیزی داشته باشی که xml فایل های مربوط به spring رو معرفی کنی

    برای مثال

    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:/applicationContext-resources.xml
    classpath:/applicationContext-dao.xml <!--core module-->
    classpath*:/applicationCoreContext.xml <!--core module-->
    /WEB-INF/applicationContext*.xml
    /WEB-INF/cxf-servlet.xml
    <!--/WEB-INF/security.xml-->
    </param-value>
    </context-param>



    گام دوم باید بهش بفهمونی که از این context ها می خوام استفاده کنم برای ineject یا lookup

     <listener>
    <listener-class>org.springframework.web.context.ContextLoade rListener</listener-class>
    </listener>

  7. #7
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    نقل قول: Application scope in spring framework

    با سلام و تشکر از شما
    ممنون از مطالب خوبتون،من هر دو مورد رو در web.xml دارم و پروژه ام اجرا می شه

    ااما سوال من این هست :
    من کلاسی می خوام داشته باشم که وقتی سرور من اجرا می شه بدون درخواست هیچ request ی بتونه اجرا بشه و هر 10 ثانیه یه بار کاری که من می خوام رو انجام بده؛ آیا با استفاده از همین پروژه می تونم این کار رو انجام بدم؟ یا اینکه باید یه جاوا اپلیکیشن بنویسم و همراه با استارت سرور اون رو هم ران کنم؟ یا اصلا tomcat امکانی برای انجام این کار داره؟

    ممنون از توجه شما

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    سن
    44
    پست
    966

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط shani1367 مشاهده تاپیک
    با سلام و تشکر از شما
    ممنون از مطالب خوبتون،من هر دو مورد رو در web.xml دارم و پروژه ام اجرا می شه

    ااما سوال من این هست :
    من کلاسی می خوام داشته باشم که وقتی سرور من اجرا می شه بدون درخواست هیچ request ی بتونه اجرا بشه و هر 10 ثانیه یه بار کاری که من می خوام رو انجام بده؛ آیا با استفاده از همین پروژه می تونم این کار رو انجام بدم؟ یا اینکه باید یه جاوا اپلیکیشن بنویسم و همراه با استارت سرور اون رو هم ران کنم؟ یا اصلا tomcat امکانی برای انجام این کار داره؟

    ممنون از توجه شما
    lمعلومه که داره، اگر نداشت باید می انداختیش دور.

    servlet ها. من توی این سایت هزار بار به جای کلمه تام کت یا وب اپیلیکیشن از کلمه servlet container استفاده کردم و باز به اسرار هی حرف خودشون رو می زنند. مهم نیست. مام حرف خودمون رو می زنیم.

    سرولت ها کلاس هایی هستند که از طریق سرولت کانتینرها مدیریت می شوند. اگر یک سرولت تعریف کنی توی همون web.xml می تونی معرفی کنی و وقتی اومد بالا برنامت ران بشه.

    اما دقیقا context spring هم داره همین کار رو برات می کنه. می گی نه. توی constructor کلاسی که می خوای وقتی برنامه اومد بالا بره ازش new کنه یک log بزن. بندازش توی spring context و همون کارایی که بهت گفتم بکن خودت می بینی وقتی context اومد بالا log زده می شه

  9. #9
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    نقل قول: Application scope in spring framework

    بله! مرسی
    داشت من کلاسمو با این listener تو web.xml صدا میزنم و اجرا می شه هر 10 ثانیه یه بار اما فقط خطا داره
    <listener>
    <listener-class>
    org.quartz.ee.servlet.QuartzInitializerListener
    </listener-class>
    </listener>


    آیا این همون انداختن تو context هست؟
    یعنی در حقیقت هلان مشکل من همونه که dao و services ها رو تو این کلاس نمیشناسه،با اینکه معرفیش کردم تو فایل services_context اما خطا داره !!!

    <context:component-scan base-package="com.anisa.quartz" scoped-proxy="targetClass" />


    ممنون میشم این مرحله اش هم همراهی کنید.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    سن
    44
    پست
    966

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط shani1367 مشاهده تاپیک
    بله! مرسی
    داشت من کلاسمو با این listener تو web.xml صدا میزنم و اجرا می شه هر 10 ثانیه یه بار اما فقط خطا داره
    <listener>
    <listener-class>
    org.quartz.ee.servlet.QuartzInitializerListener
    </listener-class>
    </listener>


    آیا این همون انداختن تو context هست؟
    یعنی در حقیقت هلان مشکل من همونه که dao و services ها رو تو این کلاس نمیشناسه،با اینکه معرفیش کردم تو فایل services_context اما خطا داره !!!

    <context:component-scan base-package="com.anisa.quartz" scoped-proxy="targetClass" />


    ممنون میشم این مرحله اش هم همراهی کنید.
    دیگه یکدومشه نه هر جفتش

  11. #11
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    نقل قول: Application scope in spring framework

    نقل قول نوشته شده توسط javaphantom مشاهده تاپیک
    دیگه یکدومشه نه هر جفتش
    بااین listener که نوشتم کلاس job رو که برای quartz نوشتم معرفی می کنم حالا تو این کلاس یه کلاس از نوع services رو فراخوانی می کنم که کلاسش این جوری هست :
    public class SchedulerListener implements Job {

    List<String> fooList;
    Foo Foo;
    private int lastCounter=0;

    @Autowired
    private FooService fooService;

    @SuppressWarnings("unchecked")
    public void readFileToList() {
    try {
    File file = new File(
    "F:\\JAVA\\work\\SPRING WORK\\projects\\AniFooMonitoring\\foo.txt");
    fooList = FileUtils.readLines(file);
    savelinesToDb();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public void savelinesToDb() {

    int toIndex = fooList.size();
    System.out.println("last:counter:"+lastCounter +" ToIndex:"+toIndex);
    fooList = fooList.subList(lastCounter, toIndex);
    fooService.savelinesToDb(fooList);
    lastCounter = toIndex;
    System.out.println("last:counter:"+lastCounter +" ToIndex:"+fooList.size());

    }
    public void execute(JobExecutionContext context) throws JobExecutionException {
    System.out.println("*****************Start RUN Trigger*************");
    readFileToList();
    System.out.println("*****************Start RUN Trigger*************");
    }
    {

    اما زمانی که می خواد اجرا بشه به محض رسیدن به این خط :
    fooService.savelinesToDb(fooList);
    خطا میده:
    Caused by: java.lang.NullPointerException

    که به دلیل استفاده از Services هست اما با همون معرفی در context هم حل نشد!
    امیدوارم مشکلم رو درست بیان کرده باشم

  12. #12
    کاربر جدید
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    یزد
    سن
    36
    پست
    11

    نقل قول: Application scope in spring framework

    با تشکر از شما

    مشکلم حل شد.

تاپیک های مشابه

  1. گفتگو: Spring Framework For Java
    نوشته شده توسط javaphantom در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 13
    آخرین پست: دوشنبه 02 دی 1392, 00:12 صبح
  2. Spring Framework و JavaEE
    نوشته شده توسط mazdadoost در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 36
    آخرین پست: سه شنبه 12 آبان 1388, 20:48 عصر
  3. Web application framework
    نوشته شده توسط ms.shams در بخش توسعه وب (Web Development)
    پاسخ: 6
    آخرین پست: پنج شنبه 16 آبان 1387, 13:05 عصر
  4. گزینه Enable application framework
    نوشته شده توسط Bolandirag در بخش VB.NET
    پاسخ: 4
    آخرین پست: چهارشنبه 07 فروردین 1387, 00:55 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •