Sobes.tech
Junior

Ի՞նչ է Spring-ում @Service, @Repository և @Controller նշանների տարբերությունը։

sobes.tech AI

Պատասխան AI-ից

Սրանք Spring-ի նշումներ են, որոնք օգտագործվում են դասերը նշելու համար որպես որոշակի շերտերի բաղադրիչներ՝

  • @Service: Օգտագործվում է բիզնես տրամաբանության ներկայացնող դասերի համար: սովորաբար պարունակում է մեթոդներ, որոնք մշակում են տվյալները, որոնք ստացվել են պահեստավորման շերտից:
  • @Repository: Օգտագործվում է տվյալների պահեստավորման շերտի հետ փոխազդեցություն ունեցող դասերի համար (օրինակ՝ տվյալների բազա): Պատրաստում է տվյալների մուտք գործելու մեթոդներ:
  • @Controller: Օգտագործվում է մուտքային HTTP հարցումների մշակման համար: սովորաբար պարունակում է մեթոդներ, որոնք վերադարձնում են տեսք կամ տվյալներ հարցման պատասխանով:

Այս բոլոր նշումները սթերեոտիպներ են, որոնք ընդլայնում են @Component-ը, և թույլ են տալիս Spring-ին ինքնաբերաբար հայտնաբերել և գրանցել այդ դասերը որպես բիներ ծրագրի կոնտեքստում: Նրանց հիմնական տարբերությունը սեմանտիկ է, ցույց տալով դասի դերը ճարտարապետությունում: Spring-ը կարող է օգտագործել այս նշումները՝ կիրառելու հատուկ ֆունկցիաներ շերտերին, օրինակ՝

  • Spring Data JPA-ն ավտոմատ կերպով սկանավորում է @Repository նշված դասերը՝ ռեպոզիտորիաների իրագործումները ստեղծելու համար:
  • Spring MVC-ն օգտագործում է @Controller՝ URL հարցումների հարմարեցում՝ կոնտրոլերների մեթոդներին։