Chapter 4. Advanced Concepts
The Spring framework comes with lots of bells and whistles. There are at times we wish to inject Java Collections such as Maps or Lists. There are also instances we wish to alter the bean configurations for our own customizations . Configuring such collections outside of the application in a properties file or customizing the beans to our own needs is easily done in Spring. While we learned the basics in the first three chapters, we discuss the more mature and advanced concepts in this chapter.
Bean Scopes
Did you wonder how many instances will be created when the Spring’s container is loads up the bean config file during the application startup? Do we get the same instance whenever you query the container for the same bean? If we have a case where one and only one bean (such as a service or a factory) is to be created irrespective of the number of times you call the container, how is this achieved? Or for every call, how can we fetch a brand new instance? How does Spring achieve this?
Well, it turns out to be a simple config tag that dictates these types—the scope tag with values of singleton
and prototype.
Singleton Scope
When you need one and only one instance of a bean (TrainFactory in
this case), you should set the scope tag to singleton, as shown here:
<beanname="trainFactory"scope="singleton"class="com.madhusudhan.jscore.fundamentals.scope.TrainFactory"></bean>
However, the default scope is
always singleton. Hence, you can ignore the setting of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access