Enterprise Java is not Object-Oriented
It seems that these conventions preclude the benefits of OOP, namely abstraction and information hiding. The vast majority of classes fit into one of two categories: Beans and singletons. A Bean is just a record: a group of members all publicly accessible via getters and setters. The singletons are all just code without data. Not a single class has a non-trivial constructor.
I understand that Spring provides many benefits, such as easy testability, aspect-oriented programming, and removing lots of boilerplate. I don't question this. My question is: can we still call this object-oriented programming? I could see this entire application being written in OCaml, with functors, with some clever preprocessor that generates code to wire all the functors together. It would work just as well as OO code, maybe even better. And even then, the advanced features of the type system (those that provide abstraction and information hiding), would not really be utilized.