Spring的property注入在找setter的时候用了java.beans.Introspector#processPropertyDescriptors,这个是先找getter,再找同样类型的setter的,而Spring又会自动转换类型。 于是当你有个List的变量,写了对应的getter,然后多写了个String的setter(用split切成List),然后用value的方式注入,实际会把String转换成一个List再用对应setter,并不会走split。