title: Advice on how my services should be interacting
body: <p>I have a account registration page, and I have the following service classes:</p>
  
  <ol>
  <li>userService</li>
  <li>roleService</li>
  <li>emailService</li>
  </ol>
  
  <p>So when the user registers, I have to:</p>
  
  <ol>
  <li>create a user in the db</li>
  <li>add the user to a specific role</li>
  <li>email the user</li>
  </ol>
  
  <p>I'm using spring MVC, so this has to be done in the registration method.</p>
  
  <p>Now, my question is, should I do inject/use the other services from WITHIN the userService's register method?</p>
  
  <pre><code>userService.register(....)
  
  public class UserServiceImpl ... {
  
     public void register(....) {
  
        save(user);
        roleService.associateTo(....);
        emailService.sendRegistrationEmail(...);
     }
  }
  </code></pre>
  
  <p>OR</p>
  
  <p>Is that making things too coupled, I should make these calls seperately in the controllers method like:</p>
  
  <pre><code>public ModelAndView register(..., HttpServletRequest request, ...) {
  
      ..
  
      userService.register(user);
      roleService.associateTo(...);
      emailService.sendRegistrationEmail(...);
  
  }
  </code></pre>
  
  <p>I'm sort of leaning towards the 2nd approach.  Say i wanted to create or register users in a bulk way, calling register would be doing so many things that I would maybe not want to do since I'm doing it in a bulk manner  (this is just something I thought of, maybe its a edge case?)</p>