0%

spring | set 简化注入写法

之前的书写方式

前提,有一个类叫做 Person

还有一个类叫做 User,这个类有一个属性是 Person

基于属性简化

1
2
3
4
5
<property name="id"> <!--name 指向属性名字-->
<value>10</value>
</property>
<!-- 简化写法 -->
<property name="id" value="10"/>

注意 value 属性,只能简化 8 种基本类型 + string 注入标签

用户自定义类型

1
2
3
4
5
6
7
8
9
10
<bean id="personImpl" class="com.rhino.Person"/>
<bean id="user" class="com.rhino.User">
<property name="person">
<ref bean="personImpl"/>
</property>
</bean>

<bean id="user" class="com.rhino.User">
<property name="person" ref="personImpl"/>
</bean>

基于命名空间 P 进行简化

1
2
3
4
5
6
7
8
9
10
11
<?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.xsd">
<bean id="person" class="com.rhino.Person">
<property name="id" value="10"/>
<property name="name">
<value>小明</value>
</property>
</bean>
</beans>

进行 p 简化

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="person" class="com.rhino.Person" p:name="小明">
<property name="id" value="10"/>
<property name="name">
<value>小明</value>
</property>
</bean>
</beans>

p 是放在 bean 标签上的,另外,会增加 xmlns:p="http://www.springframework.org/schema/p"

自定义类型使用

1
2
<bean id="personImpl" class="com.rhino.Person" p:name="小明"/>
<bean id="user" class="com.rhino.User" p:person-ref="personImpl">
请我喝杯咖啡吧~