I am yet to find a high-level definition of Spring beans that I can understand. I see them referenced often in Grails documentation and books, but I think that understanding
In terms of a Spring boot application, a bean is simply a Java object which is created by Spring framework when the application starts.
The purpose of the object can be pretty much anything - a configuration, a service, database connection factory etc. - Spring doesn't really care.
Most beans depend on other beans to work, for example an entity manager might need a database connection. Spring framework is able to figure out how the beans should be wired together automatically. From your point of an application developer, you just have to declare the beans you need and they "magically" appear in your application ready to use.