Spring学习(四)-Bean集合属性

xiaoxiao2021-02-28  125

**Bean属性:集合属性(LIst Map…) 单例集合bean(util命名空间) Properties p命名空间**

1.person.java(List与Map集合)

package com.thirdCollection.bean; import java.util.List; public class Person { private String sex; private String name; private String age; private List <Car> cars; private Map<String,Car> mapcars; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public List<Car> getCars() { return cars; } public void setCars(List<Car> cars) { this.cars = cars; } public Map<String, Car> getMapcars() { return mapcars; } public void setMapcars(Map<String, Car> mapcars) { this.mapcars = mapcars; } public Person() { } public Person(String sex, String name, String age, List<Car> cars) { super(); this.sex = sex; this.name = name; this.age = age; this.cars = cars; } @Override public String toString() { return "Person [sex=" + sex + ", name=" + name + ", age=" + age + ", cars=" + cars + "]"; } public String toString2() { return "Person [sex=" + sex + ", name=" + name + ", age=" + age + ", mapcars=" + mapcars + "]"; } public void output() { System.out.println("IOC"); } }

2.Car.java

package com.thirdCollection.bean; public class Car { private String brand; private String corp; private double price; private int maxSpeed; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getCorp() { return corp; } public void setCorp(String corp) { this.corp = corp; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getMaxSpeed() { return maxSpeed; } public void setMaxSpeed(int maxSpeed) { this.maxSpeed = maxSpeed; } public Car() { } public Car(String brand, String corp, double price) { this.brand = brand; this.corp = corp; this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", corp=" + corp + ", price=" + price + ", maxSpeed=" + maxSpeed + "]"; } }

3.bean.xml

使用list集合遍历多个Car属性

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="com.firstSpring.HelloWorldImpl"></bean> <bean name="student" class="com.shuxing.bean.Student"></bean> <bean name="studentDao" class="com.shuxing.bean.StudentDaoImpl"></bean> <bean name="studentService" class="com.shuxing.bean.StudentServiceImpl"> <!-- 1、Setter属性注入 --> <!-- <property name="属性名称" ref="bean引用名称"></property> --> <!-- 构造器注入可以指定参数的位置和参数的类型type属性 property中的ref属性建立bean之间的引用关系 --> <!-- <property name="studentDao" ref="studentDao"></property> <property name="student" ref="student"></property> --> <!-- 2、构造方法注入 --> <!-- <constructor-arg ref="bean引用名称" index="属性索引"></constructor-arg> --> <constructor-arg ref="studentDao" index="0"></constructor-arg> <constructor-arg ref="student" index="1"></constructor-arg> </bean> <bean id="person" class="com.second.bean.Person"> </bean> <bean id="car" class="com.second.bean.Car"> <constructor-arg value="Ford"></constructor-arg> <constructor-arg value="changagn"></constructor-arg> <constructor-arg value="20000"></constructor-arg> </bean> <bean id="car1" class="com.thirdCollection.bean.Car"> <constructor-arg value="Benchi"></constructor-arg> <constructor-arg value="chang"></constructor-arg> <constructor-arg value="40000"></constructor-arg> </bean> <bean id="car2" class="com.thirdCollection.bean.Car"> <constructor-arg value="Baoma"></constructor-arg> <constructor-arg value="angagn"></constructor-arg> <constructor-arg value="30000"></constructor-arg> </bean> <bean id="car3" class="com.thirdCollection.bean.Car"> <constructor-arg value="Benchi"></constructor-arg> <constructor-arg value="chang"></constructor-arg> <constructor-arg value="40000"></constructor-arg> </bean> <bean id="person2" class="com.second.bean.Person"> <!-- 属性如有特殊字符可以使用<![CDATA[]]>包裹起来 属性值也可以使用value直接进行配置 --> <constructor-arg type="java.lang.String"> <value><![CDATA[女一号]]></value> </constructor-arg> <constructor-arg value="lisi" type="java.lang.String"></constructor-arg> <constructor-arg type="java.lang.String"> <value>21</value> </constructor-arg> <constructor-arg ref="car"></constructor-arg> <!-- 为级联属性赋值 属性需要先初始化再为级联属性赋值 --> <property name="car.maxSpeed" value="180"></property> </bean> <!-- 测试集合属性 --> <bean id="person3" class="com.thirdCollection.bean.Person"> <property name="sex" value="男"></property> <property name="name" value="Mike"></property> <property name="age" value="21"></property> <property name="cars"> <list> <ref bean="car1"/> <ref bean="car2"/> <ref bean="car3"/> </list> </property> </bean> <!-- 测试map集合属性 --> <bean id="person4" class="com.thirdCollection.bean.Person"> <property name="sex" value="男"></property> <property name="name" value="Jake"></property> <property name="age" value="23"></property> <property name="mapcars"> <!-- 使用map节点以及map的entry子节点配置Map成员变量 --> <map> <entry key="AA" value-ref="car1"></entry> <entry key="BB" value-ref="car2"></entry> </map> </property> </bean> <!-- 配置Properties属性值 --> <bean id="dataSource" class="com.thirdCollection.bean.DataSource"> <property name="properties"> <!-- 使用props和prop子节点为Properties属性赋值 --> <props> <prop key="user">root</prop> <prop key="password">1234</prop> <prop key="jdbcUrl">jdbc:mysql://test</prop> <prop key="driverClass">com.mysql.jdbc.Driver</prop> </props> </property> </bean> <!-- 配置单例的集合bean,以供多个bean进行引用,需要导入util命名空间 --> <util:list id="cars"> <ref bean="car1"/> <ref bean="car2"/> </util:list> <bean id="person5" class="com.thirdCollection.bean.Person"> <property name="sex" value="女"></property> <property name="name" value="Mike"></property> <property name="age" value="20"></property> <property name="cars" ref="cars"></property> </bean> <!--通过p命名空间为bean的属性赋值,需要导入p命名空间,相对于传统的配置方式更加简洁 --> <bean id="person6" class="com.thirdCollection.bean.Person" p:sex="男" p:name="Queen" p:age="21" p:cars-ref="cars"> </bean> </beans>

4.TestCollection.java测试类

package com.thirdCollection.bean; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestCollection { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("springXML/beans.xml"); /* Person person3=(Person)ctx.getBean("person3"); System.out.println(person3.toString()); */ Person person4=(Person)ctx.getBean("person4"); System.out.println(person4.toString2()); DataSource dataSource=ctx.getBean(DataSource.class); System.out.println(dataSource); Person person5=(Person)ctx.getBean("person5"); System.out.println(person5); Person person6=(Person)ctx.getBean("person6"); System.out.println(person6); } }

5.DataSource.java

package com.thirdCollection.bean; import java.util.Properties; public class DataSource { private Properties properties; public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } @Override public String toString() { return "DataSource [properties=" + properties + "]"; } }
转载请注明原文地址: https://www.6miu.com/read-20733.html

最新回复(0)