Spring的配置很少,就是以下5种。但是bean的配置非常多(重要了解)。
bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
HelloWorld helloWorld = new com.shang.HelloWorld();
id: bean的唯一标识符,相当于对象名
class:bean对象所对应的全限定类名
name:起别名,以空格 , ;分割
-->
<bean id="helloWorld" class="com.shang.HelloWorld" name="h1 h2,h3;h4" >
<constructor-arg name="name" value="shang"/>
</bean>
</beans>
- 测试
public class HelloWorldTest {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld = context.getBean("h2", HelloWorld.class);
System.out.println(helloWorld);
}
}
- 结果
alials(别名)
- 配置元数据
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloWorld" class="com.shang.HelloWorld">
<constructor-arg name="name" value="shang"/>
</bean>
<alias name="helloWorld" alias="h1"/>
<alias name="helloWorld" alias="h2"/>
</beans>
- 测试
public class HelloWorldTest {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld = context.getBean("h1", HelloWorld.class);
System.out.println(helloWorld);
}
}
- 结果
import
合并 配置元数据(配置文件)
此时,我们有两个xml文件,bean1.xml中配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hw" class="com.shang.HelloWorld">
<constructor-arg name="name" value="世界你好"/>
</bean>
</beans>
如果我们想从applicationContext.xml中读取配置文件bean1.xml中的bean “hw”,如下所示:
public class HelloWorldTest {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloWorld = context.getBean("hw", HelloWorld.class);
System.out.println(helloWorld);
}
}
这肯定是读取不到的,因为applicationContext.xml中没有叫“hw”的 bean,那如何解决呢?就是通过 import 来合并配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloWorld" class="com.shang.HelloWorld" name="h1 h2,h3;h4" >
<constructor-arg name="name" value="shang"/>
</bean>
<import resource="bean1.xml"/>
</beans>