In this session, let us learn how to inject collection properties and map to a Java class. In case of collections, let us see how to inject Mr fit. What exactly is the meaning of this? Say you're having a Java class gives the Java classes point of collection an instance variable, how to inject the collection, the collection can be of type lists are set. In list and set also it can be a primitive type or an object. Example list of string of lists of book lists testing is primitive list of books current book is a class it is of type object.
If you are doing it as a normal Java application, you are saying are you create an object there itself, like list string newless is equal to new ArrayList angle brackets. You are creating the objects That particular class itself, but this spring, you're going to inject the list of values or the list of books to this particular class. I have given the example over here. I'm not going to talk about that example. Now, we will go back to eclipse and we will do it directly. I am working on the same application, I have created a new package comm dot data dot collection, wherein I have created two classes, student and book in the Student class, I have got name and ID which are primitive types, and hobbies and booklets which are of type collection.
Have a look over here in case of hobbies. It is of type list and angle bracket a string. So collection of strings, a collection of parameters, and I'm having a book list which is an instance variable. This is of type set, it is having sex and racket. Baron woo subclass. By itself, collection of objects, I have created getter and setter methods and also I have overridden to string let me just go to this book class.
In the book class I have got complete title and price I have created getter and setter methods are also generated to string. This part is that what is the next step we need to go in for configuration metadata, I have created collections dot XML. Now, within this I need to add the beam definition. Let me start adding the beam definition beam ID equal to student class classes equal to fully qualified class name. The Student class is having four properties for parameters It is very simple property name value, in case of connection, we have to do it in a different way. So, first let me add the values for the proper two instance variables.
I have given values for the primitive Next, let me go in for those hobbies, which is our site list that we added our property name equal to hobbies. I cannot do a single value because it's a connection. So keep the cursor within properties that within which you need to go that villain list you are going to provide the values if the list of subtype promoters you have to use value tax is the list of subtype being in that scenario, you need to use reference already learn what is the use of reference if you are going to refer to any other beat, use reference. Okay, now, in this case it is only list of strings. So I'm going to add value. Let me add the value value slash value within which I need to give the values now let me add five hobbies.
Now let's test that. What is the next property I need to go in fact that sounds Let me add the tax property name equal to booklet within the property tax what type of collection it is, it's a set. So let me go on that set. Within said, I have to choose between value or reference, because the set of type books, I have to go in for reference, so I will add angle bracket reference being equal to the B name, so I have to create bean definitions for books separately. Now let me just complete this code here. Here I'll just keep the cursor close.
I have added the code I am supposed to create three book objects and inject that book objects to this reference. Okay, for that I have to go outside this beam that now let me add the beam definition for a book book object being ID equal to book classes equal to full equality. Class Name. Let me add values for both the properties that is title and price. My first book pain is ready. Similarly, let me create two more book beans.
Basically they are objects. Now all the three book objects are ready, let me add these books as reference to this book plus reference being equal to book one being equal to book being equal to book three. So this metadata file is also ready. Next, let us go in for creating the client. I have already created the client that start writing the code in that this is a client class with public static void Main, I have instantiated the container. The next step is I need to get the student object already overridden to string method, so I don't have to bother about retrieving the values one by one.
But if in case if you want to retrieve individual values, you can retrieve a student that gets booklist and going for a forage Why trade and get the individual values? Now, let me do this part already we have seen it I have completed the code, let me run this application. Now application has started and you can see the output over here, student name as ram student ID 101 hobbies. It is a list of strings and again bookless, it is a list of books, we have added three books, all the three books are shown over here, okay. So, this is how you English collection to a Java class using spring, whatever values you want, you are actually getting it through the XML. Going forward, you will be learning how to retrieve the values from a properties file.
Understand the scenario, we are not going to use string for this basic purpose. Last spring you will be used in a layered architecture wherein you are having a service layer and interface with the implementation classes, DMA or an interface with the implant. annotation classes, whenever you want to inject values in that scenario you will be using spring framework. Now to understand the concepts of spring, the basic concepts of spring, we are going with Java bean and the collaborator stuff that is adding the dependencies. Now we have learned how to add collection. Next let us see how to add Prop, how to work with properties and map let me go into the student class.
So this is the student class here I need to create a map and properties. properties is from Java dot util package. You need to import it. Next, map, angle bracket, integer, comma string. I want to have a list of courses course list. I need to generate getter and setter methods.
Here Actually, I'm not going to modify two sticks. Because I have to retrieve the values of the properties using the key and in case of map also using the key now let me generate getter and setter methods alone. Select all click OK. This is done let me go into this collections dot XML. I'm leaving the student assets let me create one more student being on one more student object. So this is student one having student ID as one not to name us rover hobbies, sports music Okay, let me remove hobbies music and dance.
Then what about this bookless? It is said Sandra's going to have only two books Okay, this is also done. So a list is completed set is completed. Next let me go in first properties and map I will add the property tax name equal to email the Within the property tax, I have to use prop within prop. Prop key value. Key is can be anything like main one main two, way three, you may have other sub properties twice, it's having a key value pair right same thing only we are going to do for key and just giving it as main one and I need to do the value of abc@gmail.com few main ad sets.
And let me add two more main one mail to mail three while retaining I have to retrieve it using the key c basically when they want to set properties for hibernate or properties for working with JDBC in that scenario, they use these kinds of properties. So you must know how to set the values in the configuration file and how to retrieve it. So this is done. Let me go in for map. I should come out say this property tax property name equal to cost list within which I have got map entry key again it is key value, but here also you can have an object as a parameter that we have created map integer comma string, it can be even map integer comma book or map book comma integer. So, you can have different combinations object objects are string string like that in our case we are having integer and strings both are rap I mean integer is a wrapper class thing is a normal class okay key one value Java.
Similarly, let me again add three values over here Okay, this is completed. So, we have added a set list then properties and map let me come to this new client. Now, in this case I this is the second object So I'm not going to modify the new one. Let me create a new object and this is student one. I'm trying to retrieve student one and also let me add c so student one dot get prop get email list dot get what is the key I have main one? I'm trying to retrieve only one okay.
And similarly, for map for map I will retrieve everything get course list. It may save this and let me run this application. Now the application has started you can see the output This is the second object named row one student id 102. Okay, hobbies and booklist you know, what about the properties you are trying to retrieve? Property using the key I was given the key is made once I have got the output as ABC at the rate gmail.com. And in case of map we are retrieving it everything.
So it has given one equal to Java two equal to string that is key and value. If you want to retrieve a single value, you have to use the key to retrieve the value dot get key up here to pass the key. So, this is how you inject collections properties and map to a Java class. You can try more on this by retrieving individual individual items also. Now that we have understood how to use XML as configuration metadata, in the next session, let us learn how to work with annotations. Thank you