<constructor-arg> 子標籤屬性:
index(參數位置,從 0 開始)、name(參數名,需編譯時保留或用 @ConstructorProperties)、type(類型)、value(值)、ref(引用其他 Bean)。
解決多構造函數歧義:優先用 type 或 name 限定。
<property name="..." value="..."/> 或 ref="..."。Spring 調用無參構造器後呼叫 setter。
屬性名對應 JavaBean 規範(setXxx → xxx)。
<bean class="..." factory-method="..."/><bean factory-bean="..." factory-method="..."/><property name="list">
<list><ref bean="a"/><value>str</value></list>
</property>
<property name="set"> <set>...</set> </property>
<property name="map"> <map><entry key="k" value-ref="v"/></map> </property>
<property name="props"> <props><prop key="k">v</prop></props> </property>
在 <property> 或 <constructor-arg> 內直接定義 <bean>,無需 id,作用域為原型,僅供外層 Bean 使用。
<property name="x"><null/></property> <!-- setX(null) -->
<property name="x" value=""/> <!-- setX("") -->
<beans xmlns:p="https://www.springframework.org/schema/p" ...>
<bean class="..." p:name="value" p:ref-ref="beanId"/>
</beans>
<property name="apple.color" value="red"/> <!-- 需 apple 不為 null -->
<property name="target"><idref bean="someBean"/></property> <!-- 容器啟動時驗證 bean 存在 -->
Spring 內建 PropertyEditor 支援基本類型、字串、Class, Resource 等轉換。自定義轉換器可實現 Converter<S, T> 並註冊。
@Lazy 緩解)。PropertyPlaceholderConfigurer。Spring 4.x/5.x 仍完整支援 XML 配置,雖然 Java Config(@Configuration + @Bean)更流行,但理解 XML 註入細節對維護舊專案與深度除錯很有幫助。