JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP Áú¹®&´äº¯DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP±âŸ TIP
JSP ÆÁ
JSP ÆÁ
JSP ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
Spring ºó¹­±â-±âº»¹­±â
kaiser
À̹ÌÁö ½½¶óÀÌ´õ º¸±â
 

Spring ÄÁÅ×ÀÌ³Ê ¾È¿¡¼­ ºóµé(ÄÄÆ÷³ÍÆ®)³¢¸® »ç¿ëÇϰųª »ç¿ëµÇ¾îÁö´Â °ÍÀ» ¹­±â¶ó°í ÇÑ´Ù. ºóÀ» ¹­À» ¶§ ¿¡´Â ¾î¶² ºóµéÀÌ »ç¿ë µÉ Áö¿Í ±× ºóµéÀ» ¹­±â À§Çؼ­ ¾î¶»°Ô ÀÇÁ¸¼º ÁÖÀÔÀ» »ç¿ëÇÒÁö¸¦ ÄÁÅ×À̳ʿ¡°Ô ¾Ë·ÁÁà¾ß ÇÑ´Ù. À̶§ ÄÁÅ×À̳ʿ¡°Ô ¾Ë·Á ÁÙ ¶§´Â xml¸¦ ÀÌ¿ëÇÏ¿© ¾Ë·ÁÁØ´Ù.

 

°£´ÜÇÑ »ùÇÃÀ» º¸¸é¼­ ÁøÇàÇØ º¸ÀÚ

¿©·¯ºÐÀÌ ½ºÇÁ¸µ Æ®·¹ÀÌ´× ÁÖ½Äȸ»ç¶ó´Â ±â¼ú±³À°´Üü¿Í °è¾àµÈ »óŶó°í °¡Á¤ÇÏÀÚ ½ºÇÁ¸µ Æ®·¹ÀÌ´×»ç´Â ¼ö°­»ýÀÌ ¿Â¶óÀÎÀ¸·Î ±³°ú °úÁ¤À» µî·ÏÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î ´Þ¶ó°í ¿äûÇß´Ù.

¸ÕÀú ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼­ºñ½º °èÃþºÎÅÍ ¸¸µé¾î º¸ÀÚ

¾Æ·¡ÀÇ ±×¸²Àº ½ºÇÁ¸µ Æ®·¹ÀÌ´× ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¼­ºñ½º °èÃþÀ» ±¸¼ºÇÏ´Â °èÃþÀ» º¸¿©ÁØ´Ù.

 


 

¼­ºñ½º °èÃþ¿¡´Â ¼ö°­»ý ¼­ºñ½º(Student Service)¿Í ±³°ú°úÁ¤ ¼­ºñ½º (Course Service) ¶ó´Â µÎ °³ÀÇ ¼­ºñ½º ÄÄÆ÷³ÍÆ®°¡ ÀÖ´Ù.

 -.¼ö°­»ý ¼­ºñ½º(Student Service) : ¼ö°­»ý°ú °ü·ÃµÈ ¸ðµç °ÍÀ» ó¸®

 -.±³°ú°úÁ¤ ¼­ºñ½º (Course Service) : ±³°ú°úÁ¤°ú °ü·ÃµÈ ¸ðµç ±â´ÉÀ» ó¸®

 

Áö±ÝÀº ¾î¶»°Ô ±¸ÇöµÇ¾î ÀÖ´ÂÁö Äڵ带 ±¸Çö ºÎºÐ¸¸ »ìÆ캸°í ³ªÁß¿¡

¿ÏÀüÇÑ ¼Ò½º¸¦ ¾Ë¾Æº¸ÀÚ ±Ã±ÝÇϸé www.acornpub.co.kr ¿¡¼­ ¼Ò½º¸¦ ´Ù¿î ¹Þ¾Æ È®ÀÎÇØ º¸¼¼¿ä

 

 

Student Service.java

 

public interface StudentService {

  public Student getStudent(String login);

  public void registerStudent(Student student);

  public java.util.Set getCompletedCourses(Student student);

  public String getCurrentUserId();

}

 

 

 

CourseService.java

 

 

public interface CourseService {

  public Course getCourse(int id);

  public Course getCourse(Integer id);

  public void saveCourse(Course course);

  public java.util.Set getAllCourses();

  public void enrollStudentInCourse(Course course, Student student) throws CourseException;

  public void sendCourseEnrollmentReport();

}

 

 

StudentServiceImpl

 

 

public class StudentServiceImpl implements StudentService {

  Logger LOGGER = Logger.getLogger(StudentServiceImpl.class);

 

  private StudentDao studentDao;

 

  // »ý¼ºÀÚ¿¡ ÀÇÇÑ ÁÖÀÔ

  public StudentServiceImpl(StudentDao dao) {

    studentDao = dao;

  }

  // setter¿¡ ÀÇÇÑ ÁÖÀÔ

  // Âü°í: ¼Ò½º¿¡´Â ¾ø´Ù. ´Ù¸¸, ¿ø¸®¸¦ ¼³¸íÇϱâ À§ÇÔ.

  public setStudentDao(StudentDao dao) {

    studentDao = dao;

  }

 

 

  public Student getStudent(String login) {

    return studentDao.findById(login);

  }

 

  public void registerStudent(Student student) {

    HashSet authorities = new HashSet();

    authorities.add(new Authority("ROLE_STUDENT"));

    authorities.add(new Authority("ROLE_USER"));

    student.setAuthorities(authorities);

 

    studentDao.create(student);

  }

 

  public java.util.Set getCompletedCourses(Student student) {

    return studentDao.getCompletedCourses(student);

  }

 

  /*

   * TODO - This could be used more generically for Instructors as well.

   * But since it's only used for Students right now and because it would

   * be silly to create a UserService for this simple method, we'll just

   * put it here for now.

   */

  public String getCurrentUserId() {

    return ((SecureContext)ContextHolder.getContext()).getAuthentication().getPrincipal().toString();

  }

}

 

 

StudentServiceImplÀº ÇлýÀ» ã°í, »ý¼ºÇÏ°í ¼ö°­ÇÏ´Â ÀÛ¾÷µîÀ» StudentDao¿¡ À§ÀÓÇÏ¿© StudentDao´Â µ¥ÀÌÅͺ£À̽º¿Í »óÈ£ÀÛ¿ëÇÏ¿© ó¸®ÇÑ´Ù. StudentDao °´Ã¼ÀÇ ½ÇÁ¦ ±¸Çö³»¿ëÀº ³ªÁß¿¡ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.

±×¸®°í StudentDao¸¦ ±¸ÇöÇÑ Å¬·¡½º´Â StudentDaoImpl Ŭ·¡½ºÀÌ´Ù.

StudentDaoImpl ´Â À§ÀÇ ¼Ò½º¿¡¼­ º» °Í°ú °°ÀÌ »ý¼ºÀÚ¿Í setStudentDao() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© StudentDao¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

 

CourseServiceImpl.java

 

 

 

public class CourseServiceImpl implements CourseService {

 

  private static Logger LOGGER = Logger.getLogger(CourseServiceImpl.class);

  // »ý¼ºÀÚ ÁÖÀÔÀ» ÅëÇÑ CourseDao ¼³Á¤

  public CourseServiceImpl(CourseDao dao) {

    this.courseDao = dao;

  }

 

 

  public Course getCourse(int id) {

    return getCourse(new Integer(id));

  }

 

  public Course getCourse(Integer id) {

    return courseDao.findById(id);

  }

 

  public void saveCourse(Course course) {

    courseDao.save(course);

  }

 

  public void enrollStudentInCourse(Course course,

      Student student) throws CourseException {

 

    // TODO:    enforcePrerequisites(course, student);

 

    // TODO:    Check for schedule conflicts

 

    course.getStudents().add(student);

    courseDao.save(course);

  }

 

  public Set getAllCourses() {

    return courseDao.findAll();

  }

 

  public void sendCourseEnrollmentReport() {

    Set courseList = courseDao.findAll();

 

    SimpleMailMessage message =

        new SimpleMailMessage(this.mailMessage);

 

    StringBuffer messageText = new StringBuffer();

    messageText.append("Current enrollment data is as follows:\n\n");

   

    for(Iterator iter = courseList.iterator(); iter.hasNext(); ) {

      Course course = (Course) iter.next();

      messageText.append(course.getId() + "    ");

      messageText.append(course.getName() + "    ");

      int enrollment = courseDao.getEnrollment(course);

      messageText.append(enrollment);

    }

 

    message.setText(messageText.toString());

 

    try {

      mailSender.send(message);

    } catch (MailException e) {

      LOGGER.error(e.getMessage());

    }

  }

 

  private void enforcePrerequisites(Course course,

      Student student) throws CourseException {

   

    Set completed = studentService.getCompletedCourses(student);

 

    // Check for prerequesites

    Set prereqs = course.getPrerequisites();

    for(Iterator iter = prereqs.iterator(); iter.hasNext(); ) {

      if(!completed.contains(iter.next())) {

        throw new CourseException("Prerequisites are not met.");

      }

    }

   

    // Check for scheduling clash

    for(Iterator iter = completed.iterator(); iter.hasNext(); ) {

      Course completedCourse = (Course) iter.next();

     

    }

  }

 

  // COLLABORATORS

  private CourseDao courseDao;

  public void setCourseDao(CourseDao courseDao) {

    this.courseDao = courseDao;

  }

 

  private StudentService studentService;

  public void setStudentService(StudentService service) {

    this.studentService = service;

  }

 

  private MailSender mailSender;

  public void setMailSender(MailSender mailSender) {

    this.mailSender = mailSender;

  }

 

  private SimpleMailMessage mailMessage;

  public void setMailMessage(SimpleMailMessage mailMessage) {

    this.mailMessage = mailMessage;

  }

}

 

 

CourseServiceImplÀº »ý¼ºÀÚ¸¦ ÅëÇØ CourseDaoÀÇ ÂüÁ¶¸¦ ÇÒ ¼ö ÀÖ´Ù. enrollStudentInCourse() ¸Þ¼Òµå´Â ¼ö°­»ýÀ» ±³°ú°úÁ¤¿¡ Ãß°¡Çϱâ Àü¿¡ enforcePrerequisites()¸¦ ¸ÕÀú È£ÃâÇÑ´Ù. ¸¸¾à ¼ö°­»ýÀÌ ¼±¼ö°ú¸ñÀ» À̼öÇÏÁö ¾Ê¾Ò´Ù¸é enforcePrerequisites()´Â CourseExceptionÀ» ´øÁú °ÍÀ̸ç, À̸¦ ´Ù½Ã enrollStudentInCourse()°¡ ´øÁú °ÍÀÌ´Ù.

enforcePrerequisites()´Â StudentServiceÀÇ ÂüÁ¶¸¦ »ç¿ëÇØ ¼ö°­»ýÀÌ ¼ö·áÇÑ ¸ðµç °ú¸ñÀ» ¾ò¾î¿Â´Ù. ÀÌ´Â ¼±¼ö°ú¸ñÀ̶ó´Â ºñÁî´Ï½º ¿ä±¸»çÇ×À» Ãæ¸ñ½ÃÅ°±â À§ÇØ CourseDao »Ó¸¸ ¾Æ´Ï¶ó, CourseServiceImpl°úµµ ÂüÁ¶ÇÑ´Ù´Â Àǹ̴Ù.

CourseServiceImplÀº CourseDao¸¦ »ý¼ºÀÚ¸¦ ÅëÇØ ¾ò´Â °Í°ú ´Þ¸®, StudentServiceÀÇ ÂüÁ¶´Â setStudentService() ¸Þ¼Òµå¸¦ ÅëÇØ ¾ò´Â´Ù. ÀÌ·± ÀÌÀ¯´Â courseDao ¸¦ ÀÌ¿ëÇÏ¿© °ú¸ñÀ» ã´Âµ¥ »ç¿ëµÇ±â µÇ°í,  ¼Ó¼º °ªÀ» ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é ÀνºÅϽº¸¦ »ý¼ºÇÒ¼ö ¾ø±â¶§¹®¿¡  private CourseDao courseDao ·Î ¼Ó¼ºÀ» ¼³Á¤Çß´Ù.

´ÙÀ½Àº xml·Î ºóÀ» ¹­´Â °Í¿¡ ´ëÇØ ¾Ë¾Æ º¸ÀÚ

 

2009-11-29 20:19:01
211.189.124.***

¼­Çö»ç¶û~ ¾È³ç ¾È³ç ³ªÀÇ ¾Æ±âº°~~

÷ºÎÆÄÀÏ (ÃÑ 1°³)
  1. 23.jpg 36.6 KB (108 ´Ù¿î·Îµå)
0Á¡ (1¸í)
µ¡±Û 0°³ | ÅÂ±× 1°³ | °ü·Ã±Ûº¸±â
ű×ÀÔ·Â
½±Ç¥(,)±¸ºÐÀ¸·Î Çѹø¿¡ ¿©·¯ ű׸¦ ÀÔ·ÂÇÒ¼ö ÀÖ½À´Ï´Ù
spring (18)
À̸§ ºñ¹Ð¹øÈ£
JSP ÆÁ
JSP ÆÁ °Ô½ÃÆÇ ÀÔ´Ï´Ù
! ¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ÀÏÀÚ Á¶È¸
114 STS Spring MVC on STS 2.8, 2.9 ¹öÀü¿¡¼­ ÇÁ·ÎÁ§Æ® »ý¼º½Ã ¿¡·¯¹ß»ý ÇÒ °æ¿ì 1 GoodBug 2012-03-08 8,112
113 dbcp DBCP »ç¿ë½Ã DBÁ¤º¸ ¾Ïȣȭ 1 GoodBug 2012-02-08 5,617
112 ½ºÆ®·µÃ÷ action alert ¸Þ½ÃÁö Ãâ·Â ÈÄ ÆäÀÌÁö À̵¿ & µÚ·Î°¡±â ¿¹¹æ ÇູÇѱ¤´ë 2009-01-14 11,643
111 spring spring ÀÚµ¿¹­±â 1 kaiser 2007-03-12 11,853
110 spring Spring ºó¹­±â- »ý¼ºÀÚ¸¦ ÅëÇÑ ÀÇÁ¸¼º ÁÖÀÔ 2 1 kaiser 2007-02-21 21,611
109 spring Spring ºó¹­±â-¼¼Å͸޼ҵ带 ÅëÇÑ ÀÇÁ¸¼º ÁÖÀÔ 1 kaiser 2007-02-21 11,909
108 spring Spring - xml·Î ¹­±â 1 kaiser 2007-02-07 12,406
spring Spring ºó¹­±â-±âº»¹­±â 1 kaiser 2007-02-05 8,817
106 spring spring ºó¹­±â-2 1 kaiser 2007-01-29 9,683
105 spring Spring ºó¹­±â-1 1 kaiser 2007-01-29 9,748
104 spring Spring 1Â÷ ¿ä¾à 1 kaiser 2007-01-23 10,869
103 spring spring ½ÃÀÛÇϱâ-2 1 1 kaiser 2007-01-22 9,970
102 spring Spring ½ÃÀÛÇϱâ-1 4 1 kaiser 2007-01-22 11,687
101 spring Spring ¼­·Ð - spring ¼³Ä¡ 1 1 kaiser 2007-01-19 13,361
100 clob »ç¿ëÇϱâ kaiser 2008-08-21 7,679
99 span ±Û¾²±â ÈÄ »ç¿ëÇÒ protoload 1 1 °í°í½Ì 2008-05-09 7,185
98 log4sql log4sql 1 1 Aki 2008-04-30 8,403
97 ¼ýÀÚ ¼¼ÀÚ¸®¸¶´Ù ÄÞ¸¶ Âï±â 1 °ö½½´ë¸¶¿Õ 2008-03-21 8,527
96 iBatis iBatis ¿¡¼­ SQL ·Î±ë½Ã ÀÌ»Ñ°Ô º¸À̱â 6 1 GoodBug 2007-10-26 22,610
95 log4sql¿äÁò ¸¹ÀÌ ¾²´Â°Í °°´øµ¥.... ¿µÀ̳²Ç¦ 2008-10-17 8,132
copyright 2005-2024 by Unicorn