mirbozorgi.com
mirbozorgi.com
خواندن ۲ دقیقه·۳ سال پیش

نمونه کد فروشگاه با spring boot

قصد داریم در این مقاله مختصر توضیحاتی در خصوص پیاده‌سازی یک پروژه فروشگاهی با spring boot را خدمت شما ارائه دهیم.



معرفی پروژه :

این پروژه یک فروشگاه با قابلیت‌های زیر است :

  • معرفی محصول
  • دسته‌بندی محصولات
  • امکان کامنت‌گذاری
  • امکان رتبه‌بندی محصول توسط کاربران
  • مدیریت کاربران
  • اعمال سطح دسترسی
  • فراموشی رمز عبور
  • ثبت‌نام دو مرحله‌ای
  • اعمال محدودیت بر دسترسی کاربر (Block)
  • سیستم احراز هویت (JWT)


تکنولوژی‌ها :


اگر سایر مقاله‌های ما را بررسی کرده کرده باشید، مشاهده می‌کنید که ما از معماری 3Tier layer برای پیاده‌سازی پروژه‌ها استفاده می‌کنیم. در این‌جا نیز قصد داریم از این معماری بهره بگیریم.


لایه‌ی Core :

همان‌طور که در تصویر مشاهده می‌کنید entity‌های ما شامل موارد زیر است:

  • Category
  • Comment
  • Product
  • Rate
  • UserSecurity
core layer
core layer


کلاس Product :

product entity
product entity


همان‌طور که در تصویر مشاهده می‌کنید ما از کلاس Category یک Relation از نوع OneToOne به کلاس Product ایجاد کردیم.


کلاس UserSecurity :

userSecurity entity
userSecurity entity


لایه‌ی Business :

در این لایه سرویس‌های ما وجود داشته که به اختصار توضیحاتی در مورد مسئولیت‌های آن‌ها، می‌دهیم.

یکی از بخش‌هایی که ما از تکنولوژی JWT استفاده می‌کنیم، در هنگام لاگین است. به نمونه کد زیر دقت کنید :

ما برای ذخیره پسورد از متد MD5 بهره بردیم که این متد در هنگام ثبت‌نام پسورد را به صورت MD5 ذخیره می‌کند. برای لاگین نیز می‌بایست پسورد ورودی را MD5 کرده و سپس با پسورد ذخیره شده مقایسه کنیم.

طبق تصویر اگر تمامی موارد ورودی صحیح باشد، توسط کلاس jwtService یک توکن به کاربر ارجاع می‌دهیم. این توکن جهت درج در header ریکوست، در درخواست‌های بعدی تولید شده است.

jwt create token
jwt create token

برای ساخت توکن به موارد زیر نیازمندیم:

  • Email
  • Role
  • Secret token
  • Creation date
  • Expire Date

کلاس Auth :

ما برای مدیریت هر چه بهتره ریکوست‌ها یک Aspect Oriented Programming (AOP) تعریف کردیم به نام Auth و یک سری تنظیمات به آن اضافه نمودیم که در تصویر مشاهده می‌کنید.

نحوه‌ی کار این AOP بدین صورت است که قبل از request قرار می‌گیرد (در معرفی لایه‌ی Api توضیح می‌دهیم) که مسئولیت بررسی دسترسی کاربر به اون api را برعهده دارد.

همان‌طور که پیش‌تر گفتیم در هنگام لاگین یک توکن برای کاربر تولید شده که می‌بایست در سایر ریکوست‌ها این توکن در header قرار بگیرد. زمانی‌که ریکوست وارد سیستم می‌شود این annotation توکن را از header خوانده و توسط کلاس jwtService بررسی می‌کند که آیا این توکن دسترسی به ریکوست خواسته‌شده را دارد و یا خیر.


لایه‌ی Api :

ما برای هر یک از entity های خود یک controller در نظر گرفتیم.

طبق تصویر در بعضی ریکوست‌ها annotation Auth قرار دارد که پیش‌تر در مورد آن توضیح دادیم.

مسیر مادر در این کلاس category/ بوده و سایر api ها وابسته به کاربردشان دارای مسیر خود هستند.


ما سعی نمودیم در این پروژه‌ی کاربردی چگونگی پیاده‌سازی و استفاده از jwt و postgreSQL در محیط Spring Boot را خدمت شما ارائه دهیم.

پیشنهاد می‌کنیم جهت درک بهتر، کد را به صورت کامل از صفحه github ما مشاهده نمایید.

در صورتی‌که انتقاد و یا پیشنهادی دارید، در قسمت نظرات ما را مطلع نمایید. همچنین می‌توانید برای دسترسی به کدهای بیشتر از سایت ما دیدن کنید.

javaspringspring bootshopjwt
ما تیم mirbozorgi.com هستیم. اگر بعد از خوندن مقاله های ما فکر کردید جایی در اشتباه هستیم؛ لطفا بما ایمیل بزنید. اگر هم نیاز به یادگیری تکنولوژی جدیدی دارید خوشحال میشیم بهتون کمک کنیم.
شاید از این پست‌ها خوشتان بیاید