Avatar ·

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 से बदल दूँ — तब भी काम करता है। तो क्यों...