کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

درس نوزدهم : آموزش Aop در چهارچوب کاری Spring

این مقاله قدیمی است، برای مطالعه مقاله جدید بارگذاری شده در این زمینه بر روی عبارت زیر کلیک کنید :

آموزش AOP Concepts-Java Spring

آموزش Aop در چهارچوب کاری Spring

یکی از Component های اصلی و کلیدی چهارچوب کاری Spring ، کامپوننت AOP یا Programming Aspect oriented است .
Aspect oriented Programming باعث تفکیک شدن منطق و کدهای برنامه ( Logic ) به بخش های مجزایی به نام So-Called Concern می شود .
توابعی که بخش های مختلف یک برنامه را به هم وصل می کنند را Cross-Cutting Concerns می گویند . Cross-Cutting Concerns به صورت مفهومی ، از business Logic برنامه جدا هستند . مثال های مختلفی را برای این نوع برنامه های توان ذکر کرد مثل عملیات Logging ، امنیت یا security و ... . واحد اصلی هم پیمانه کردن کدها در OOP کلاس است ، اما در AOP از مفهوم aspect یه جای کلاس استفاده می شود . Dependency Injection به شما کمک می کند تا اشیای برنامه خود را از هم جدا کنید . از طرف دیگر AOP این امکان را در اختیارتان قرار داده تا Cross-cutting Concern های برنامه را از Object هایی که آنها را تحت تاثیر قرار می دهند ، تفکیک کنید . AOP همانند trigger ها در زبان های برنامه نویسی مثل Perl یا .Net هستند .
Spring AOP ، رهگیری های کدی در اختیار شما قرار می دهد که به وسیله آنها ، می توانید فرآیند اجرای application را قطع کنید برای مثال ، وقتی که یک متد اجرا می شود شما می توانید کاربردها و کلیدهایی را برای مراحل قبل و بعد از اجرای متد ، به آن اضافه کنید .


تکنولوژی های AOP

قبل از شروع کار با AOP ، اجزه بدهید تا با مفهوم ها و اجرای اصلی AOP آشنا شویم . مواردی که در جدول زیر معرفی شده اند ، مختص Spring نبوده و بیشتربه AOP مربوط می شوند :


  • Aspect : Aspect ماژولی است که دارای تعدادی API بوده و زمینه های لازم جهت Cross-Cutting را فراهم می کند . برای مثال ، یک ماژول Logging ، به عنوان AOP Aspect for نامیده خواهد شد .
  • Join Point : Join Point نقطه ای در برنامه شماست که از طریق آن می توانید AOP Aspect را به برنامه متصل کنید . همچنین شما می توانید بگویید ، Join Point مکان واقعی است که یک action را از چهارچوب کاری Spring AOP دریافت می کند .
  • Advise : این مفهوم ، action ای است که برنامه قبل یا از اجرای متد انجام می دهد . در واقع قطعه کدی است که توسط چهارچوب کاری Spring AOP در خلال اجرای برنامه ، فراخوانی می شود .
  • Pointcut : Pointcut مجموعه ای از یک یا چندین Join Point است که advise بایستی در آن اجرا شود . شما می توانید Pointcut ها را به وسیله عبارت های دستوری ( expressions ) و یا الگوها ( pathern ) ، همانطور که در مثال های عملی درس خواهید داد ، تعیین نمایید .
  • Introduction : یک Introduction به ما امکان می دهد تا متدها و خواص جدیدی را به کلاس های موجود اضافه کنیم .
  • Target Object : شی است که توسط یک یا چند aspect مورد توجه قرار گرفته و همیشه یک Proxied خواهد بود . همچنین به آن advised object هم می گویند .
  • Wearing : Wearing پروسه اتصال aspect ها به سایر اجزا و اشیای برنامه برای ایجاد advise object می باشد . این پروسه می تواند در زمان کامپایل ، لود و یا اجرا انجام شود .

مدل های مختلف Advice

Spring aspects می توانند با 5 نوع Advice ای که در جدول زیر معرفی شده اند ، کار کنند :


  • before : این advice قبل از اجرای متد مورد نظر اجرا می شود .
  • after : این advice بعد از اجرای متد مورد نظر و بدون توجه به خروجی آن اجرا می شود .
  • after-returning :این advice پس از اجرای متد ، به شرطی که کاملا به درستی اجرا شده باشد رخ می دهد .
  • after-throwing : این advice نیز پس از اجرای متد ، به شرطی که متد درست اجرا شده و یا اشکالی در آن رخ داده باشد انجام می شود .
  • around : این advice نیز قبل و بعد از فراخوانی متد مورد نظر ، اجرا می شود .

شیوه های مختلف اجرای Aspect ها

Spring از دو رویکرد @AspectJ annotation style و schema-based برای اجرای aspect ها استفاده می کند . این دو رویکرد را در جدول زیر معرفی کرده ایم ، برای دریافت اطلاعات بیشتر برروی نام هریک کلیک نمایید : XML Schema based : در این مدل Aspect ها با استفاده از کلاس های معمولی برنامه و مبتنی بر فایل پیکربندی اطلاعات XML اجرا می شوند .
AspectedJ based : در این مدل ، Aspect ها با استفاده از یک شیوه به نام @AspectJ و با کلاس های معمولی جاوا که تحت 5 Java عمل annotation برروی آنها انجام شده است ، اجرا می شوند .

1395/05/28 4265 1440
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...