Spring Boot অ্যাপ্লিকেশনে কনফিগারেশন সেটিংস সংরক্ষণের জন্য দুটি সাধারণ ফাইল ব্যবহৃত হয়: application.properties এবং application.yml। উভয় ফাইলই একই কাজ করে, তবে তাদের সিনট্যাক্স এবং ফরম্যাটে কিছু পার্থক্য রয়েছে। এই ফাইলগুলোতে অ্যাপ্লিকেশনের কনফিগারেশন, প্রোপার্টি, ডেটাবেস সেটিংস, সিকিউরিটি কনফিগারেশন এবং অন্যান্য প্রয়োজনীয় কনফিগারেশন রাখা হয়।
application.properties ফাইল
application.properties একটি সাধারণ প্রপার্টি ফাইল যেখানে কনফিগারেশন স্ট্রিংয়ের মাধ্যমে প্রতিটি প্যারামিটার সংরক্ষিত থাকে। এটি ক্লাসিক Java properties ফাইলের মতই কাজ করে।
application.properties ফাইলের কনফিগারেশন উদাহরণ
# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# Server Configuration
server.port=8080
server.servlet.context-path=/myapp
# Logging Configuration
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
# Custom Configuration
app.name=My Spring Boot Application
app.version=1.0.0
ব্যাখ্যা:
spring.datasource: ডেটাবেস কানেকশন সেটিংস যেমন URL, ইউজারনেম এবং পাসওয়ার্ড।spring.jpa: Hibernate বা JPA কনফিগারেশন।server.port: সার্ভারের পোর্ট নম্বর কনফিগারেশন।logging.level: লগিং লেভেল কনফিগারেশন (INFO, DEBUG, ERROR ইত্যাদি)।- Custom Configuration: অ্যাপ্লিকেশনের কাস্টম প্যারামিটার যেমন অ্যাপের নাম এবং ভার্সন।
application.yml ফাইল
application.yml YAML (YAML Ain't Markup Language) ফরম্যাটে লেখা একটি কনফিগারেশন ফাইল। এটি পঠনযোগ্যতা এবং স্ট্রাকচারড ডেটার জন্য অধিক সুবিধাজনক। YAML ফাইলগুলো ইনডেন্টেশন এবং হায়ারার্কির মাধ্যমে প্যারামিটারগুলো সংরক্ষণ করে।
application.yml ফাইলের কনফিগারেশন উদাহরণ
# Database Configuration
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
jpa:
hibernate:
ddl-auto: update
show-sql: true
# Server Configuration
server:
port: 8080
servlet:
context-path: /myapp
# Logging Configuration
logging:
level:
org.springframework: INFO
com.example: DEBUG
# Custom Configuration
app:
name: My Spring Boot Application
version: 1.0.0
ব্যাখ্যা:
spring.datasource: ডেটাবেস কনফিগারেশন এর মতোইapplication.propertiesএর মতো YAML ফরম্যাটে কনফিগার করা হয়েছে।server.port: YAML স্টাইলে পোর্ট নম্বর এবং কনটেক্সট-পথ।logging.level: লগিং লেভেল কনফিগারেশন একইভাবে YAML ফরম্যাটে।- Custom Configuration: কাস্টম প্যারামিটার
app.nameএবংapp.versionYAML স্টাইলে।
application.properties এবং application.yml এর মধ্যে পার্থক্য
| বিষয় | application.properties | application.yml |
|---|---|---|
| ফরম্যাট | সাধারণ key=value ফরম্যাট | YAML ফরম্যাট, হায়ারার্কিক্যাল স্ট্রাকচার |
| পঠনযোগ্যতা | তুলনামূলকভাবে কম পঠনযোগ্য | অধিক পঠনযোগ্য এবং সুন্দর স্ট্রাকচার |
| ইনডেন্টেশন | ইনডেন্টেশন প্রয়োজন নেই | ইনডেন্টেশন প্রয়োজন (এটা YAML এর বৈশিষ্ট্য) |
| স্ট্রাকচার | সোজা, এক্সপ্লিসিট প্যারামিটার | হায়ারার্কিক্যাল (নেস্টেড) স্ট্রাকচার |
| ব্যবহার | সাধারণ কনফিগারেশনে সুবিধাজনক | কমপ্লেক্স কনফিগারেশনে সহজ এবং স্পষ্ট |
কেন application.properties এবং application.yml ব্যবহার করা হয়?
১. কনফিগারেশন এক্সটার্নালাইজেশন (Externalized Configuration)
এই ফাইলগুলোর মাধ্যমে অ্যাপ্লিকেশনের কনফিগারেশন এক্সটার্নালাইজড করা হয়, অর্থাৎ কোডের বাইরে কনফিগারেশন রাখা হয়, যাতে কোডে কোনো পরিবর্তন না করে সেটিংস পরিবর্তন করা যায়। এতে অ্যাপ্লিকেশনটি পরিবেশ (environment) অনুযায়ী কনফিগার করা সহজ হয়।
২. পঠনযোগ্যতা এবং রক্ষণাবেক্ষণ
YAML ফাইলের স্ট্রাকচার এবং ইনডেন্টেশন পদ্ধতি কনফিগারেশনকে আরও পঠনযোগ্য করে তোলে। বড় প্রকল্পের জন্য YAML ফাইল ব্যবহারে সহজে কনফিগারেশন বোঝা যায়।
৩. ডিফল্ট কনফিগারেশন প্রদান
Spring Boot অ্যাপ্লিকেশন কনফিগারেশন প্রোপার্টিজের জন্য কিছু ডিফল্ট মান প্রদান করে, যেমন ডেটাবেস সেটিংস, সার্ভার পোর্ট, লগিং লেভেল ইত্যাদি, যা ডেভেলপারদের সময় সাশ্রয় করে।
৪. অ্যাপ্লিকেশন সেটিংস ব্যবস্থাপনা
Spring Boot অ্যাপ্লিকেশন কনফিগারেশন ফাইল ব্যবহারের মাধ্যমে বিভিন্ন এনভায়রনমেন্ট (ডেভেলপমেন্ট, টেস্টিং, প্রোডাকশন) অনুযায়ী অ্যাপ্লিকেশনের সেটিংস কনফিগার করা যায়।
সারাংশ
application.properties এবং application.yml হল Spring Boot অ্যাপ্লিকেশনের কনফিগারেশন ফাইল, যেখানে বিভিন্ন সেটিংস এবং প্রোপার্টি সংরক্ষণ করা হয়। application.properties সাধারণত সোজা কনফিগারেশন পদ্ধতি হলেও, application.yml একটি স্ট্রাকচার্ড এবং অধিক পঠনযোগ্য ফরম্যাট সরবরাহ করে। যেকোনো একটি ফাইল ব্যবহারের মাধ্যমে আপনি Spring Boot অ্যাপ্লিকেশনের কনফিগারেশন এবং পরিবেশ অনুযায়ী সেটিংস নির্ধারণ করতে পারবেন।
Read more