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…

