Differences & advantages of Spring/Struts/EJB/Hibernate?
Hi, I used to program EJB's about 8 years ago but have not done so since. I've been refamiliarizing myself with Java & it's technologies lately and have come across Struts, Spring, & hibernate as alternatives to/and even additions to EJB in some cases.
What I'd like to know (Each website I look at on each technology just states why it is better than the other etc...)
- What are the differences (in plain english) between EJB's, Struts, Spring, and Hibernate.
- When would one use one of the technologies instead of the others.
- When is it likely that they would be used together?
- What are the advantages of each of them over each other?
- In deciding on which of them to use is it often based on current/previous technologies a company may use or is there another factor that helps to decide this?
Any (non marketing) info on the above would be very welcomed.