Spring p命名空間與c命名空間遇到的問題

2021-10-14 02:10:47 字數 1409 閱讀 9321

在測試spring p命名空間與c命名空間時,發現p命名空間沒有問題,而c命名空間報 attribute c:name is not allowed here 這樣的異常

**塊如下

"小明" p:password=

"123321"

/>

"user1"

class

="com.rong.pojo.user" c:name=

"小明" c:password=

"123321" scope=

"prototype"

/>

<

/beans>user類

package com.rong.pojo;

/** * @author: rong

* @date: 2020/12/30 16:30

*/public

class

user

public

void

setname

(string name)

public string getpassword()

public

void

setpassword

(string password)

@override

public string tostring()

';}}

翻看了資料發現 c命名空間運用要有對應的構造器才能使用

於是加上帶name 與 password引數的構造器

public

user

(string name, string password)

發現加上兩個引數的構造器之後,c命名空間沒問題了,p命名空間又報紅:

no matching constructor found in class 『user』

根據報錯得知是因為沒有對應的構造器造成的

於是又加上了預設的無參構造器

public

user()

所以spring5中p命名空間需要類中有無參構造才能使用,c命名空間的使用需要有對應的含參構造器。

spring p命名空間 c命名空間

p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...

Spring P命名空間 02

p命名空間 裝配屬性 使用元素為bean 的屬性裝配值和引用並不太複雜。儘管如此,spring 的命名空間p 提供了另一種bean 屬性的裝配方式,該方式不需要配置如此多的尖括號。命名空間p 的schema uri 為如果你想使用命名空間p,只需要在spring 的xml 配置中增加如下一段宣告 x...

Spring p 命名和c命名(不常用)

1.p命名 p命名空間 裝配屬性 使用元素為bean 的屬性裝配值和引用並不太複雜。儘管如此,spring 的命名空間p 提供了另一種bean 屬性的裝配方式,該方式不需要配置如此多的尖括號。命名空間p 的schema uri 為如果你想使用命名空間p,只需要在spring 的xml 配置中增加如下...