Merhaba arkadaşlar, bu yazımda @Component,@Repository,@Controller ve @Service notasyonlarından bahsedeceğim.
Bu notasyonların kullanış amaçları aynıdır. Tek farkları, farklı yerlerde kullanılmalarıdır. Yani demek istediğim örneğin @Component domain üzerinde tanımlanır, @Service ise Service sınıflarımız için tanımlanır.
- @Controller => MVC de kullanılır.
- @Component =>Domain katmanında kullanılır.
- @Repository =>DAO katmanında kullanılır.
- @Service =>Service katmanında kullanılır.
Şimdi örnek üzerinde konuyu anlamaya çalışalım.
Person.java
1 2 3 4 5 6 7 8 9 10 |
@Component public class Person { @Value("1") private int id; @Value("Furkan") private String name; @Value("KOÇ") private String surname; // Getters and Setters |
PersonDao.java
1 2 3 |
public interface PersonDao { public void insertPerson(Person person); } |
PersonDaoImp.java
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@Repository public class PersonDaoImp implements PersonDao{ @Autowired PersonService personService; @Override public void insertPerson(Person person) { System.out.println("Repository personDaoImp insertPerson..."); personService.insertPerson(person); } } |
PersonService.java
1 2 3 4 5 6 7 8 9 10 |
@Service public class PersonService { @Autowired PersonDaoImp personDaoImp; public void insertPerson(Person person) { System.out.println("Service personService insertPerson..."); } } |
Application.xml
1 |
<context:component-scan base-package="_016_anno_component_service_repository_controller"/> |
Test.java
1 2 3 4 5 6 7 8 9 |
public class Test { public static void main(String[] args) { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("_016_application.xml"); Person person=applicationContext.getBean("person",Person.class); PersonDaoImp personDaoImp=applicationContext.getBean("personDaoImp",PersonDaoImp.class); personDaoImp.insertPerson(person); ((ClassPathXmlApplicationContext)applicationContext).close(); } } |
Çıktı:
Her katmanda farklı bir notasyon kullanmış olduk. Yani sınıflarımızı doğru notasyonlarla belirleyerek kolaylık okunabilirlik sağlamış olduk.
Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere…