Hossein Jabani
Hossein Jabani
خواندن ۲ دقیقه·۳ سال پیش

تجربه شخصی در پیاده سازی اپ Hello World با Spring AOP با استفاده از intellij Idea و Maven

ابتدا یک پروژه ساده maven را در intellij ایجاد می کنیم:

تصویر 1: تعریف پروژه maven
تصویر 1: تعریف پروژه maven

کامپایلر source و target جاوا را به mavenمعرفی می کنیم:

تصویر 2: تعریف کامپایلر برای maven
تصویر 2: تعریف کامپایلر برای maven

و dependency های زیر را نیز به پروژه اضافه می کنیم:

تصویر 3: تعریف dependency های مورد نیاز برای maven
تصویر 3: تعریف dependency های مورد نیاز برای maven

پس از آن برای مثال پکیج com.springaop.sample و فایل appConfiguration که فایل کانفیگ spring هست را به این صورت به آن اضافه می کنیم:

تصویر 4: اضافه کردن کلاس Application Configuration اسپرینگ به پروژه
تصویر 4: اضافه کردن کلاس Application Configuration اسپرینگ به پروژه

اما همانطور که ملاحظه می کنید intellij نام آن را هایلایت کرده است و وقتی موس را روی آن می برم اینطور راهنمایی می کند که:

تصویر 5: مشاهده اخطار مهمی که intellij می دهد
تصویر 5: مشاهده اخطار مهمی که intellij می دهد

عدم توجه به این اخطار برای من هزینه 4 روز زمان، انرژی، شکست و تلاش بود :) چون نمی دانستم که مشکل ممکن است از این موضوع باشد که برای برطرف کردن آن باید به این صورت عمل کنیم که به بخش project structure برویم:

 تصویر 6: رفتن به مسیر File و سپس Project Structure
تصویر 6: رفتن به مسیر File و سپس Project Structure

و 5 مرحله ی زیر را به ترتیب طی می کنیم:

تصویر 7: پنج مرحله spring configuration file mapping در intellij
تصویر 7: پنج مرحله spring configuration file mapping در intellij

در مرحله بعد کلاس اجرایی spring که دارای متد main (کلاس اصلی اجرای پروژه) هست را به پروژه اضافه می کنیم:

تصویر 8: تعریف کلاس اجرایی پروژه
تصویر 8: تعریف کلاس اجرایی پروژه

در حال حاضر فضای کاری spring آماده است تا ما Object های خود را به spring context معرفی کنیم. برای این کار یک interface بسیار ساده که تنها یک متد دارد (که در جاوا به این interface ها اصطلاحا functional interface می گویند) می سازیم:

تصویر 9: تعریف یک functional interface
تصویر 9: تعریف یک functional interface

و یک implementation بسیار ساده از آن را به پروژه اضافه می کنیم:

تصویر 10: تعریف یک implementation از interface معرفی شده ی قبلی
تصویر 10: تعریف یک implementation از interface معرفی شده ی قبلی

به کلاس اجرایی Application می رویم و این Bean تازه تعریف شده (با نام helloWorldImpl) را از context استخراج و متد ()sayHello آن را فراخوانی می کنیم:

تصویر 11: استخراج Bean با نام helloWorldImpl از context و فراخوانی متد sayHello آن
تصویر 11: استخراج Bean با نام helloWorldImpl از context و فراخوانی متد sayHello آن

از برنامه یک اجرا می گیریم تا مطمئن شویم تا اینجای کار درست آمده ایم:

تصویر 12: اجرای کلاس main پروژه
تصویر 12: اجرای کلاس main پروژه

همانطور که می بینید خروجی در کنسول چاپ شده است و این یعنی تا اینجای کار همه چیز اکی هست.

پس از آن اولین Aspect خود را به پروژه اضافه می کنیم.

برای اینکار یک package با نام aop داخل com.springaop.sample می سازیم و کلاسی با نام AopSample را به این صورت به آن اضافه می کنیم:

تصویر 13: تعریف و اضافه کردن Aspect به پروژه
تصویر 13: تعریف و اضافه کردن Aspect به پروژه

سپس EnableAspectJAutoProxy@ را به کلاس AppConfiguration اضافه می کنیم:

تصویر 14: اضافه کردن  EnableAspectJAutoProxy@ به فایل AppConfiguration.java
تصویر 14: اضافه کردن EnableAspectJAutoProxy@ به فایل AppConfiguration.java

پس از انجام این مراحل وقتی برنامه را دوباره اجرا کنیم خروجی زیر را می گیریم که نشان میدهد aspect اجرا شده است:

تصویر 15: اجرای نهایی برنامه و مشاهده اجرای aspect
تصویر 15: اجرای نهایی برنامه و مشاهده اجرای aspect


spring aopaophello world spring aopaspect
شاید از این پست‌ها خوشتان بیاید