در این بخش و بخش بعدی, نمونه پیاده سازی یک پروژه Spring Boot را به همراه جزئیات و نکات لازم آن ارائه می دهیم.

قبل از شروع هرکاری ابتدا باید فایل pom.xml را باز کرده و depenency ها یا افزونه های مربوطه را به آن اضافه کنیم.


همچنین چون با دیتابیس کار خواهیم کرد بایستی ابتدا تنظیمات آنرا به فایلی تحت عنوان application.properties که در پوشه resources قرار دارد اضافه شود.

سپس کار طراحی پروژه با کلاس مدل Jpa برای موجودیت Entity User آغاز می شود. در واقع این کلاس به همراه فیلدهایش همان جدول مدنظر ما در پایگاه داده می باشد.

کلاسی بعنوان لایه Controller بنام Controller جهت مدیریت جریان داده در یک مدل سپس آپدیت آن در صورت وقوع تغییر و همچنین mapping یا آدرس دهی داده ها ایجاد شد. در بالای کلاس annotation @RestController بدلیل استفاده از روش انتقال داده Rest قرار داده شد البته در صورت عدم استفاده از روش Rest باید annotation @Controller را بالای کلاس قرار داد. سپس آبجکتی از کلاس Service در آن ایجاد گردید. متد سازنده ای که آبجکت کلاس Service بعنوان پارامتر در آن قرار می گیرد ساخته شد. همچنین متد هایی از کلاس dto برای نمایش مشخصات از دیتابیس بر مبنای id و save مشخصات (set کردن مشخصات) در Controller ایجاد شد که قبل از آن با annotation mapping یعنی GetMapping@ آدرس دهی شده بودند. با استفاده از RequestMapping@ هم این امکان وجود دارد. همچنین می توان پارامتر ایجاد نمود سپس با pathvariable Integer id @ کردن آن بعنوان پارامتر متدی که زیر آن نوشته شده قرار داد. برای نمونه :

localhost:8080/test/2

روش دیگر تعریف پارامتر و آدرس دهی استفاده از RequestParam Integer id@ می باشد که آنرا بعنوان پارامتر متد قرار داده و سپس در مرورگر باید بصورت دستی مقابل آدرس, شماره آیدی را وارد کنیم. برای نمونه :

localhost:8080/test?id=2

نمونه Controller بکار رفته با CrudRepository : 

نمونه Controller بکار رفته با کلاس Repository :

می توان از الگوهای طراحی مختلفی بنا به کاربردمان استفاده کنیم. ما در این پروژه از دو الگوی DTO و DAO استفاده نمودیم.DTO از Data Transfer Object مشتق شده و به معنای آبجکتی برای انتقال داده می باشد. برای بهینه سازی ارتباطات بین کلاس ها و تجمیع آن ها در یک ارتباط برای مثال جهت نمایش اطلاعات خاصی از Entity , در برخی پروژه ها از این الگو استفاده می شود.کلاس dto برای مدل مورد نظر ایجاد و فیلد های مدل را در اینجا هم تعریف و سازنده ای از dto ایجاد کرده سپس فیلدها را بعنوان پارامتر آن قرار می دهیم و باید برای هر فیلد getter & setter ایجاد کرد. ( البته می توان از dto هم استفاده نکرد اما همانطور که ذکر شد استفاده از آن جهت بهینه سازی ارتباطات توصیه می شود )

کلاس dao مخفف Data Access Object به معنای آبجکتی برای دسترسی به داده بوده وخلاصه ای از پیاده سازی زمینه ای دسترسی داده ها برای اشیا Service سرویس را فراهم می کند تا دسترسی شفاف به منبع داده را فعال کند و همچنین ارتباط با منبع داده را برای بدست آوردن ذخیره داده مدیریت می کند..داده های dto پس از ورود به کلاس service باید ( برای انتقال به Repository ) به dao تبدیل شوند که ابتدا باید مشابه کلاس dto برای آن طراحی شده سپس در service متدی برای این تبدیل نوشته شود. همچنین داده های بازگشتی از Repository به service ( برای انتقال به Controller ) باید تبدیل به dto شوند که برای اینکار باید متدی در کلاس service نوشته شود.