Difference between @Component, @Repository and @Service annotations in Spring by Java Development Journal