- 为了精简配置文件,可以使用命名空间~~
- p,也就是property,可以简化bean的peoperty配置。具体看代码
<?xml version="1.0" encoding="GBK"?> <!--需要引入p命名空间--> <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-4.0.xsd"> <bean id="test" class="MainPackage.MainClass" p:integerVariable="12" p:classA-ref="referenceA" p:classB-ref="referenceB"/> <!--然后可以在bean中优雅地配置peoperty啦 classA-ref是引用其他bean integerVariable是指定基本类型变量--> <bean id="referenceA" class="ReferenceClass.ReferenceClassA"> <property name="thisIsA" value="this is a"/> </bean> <bean id="referenceB" class="ReferenceClass.ReferenceClassB"> <property name="thisIsB" value="this is b"/> </bean> </beans>
package MainPackage; import ReferenceClass.ReferenceClassA; import ReferenceClass.ReferenceClassB; public class MainClass { private ReferenceClassA classA; private ReferenceClassB classB; private int IntegerVariable; public int getIntegerVariable() { return IntegerVariable; } public void setIntegerVariable(int integerVariable) { IntegerVariable = integerVariable; } public ReferenceClassA getClassA() { return classA; } public void setClassA(ReferenceClassA classA) { this.classA = classA; } public ReferenceClassB getClassB() { return classB; } public void setClassB(ReferenceClassB classB) { this.classB = classB; } public void test(){ System.out.println("thisIsA" + classA.getThisIsA()); System.out.println("thisIsB" + classB.getThisIsB()); } }
package TestPackage; import MainPackage.MainClass; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringTest { public static void main(String [] args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); MainClass mainClass = applicationContext.getBean("test", MainClass.class); System.out.println(mainClass.getClassA().getThisIsA()); System.out.println(mainClass.getClassB().getThisIsB()); } }
package ReferenceClass; public class ReferenceClassA { private String thisIsA; public String getThisIsA() { return thisIsA; } public void setThisIsA(String thisIsA) { this.thisIsA = thisIsA; } }
package ReferenceClass; public class ReferenceClassB { private String thisIsB; public String getThisIsB() { return thisIsB; } public void setThisIsB(String thisIsB) { this.thisIsB = thisIsB; } }
-
命名空间,为了精简构造方法配置的,用法和p差不多,这是部分例子,其他的和上面是一样的
package MainPackage; import ReferenceClass.ReferenceClassA; import ReferenceClass.ReferenceClassB; public class MainClass { private ReferenceClassA classA; private ReferenceClassB classB; private int IntegerVariable; // 在这里写了构造方法,然后呢在配置文件里用c进行具体配置 public MainClass(ReferenceClassA classA, ReferenceClassB classB, int IntegerVariable){ this.classA = classA; this.classB = classB; this.IntegerVariable = IntegerVariable; } public int getIntegerVariable() { return IntegerVariable; } public void setIntegerVariable(int integerVariable) { IntegerVariable = integerVariable; } public ReferenceClassA getClassA() { return classA; } public void setClassA(ReferenceClassA classA) { this.classA = classA; } public ReferenceClassB getClassB() { return classB; } public void setClassB(ReferenceClassB classB) { this.classB = classB; } public void test(){ System.out.println("thisIsA" + classA.getThisIsA()); System.out.println("thisIsB" + classB.getThisIsB()); System.out.println("this is it's int " + IntegerVariable); } }
<?xml version="1.0" encoding="GBK"?> <!--需要引入命名空间--> <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" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean id="test" class="MainPackage.MainClass" c:classA-ref="referenceA" c:classB-ref="referenceB" c:IntegerVariable="5"/> <!--然后可以在bean中优雅地配置peoperty啦 classA-ref是引用其他bean integerVariable是指定基本类型变量--> <bean id="referenceA" class="ReferenceClass.ReferenceClassA"> <property name="thisIsA" value="this is a"/> </bean> <bean id="referenceB" class="ReferenceClass.ReferenceClassB"> <property name="thisIsB" value="this is b"/> </bean> </beans>
c标签还可以根据参数的位置进行赋值配置
<bean id="test" class="MainPackage.MainClass" c:_0-ref="referenceA" c:_1-ref="referenceB" c:_2="5"/>
-
还有呢,可以通过util标签来配置集合元素~ 例子里beans的结构是:在beans下配置好util,然后在一个bean中通过c标签使用这些util
<?xml version="1.0" encoding="GBK"?> <!-- 指定Spring配置文件的根元素和Schema 导入p:命名空间和util:命名空间的元素 --> <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" xmlns:util="http://www.springframework.org/schema/util" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <bean id="test" class="MainPackage.MainClass" c:classA-ref="referenceA" c:classB-ref="referenceB" c:IntegerVariable="5" c:testList-ref="test.testList" c:testMap-ref="test.testMap" c:testSet-ref="test.testSet"/> <!--然后可以在bean中优雅地配置peoperty啦 classA-ref是引用其他bean integerVariable是指定基本类型变量--> <util:constant id="test.IntegerVariable" static-field="java.sql.Connection.TRANSACTION_NONE"/> <!--这就是util的配置啦,指定id,指定实现类,再指定它具体的值--> <util:list id="test.testList" list-class="java.util.LinkedList"> <value>1</value> <value>2</value> </util:list> <util:map id="test.testMap" map-class="java.util.TreeMap"> <entry key="a" value="A"/> <entry key="b" value="B"/> </util:map> <util:set id="test.testSet" set-class="java.util.HashSet"> <value>aaa</value> <bean class="java.util.Date"/> <ref bean="referenceB"/> </util:set> <bean id="referenceA" class="ReferenceClass.ReferenceClassA"> <property name="thisIsA" value="this is a"/> </bean> <bean id="referenceB" class="ReferenceClass.ReferenceClassB"> <property name="thisIsB" value="this is b"/> </bean> </beans>
-
这是我看李刚编著的《轻量级javaEE企业应用实战(第五版)-Struts2+Spring5+Hibernate5/JAP2》后总结出来的。
Spring(23) 命名空间
猜你喜欢
转载自blog.csdn.net/weixin_39452731/article/details/84873256
今日推荐
周排行