ابتدا یک پروژه ساده maven را در intellij ایجاد می کنیم:
کامپایلر source و target جاوا را به mavenمعرفی می کنیم:
و dependency های زیر را نیز به پروژه اضافه می کنیم:
پس از آن برای مثال پکیج com.springaop.sample و فایل appConfiguration که فایل کانفیگ spring هست را به این صورت به آن اضافه می کنیم:
اما همانطور که ملاحظه می کنید intellij نام آن را هایلایت کرده است و وقتی موس را روی آن می برم اینطور راهنمایی می کند که:
عدم توجه به این اخطار برای من هزینه 4 روز زمان، انرژی، شکست و تلاش بود :) چون نمی دانستم که مشکل ممکن است از این موضوع باشد که برای برطرف کردن آن باید به این صورت عمل کنیم که به بخش project structure برویم:
و 5 مرحله ی زیر را به ترتیب طی می کنیم:
در مرحله بعد کلاس اجرایی spring که دارای متد main (کلاس اصلی اجرای پروژه) هست را به پروژه اضافه می کنیم:
در حال حاضر فضای کاری spring آماده است تا ما Object های خود را به spring context معرفی کنیم. برای این کار یک interface بسیار ساده که تنها یک متد دارد (که در جاوا به این interface ها اصطلاحا functional interface می گویند) می سازیم:
و یک implementation بسیار ساده از آن را به پروژه اضافه می کنیم:
به کلاس اجرایی Application می رویم و این Bean تازه تعریف شده (با نام helloWorldImpl) را از context استخراج و متد ()sayHello آن را فراخوانی می کنیم:
از برنامه یک اجرا می گیریم تا مطمئن شویم تا اینجای کار درست آمده ایم:
همانطور که می بینید خروجی در کنسول چاپ شده است و این یعنی تا اینجای کار همه چیز اکی هست.
پس از آن اولین Aspect خود را به پروژه اضافه می کنیم.
برای اینکار یک package با نام aop داخل com.springaop.sample می سازیم و کلاسی با نام AopSample را به این صورت به آن اضافه می کنیم:
سپس EnableAspectJAutoProxy@ را به کلاس AppConfiguration اضافه می کنیم:
پس از انجام این مراحل وقتی برنامه را دوباره اجرا کنیم خروجی زیر را می گیریم که نشان میدهد aspect اجرا شده است: