چگونه یک برنامه CRUD با Spring Boot، Neon Postgres و Azure App Service توسعه دهیم
در این مقاله، نحوه توسعه یک برنامه CRUD (ایجاد، خواندن، بهروزرسانی، حذف) با استفاده از Spring Boot و Neon Postgres را تحلیل خواهیم کرد.
ما همچنین برنامه را در Azure App Service مستقر خواهیم کرد و با تنظیم ویژگی هایی مانند مقیاس خودکار و محیط های متعدد، آن را آماده تولید خواهیم کرد.
شما خواهید آموخت که چگونه Neon Postgres می تواند فرآیندهای توسعه و استقرار شما را در طول مسیر آسان تر کند.
در اینجا چیزی است که ما پوشش خواهیم داد:
راه اندازی پایگاه داده Neon Postgres و تحلیل ویژگی های آن
ساختن یک برنامه CRUD با استفاده از Spring Boot و استقرار برنامه در سرویس Azure App
چرا نئون برای زیرساخت هایی که به صورت خودکار مقیاس می شوند مناسب است
انشعاب پایگاه داده در Neon Postgres و اینکه چگونه می تواند گردش کار توسعه را تسهیل کند
پیش نیازها
آشنایی با جاوا، Maven و Spring Boot
مبانی پایگاه های داده SQL
آشنایی با سرویس های بدون سرور و ابری
آشنایی با فرآیندهای تست و استقرار
فهرست مطالب
پایگاه داده را ایجاد کنید
نحوه ساخت اپلیکیشن Spring Boot CRUD
پایگاه داده را پیکربندی کنید
نحوه استقرار در سرویس Azure App
یک وب اپلیکیشن جدید ایجاد کنید
نحوه پیکربندی شاخه های پایگاه داده در نئون
Neon Postgres چیست؟
Neon یک پلت فرم پایگاه داده Postgres بدون سرور کاملاً مدیریت شده است. ویژگی هایی مانند در دسترس بودن بالا، پشتیبان گیری خودکار و گزینه های مقیاس بندی برای مدیریت سطوح مختلف ترافیک را ارائه می دهد.
نئون به گونه ای طراحی شده است که مقرون به صرفه و سازگار با توسعه دهندگان باشد و بر ارائه یک تجربه یکپارچه برای توسعه دهندگان تمرکز دارد.
علاوه بر آپشن های استاندارد Postgres، قابلیتهایی مانند انشعاب پایگاه داده را فراهم میکند که به شما امکان میدهد شاخههای Git مانند پایگاه داده را برای اهداف مختلف ایجاد کنید.
نحوه راه اندازی پایگاه داده
برای شروع، بیایید تحلیل کنیم که چگونه می توانید یک پایگاه داده نئون را برای برنامه خود راه اندازی کنید.
دیگر اخبار
مهران مدیری خودش از جشنواره فیلم فجر کنار کشید یا کنارش گذاشتند؟
ابتدا باید یک حساب کاربری در وب سایت نئون ایجاد کنید . برای ثبتنام نیازی به کارت اعتباری نیست و برای شروع بهطور خودکار سطح رایگان را تنظیم میکنید.
در اینجا مقایسه قیمت و ویژگی های پلن های نئون آمده است:
در سطح رایگان، ما 0.5 گیگابایت فضای ذخیره سازی با محاسبات اولیه دریافت می کنیم که برای بازی با پایگاه داده و ساخت برنامه های کوچک کافی است.
پایگاه داده را ایجاد کنید
پس از ثبت نام، می توانید به داشبورد دسترسی داشته باشید و یک پروژه جدید ایجاد کنید.
با پر کردن نام پروژه، منطقه و گزینه های نسخه Postgres ستاره دار شوید. علاوه بر این، ما می توانیم دو گزینه اضافی را انتخاب کنیم:
اندازه محاسبه – شما می توانید اندازه محاسبه حداقل و حداکثر را برای پایگاه داده انتخاب کنید. این برای مقیاس خودکار پایگاه داده بر اساس بار مفید است.
زمان تعلیق – می توانید زمانی را تعیین کنید که پس از آن پایگاه داده در صورت عدم استفاده به حالت تعلیق در می آید. این برای صرفه جویی در هزینه زمانی که پایگاه داده استفاده نمی شود مفید است.
هنگامی که فرم را ارسال کردید، Neon پایگاه داده را ایجاد می کند و جزئیات اتصال را ارائه می دهد.
همانطور که می بینید، پایگاه داده در 3.3 ثانیه راه اندازی شد (در مقایسه با ساعت ها نصب و راه اندازی زیرساخت خود). شما می توانید چندین راه را برای اتصال به پایگاه داده انتخاب کنید. برای این آموزش، جاوا را به عنوان زبان برنامه نویسی خود انتخاب کنید و رشته اتصال JDBC را دریافت کنید.
نحوه ساخت اپلیکیشن Spring Boot CRUD
بعد، بیایید برنامه CRUD خود را راه اندازی کنیم. ما از Spring Boot استفاده خواهیم کرد، زیرا بوت استرپ و پیکربندی آسان برای ساخت برنامه های وب را فراهم می کند.
ما می توانیم از Spring Initializr برای ایجاد یک پروژه Spring Boot جدید با وابستگی های لازم استفاده کنیم:
Spring Web – برای ساخت برنامه های کاربردی وب
Spring Data JPA – برای کار با پایگاه های داده با استفاده از JPA
درایور PostGres – برای اتصال به پایگاه داده Postgres
می توانید پروژه را تولید، دانلود و به IDE مورد علاقه خود وارد کنید.
یک کلاس Entity ایجاد کنید
بیایید یک کلاس entity برای نمایش داده ها در برنامه ایجاد کنیم. ابتدا یک کلاس User
ایجاد کنید:
@Entity(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // Constructors, Getters and Setters }
Enity name users
نام جدولی است که می خواهید در پایگاه داده خود استفاده کنید.
یک مخزن ایجاد کنید
در مرحله بعد، یک رابط مخزن برای تعامل با پایگاه داده ایجاد کنید. رابط JpaRepository
ارائه شده توسط Spring Data JPA را گسترش خواهید داد:
@Repository public interface UserRepository extends JpaRepository<User, Long> { }
باید رابط را با @Repository
حاشیه نویسی کنید تا آن را به عنوان Spring bean علامت گذاری کنید. رابط JpaRepository
متدهایی را برای عملیات CRUD مانند save
، findAll
، findById
، delete
و غیره ارائه می دهد، پس نیازی به نوشتن پرس و جوها به صورت دستی نیست.
شما کلاس موجودیت User
و نوع کلید اصلی Long
به عنوان آرگومان نوع را در رابط JpaRepository
ارائه خواهید کرد.
یک کنترلر REST ایجاد کنید
در نهایت، یک کنترلر REST برای مدیریت عملیات CRUD ایجاد کنید. UserRepository
به کنترلر تزریق می کنید و نقاط پایانی لازم را پیاده سازی می کنید:
@RestController @RequestMapping("/users") public class UserController { private final UserRepository userRepository; public UserController(UserRepository userRepository) { this.userRepository = userRepository; } @GetMapping public List<User> getUsers() { return userRepository.findAll(); } @PostMapping public User createUser(@RequestBody User user) { return userRepository.save(user); } @PutMapping("/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { user.setId(id); return userRepository.save(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable Long id) { userRepository.deleteById(id); } }
در اینجا چند نکته قابل توجه است:
شما از حاشیه نویسی @RestController
برای علامت گذاری کلاس به عنوان کنترل کننده ای استفاده می کنید که درخواست های REST را مدیریت می کند.
حاشیه نویسی @RequestMapping
نشانی وب پایه را برای نقاط پایانی مشخص می کند.
شما در حال تزریق UserRepository
به کنترلر با استفاده از تزریق سازنده هستید.
در نهایت، شما در حال پیادهسازی نقاط انتهایی API خود برای عملیات CRUD با استفاده از حاشیهنویسیهای @GetMapping
، @PostMapping
، @PutMapping
و @DeleteMapping
هستید.
پایگاه داده را پیکربندی کنید
برای اتصال برنامه Spring Boot خود به پایگاه داده Neon Postgres، باید URL پایگاه داده، نام کاربری و رمز عبور را در فایل application.properties
پیکربندی کنید:
spring.datasource.url=jdbc:postgresql://<db-url>/<db-name>?sslmode=require spring.datasource.username=<username> spring.datasource.password=<password> spring.jpa.hibernate.ddl-auto=update
در اینجا، URL پایگاه داده، نام کاربری و رمز عبور ارائه شده توسط Neon هنگام ایجاد پایگاه داده را پیکربندی کردید. ویژگی spring.jpa.hibernate.ddl-auto=update
به Spring Boot می گوید که به طور خودکار جداول یا ستون های لازم را بر اساس کلاس های موجودیت هنگام شروع برنامه ایجاد کند.
نحوه استقرار در سرویس Azure App
اکنون که برنامه Spring Boot شما آماده است، وقت آن است که آن را در سرویس Azure App استفاده کنید.
یک وب اپلیکیشن جدید ایجاد کنید
برای استقرار برنامه Spring Boot خود در Azure App Service، ابتدا یک Web App
جدید ایجاد می کنید. با دنبال کردن مراحل زیر می توانید این کار را از طریق پورتال Azure انجام دهید:
وارد پورتال Azure شوید.
روی دکمه Create a resource
کلیک کنید.
Web App
را جستجو کرده و گزینه Create
را انتخاب کنید.
جزئیات لازم مانند گروه منبع، نام برنامه، پشته زمان اجرا و منطقه را پر کنید.
روی دکمه Review + create
کلیک کنید.
برنامه را مستقر کنید
ایجاد برنامه وب چند دقیقه طول می کشد. پس از اتمام، می توانید برنامه Spring Boot خود را در سرویس Azure App مستقر کنید.
یکی از ساده ترین راه ها برای استقرار این است که برنامه Spring Boot خود را به عنوان یک فایل JAR بسته بندی کنید و آن را با استفاده از Azure CLI در سرویس Azure App استفاده کنید.
برای این کار دستورات زیر را اجرا کنید:
mvn package az webapp deploy --src-path neon-demo-0.0.1-SNAPSHOT.jar --resource-group learn-ba1a439c-71ca-4cab-9bb1-f5b1331bab04 --name neon-app
در اینجا، شما برنامه Spring Boot خود را با استفاده از Maven بسته بندی می کنید و فایل JAR را با استفاده از Azure CLI در سرویس Azure App Service مستقر می کنید. شما مسیر فایل JAR، گروه منابع و نام برنامه را که قبلاً پیکربندی کردهاید، ارائه کردهاید.
دسترسی به برنامه
پس از تکمیل استقرار، میتوانید با رفتن به URL برنامه وب، به برنامه Spring Boot خود در سرویس Azure App Service دسترسی پیدا کنید. برنامه شما در neon-app.azurewebsites.net موجود است
بیایید از _curl _ برای تست نقاط پایانی استفاده کنیم.
یک کاربر ایجاد کنید
curl -X POST -d '{"name":"John Doe","email":"john@gmail.com"}' https://neon-app.azurewebsites.net/users
در اینجا شما داده های کاربر را با فرمت JSON برای ایجاد یک کاربر جدید ارائه می دهید.
دریافت کاربران
همچنین می توانید آزمایش کنید که کاربر با واکشی همه کاربران ایجاد شده است:
curl -X GET https://neon-app.azurewebsites.net/users
نحوه تنظیم مقیاس خودکار
یک برنامه تولید ممکن است سطوح مختلفی از ترافیک را تجربه کند، و مهم است که برنامه را به صورت پویا بر اساس بار مقیاس بندی کنید.
بیایید تحلیل کنیم که چگونه می توانید در صورت نیاز مقیاس خودکار برنامه خود را تغییر دهید.
مقیاس خودکار در Azure
Azure App Service گزینه های مقیاس خودکار را ارائه می دهد که به شما امکان می دهد تعداد نمونه ها را در صورت نیاز به طور خودکار تنظیم کنید.
با دنبال کردن مراحل زیر می توانید قوانین مقیاس خودکار را در پورتال Azure پیکربندی کنید:
به برنامه وب در پورتال Azure بروید.
از منوی سمت چپ روی گزینه Scale out (App Service Plan)
کلیک کنید.
قوانین مقیاس خودکار را پیکربندی کنید – می توانید قوانین از پیش تعریف شده مانند ترافیک را انتخاب کنید یا قوانین سفارشی را بر اساس معیارهایی مانند استفاده از CPU، استفاده از حافظه یا معیارهای سفارشی ایجاد کنید.
صرفه جویی.
Azure به طور خودکار برنامه را بر اساس قوانین پیکربندی شده مقیاس می دهد.
مقیاس خودکار در نئون
از آنجایی که برنامه شما به طور خودکار بر اساس بار مقیاس بندی می شود، باید اطمینان حاصل کنید که پایگاه داده می تواند ترافیک افزایش یافته را مدیریت کند.
نئون گزینه های مقیاس خودکار را برای مقیاس بندی پویا پایگاه داده بر اساس بار ارائه می دهد. میتوانید قوانین مقیاسبندی خودکار را در داشبورد نئون پیکربندی کنید تا مطمئن شوید پایگاه داده میتواند بار افزایشیافته را مدیریت کند.
مراحل زیر را برای پیکربندی مقیاس خودکار در نئون دنبال کنید:
به داشبورد نئون بروید و پایگاه داده را انتخاب کنید. سپس شاخه را برای پیکربندی خودکار مقیاس انتخاب کنید.
۲- روی دکمه Edit
در کنار قسمت Compute
کلیک کنید. قوانین مقیاس خودکار را بر اساس معیارهایی مانند استفاده از CPU، استفاده از حافظه یا معیارهای سفارشی پیکربندی کنید.
3. حداقل اندازه محاسبه و ذخیره را پیکربندی کنید. Neon به طور خودکار پایگاه داده را بر اساس قوانین پیکربندی شده در صورت نیاز مقیاس می کند.
اطمینان از اینکه برنامه و پایگاه داده می توانند به صورت پویا بر اساس بار مقیاس شوند، به شما کمک می کند تا سطوح مختلف ترافیک را به طور موثر مدیریت کنید.
نحوه پیکربندی شاخه های پایگاه داده در نئون
در یک گردش کار توسعه معمولی، چندین پایگاه داده ممکن است برای اهداف مختلف مانند توسعه، آزمایش و تولید استفاده شود.
Neon Postgres انشعاب پایگاه داده را برای ایجاد چندین شاخه برای اهداف مختلف فراهم می کند. هر شاخه نمونه ای از پایگاه داده است که می توانید به طور مستقل از آن استفاده کنید.
این ویژگی Git مانند به تنظیم یک کپی از پایگاه داده برای محیط های مختلف مانند توسعه، مرحله بندی و تولید کمک می کند. همچنین به حفظ داده ها برای نسخه های مختلف برنامه کمک می کند.
بیایید نحوه ایجاد و مدیریت شعب در Neon Postgres را تحلیل کنیم:
به داشبورد نئون بروید و پایگاه داده را انتخاب کنید.
در قسمت Branches
بر روی دکمه View All
کلیک کنید.
با کلیک بر روی دکمه Create Branch
می توانید یک شعبه جدید از شعبه موجود ایجاد کنید. باید نام شعبه و اینکه چه داده هایی را از شعبه والد کپی کنید، ارائه دهید.
میتوانید همه دادهها را کپی کنید یا تا یک نقطه زمانی یا یک رکورد خاص کپی کنید. این برای اهداف متعدد مانند بازیابی داده ها، ایجاد یک محیط جدید یا آزمایش ویژگی های جدید مفید است.
نئون شاخه جدیدی از پایگاه داده ایجاد می کند که می تواند به طور مستقل استفاده شود. میتوانید URL، نام کاربری و رمز عبور شعبه جدید را در داشبورد پیدا کنید. و این در زمان واقعی و بدون هیچ گونه خرابی و تاخیر اتفاق می افتد.
اکنون می توانید از شاخه dev
خود برای توسعه و آزمایش محلی و از شاخه main
برای تولید استفاده کنید. این به جدا نگه داشتن داده ها کمک می کند و تضمین می کند که تغییرات در یک شاخه بر شاخه های دیگر تأثیر نمی گذارد.
خلاصه
در این مقاله، ما یک برنامه CRUD با استفاده از Spring Boot، Neon Postgres و Azure App Service ساختیم.
نحوه راهاندازی پایگاه داده Neon Postgres، ساخت یک برنامه CRUD اولیه با استفاده از Spring Boot، استقرار برنامه در Azure App Service و پیکربندی مقیاس خودکار برای برنامه و پایگاه داده را تحلیل کردیم.
ما همچنین یاد گرفتیم که چگونه ویژگی انشعاب پایگاه داده در Neon Postgres به شما کمک می کند تا شاخه هایی از پایگاه داده را برای محیط ها و اهداف مختلف ایجاد کنید.
ارسال نظر