字面值
字面值:可用字符串表示的值,可以通过value元素标签或value属性进行注入
基本数据类型及其封装类,String等类型都可以采用字面值注入的方式
若字面值中包含特殊字符,可以使用< ![CDATA[]]> 把字符值包裹起来。
配置是不仅可以使用value属性来进行配置,还使用value元素标签进行注入
XML配置如下
<bean id="car2" class="com.atguigu.spring.beans.Car">
<constructor-arg value="baoma"></constructor-arg>
<constructor-arg value="Shanghai"></constructor-arg>
<constructor-arg type="int">
<value>240</value>
</constructor-arg>
</bean>
在注入的时候处理特殊字符
我们希望给Car赋一个”< shanghai^>”的值
XML配置如下
<bean id="car2" class="com.atguigu.spring.beans.Car">
<constructor-arg value="baoma"></constructor-arg>
<constructor-arg value="<Shanghai^>"></constructor-arg>
<constructor-arg type="int">
<value>240</value>
</constructor-arg>
</bean>
会出现如下Error
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 24 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 24; columnNumber: 27; 与元素类型 "constructor-arg" 相关联的 "value" 属性值不能包含 '<' 字符。
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:540)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.atguigu.spring.beans.Main.main(Main.java:12)
Caused by: org.xml.sax.SAXParseException; lineNumber: 24; columnNumber: 27; 与元素类型 "constructor-arg" 相关联的 "value" 属性值不能包含 '<' 字符。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl