Spring Framework में @Component, @Repository और @Service के बीच अंतर
सभी को नमस्ते! मैं एक शुरुआती Java developer हूँ और Spring Framework सीख रहा हूँ। अपना पहला application लिख रहा हूँ — एक सरल online store। मेरे पास कुछ classes हैं: ProductService, ProductRepository और ProductController। मुझे पता है कि ये सभी Spring beans होने चाहिए, लेकिन मुझे समझ नहीं आता कि किस class के लिए कौन सी annotation use करूँ।
हर जगह लिखा है कि आप बस सब पर @Component लगा सकते हैं, लेकिन मैंने देखा है कि experienced developers DAO layer के लिए @Repository और services के लिए @Service use करते हैं। क्या अंतर है? मैंने ऐसे लिखने की कोशिश की:
```java
@Component
public class ProductRepository {
public List findAll() {
// यहाँ DB के साथ काम
}
}
@Service
public class ProductService {
@Autowired
private ProductRepository repository;
}
@Controller
public class ProductController {
@Autowired
private ProductService service;
}
```
सब काम करता है। लेकिन अगर मैं @Service को @Component से बदल दूँ — तब भी काम करता है। और अगर @Repository को @Component से बदल दूँ — तब भी काम करता है। तो क्यों...