When I switched from Eclipse to IntelliJ about 2 years ago the thing that most impressed me was that every part of IntelliJ feels fully integrated with the IDE.
For Eclipse, you had to rely on 3rd party developers for plugins for things like Hibernate or Spring integration; and the amount of integration with the IDE itself was usually hit-or-miss. Different plugins would have different UIs or different ways of doing things.
I've found that in IntelliJ, these types of things are first-class features instead - the Spring and Hibernate support (for instance) is built into the IDE by JetBrains. Things like "find usages of bean" can be invoked with the same keystrokes as "find usage of class". The editor can jump from the Java class editor to where the class is defined in your Spring context just as easily.
For Eclipse, you had to rely on 3rd party developers for plugins for things like Hibernate or Spring integration; and the amount of integration with the IDE itself was usually hit-or-miss. Different plugins would have different UIs or different ways of doing things.
I've found that in IntelliJ, these types of things are first-class features instead - the Spring and Hibernate support (for instance) is built into the IDE by JetBrains. Things like "find usages of bean" can be invoked with the same keystrokes as "find usage of class". The editor can jump from the Java class editor to where the class is defined in your Spring context just as easily.