DEV Community

Er. Bhupendra
Er. Bhupendra

Posted on

Spring Boot Profiles

Spring Boot Profiles ka main kaam (short me):

1️⃣ Different Environment Handle karna

  • Dev, Test, Production ke liye alag configuration run karna.

2️⃣ Different Configuration Load karna

  • Jaise dev me local DB, prod me production DB.

3️⃣ Profile Based Properties File Use karna

  • application-dev.properties
  • application-prod.properties

4️⃣ Conditional Bean Load karna

  • @Profile se decide hota hai kaunsa service / bean run karega.

5️⃣ Deployment Easy banana

  • Same code → different server par different config ke sath run ho jata hai.

===========================

I analyzed your video. It explains Spring Boot Profiles in a practical way (commonly asked in interviews). Here is a simple breakdown so you can explain it to an interviewer easily.


1. What Problem Spring Boot Profiles Solve

In real projects we usually have multiple environments:

  • Development (dev) – local machine
  • Testing (test)
  • Production (prod)

Each environment needs different configuration:

Example:

Environment Database
Dev H2 / Local MySQL
Test Test DB
Production Live DB

Without profiles you must change properties manually, which is risky.

👉 Spring Boot Profiles allow us to use different configurations for different environments. ([YouTube][1])


2. Simple Interview Definition

You can say:

Spring Boot Profile is a feature that allows us to define different configuration settings for different environments like dev, test, and production.

Shorter version:

Profiles help us run the same application with different configurations.


3. Configuration File Structure

application.properties

spring.profiles.active=dev
Enter fullscreen mode Exit fullscreen mode

This tells Spring Boot which profile should run.


Dev Profile

application-dev.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/devdb
Enter fullscreen mode Exit fullscreen mode

Production Profile

application-prod.properties

server.port=9090
spring.datasource.url=jdbc:mysql://prod-server:3306/proddb
Enter fullscreen mode Exit fullscreen mode

4. How Spring Boot Chooses Profile

Spring Boot loads configuration in this order:

application.properties
application-{profile}.properties
Enter fullscreen mode Exit fullscreen mode

Example:

application-dev.properties
application-test.properties
application-prod.properties
Enter fullscreen mode Exit fullscreen mode

5. Using Profile in Code

Example:

@Profile("dev")
@Component
public class DevDBService {

}
Enter fullscreen mode Exit fullscreen mode

This class runs only when dev profile is active.


6. Ways to Activate Profile

1️⃣ properties file

spring.profiles.active=dev
Enter fullscreen mode Exit fullscreen mode

2️⃣ Command line

java -jar app.jar --spring.profiles.active=prod
Enter fullscreen mode Exit fullscreen mode

3️⃣ Environment variable

SPRING_PROFILES_ACTIVE=prod
Enter fullscreen mode Exit fullscreen mode

7. Real Project Example

Suppose you deploy:

Environment Profile
Local machine dev
Testing server test
Production server prod

Same code, only configuration changes.


8. Interview Question They Ask

Q1 What is Spring Boot Profile?

Answer:

Profiles allow us to run the same Spring Boot application with different configurations for different environments.


Q2 Why do we use Profiles?

Answer:

  • To separate dev, test, prod configuration
  • Avoid manual configuration changes
  • Make deployment safer.

Q3 How many profiles can be active?

Answer:

Multiple profiles can be active.

Example:

spring.profiles.active=dev,cloud
Enter fullscreen mode Exit fullscreen mode

9. One-Line Memory Trick

Profiles = Environment Based Configuration
Enter fullscreen mode Exit fullscreen mode

or

Dev | Test | Prod → Profiles
Enter fullscreen mode Exit fullscreen mode

Top comments (0)