String Bean 注入方式,2021 年 Java 程序员职业规划
构造方法的注入方式,两步
* 编写 Java 的类,提供构造方法
public class Ca
r {
private String name;
private double money;
public Car(String name, doublemoney) {
this.name = name;
this.money = money;
}
@Override
public String toString() {
return "Car[name=" + name + ", money=" + money + "]";
}
}
* 编写配置文件
<bean id="car" class="com.itheima.demo4.Car">
<constructor-argname="name" value="大奔"/>
<constructor-argname="money" value="100"/>
</bean>
<context:property-placeholder location="classpath:mail.properties"/>
属性的 setter 方法的注入方式
* 编写 Java 的类,提供属性和对应的 set 方法即可
* 编写配置文件
如果 Java 类的属性是另一个 Java 的类,那么需要怎么来注入值呢?
* <property name="name" rel="具体的 Bean 的 ID 或者 name 的值"/>
* 例如:
<bean id="person"class="com.itheima.demo4.Person">
<propertyname="pname" value="美美"/>
<propertyname="car2" ref="car2"/>
</bean>
技术分析之 Spring 的 2.5 版本中提供了一种:p 名称空间的注入(了解)
1. 步骤一:需要先引入 p 名称空间
*在 schema 的名称空间中加入该行:xmlns:p="http://www.springframework.org/schema/p"
2. 步骤二:使用 p 名称空间的语法
*p:属性名 = ""
*p:属性名-ref = ""
3. 步骤三:测试
*<bean id="person" class="com.itheima.demo4.Person"p:pname="老王" p:car2-ref="car2"/>
技术分析之 Spring 的 3.0 提供了一种:SpEL 注入方式(了解)
1. SpEL:Spring ExpressionLanguage 是 Spring 的表达式语言,有一些自己的语法
2. 语法
*#{SpEL}
3. 例如如下的代码
<bean id="person"class="com.itheima.demo4.Person">
<property name="pname" value="#{'小风'}"/>
<property name="car2" value="#{car2}"/>
</bean>
4. 还支持调用类中的属性或者方法
*定义类和方法,例如
public class CarInfo {
public String getCarname(){
return "奇瑞 QQ";
}
}
技术分析之数组,集合(List,Set,Map),Properties 等的注入
1. 如果是数组或者 List 集合,注入配置文件的方式是一样的
<bean id="collectionBean"class="com.itheima.demo5.CollectionBean">
<property name="arrs">
<list>
<value>美美</value>
<value>小风</value>
</list>
</property>
</bean>
2. 如果是 Set 集合,注入的配置文件方式如下:
<property name="sets">
<set>
<value>哈哈</value>
<value>呵呵</value>
</set>
</property>
3. 如果是 Map 集合,注入的配置方式如下:
<property name="map">
<map>
<entry key="老王 2" value="38"/>
<entry key="凤姐" value="38"/>
<entry key="如花" value="29"/>
</map>
</property>
4. 如果是 properties 属性文件的方式,注入的配置如下:
评论