Sping-配置

advancingSnail / 2024-04-26 / 原文

5、Sping配置

5.1 别名

  • 编写beans.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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--别名  通过这种方式起的别名前任和现任都能用-->
    <alias name="user" alias="user2"/>
    <!--有参构造第三种 参数名-->
    <bean id="user" class="pojo.User">
        <constructor-arg  name="name" value="love" />
    </bean>
</beans>
  • 测试
package pojo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Mytest {
    @Test
    public void test(){
        /*获取容器*/
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        /*提取对象 其中getBean("user", User.class)中的user必须和beans.xml配置文件中注册的bean对象的id相同 其中使用alias起的别名前任和现任都可以使用*/
        User user = context.getBean("user2", User.class);
        System.out.println(user);
    }
}

5.2 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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--有参构造第三种 参数名-->
    <bean id="user" class="pojo.User" name="user2,use,.....">
        <constructor-arg  name="name" value="love" />
    </bean>
</beans>
  • 对于id就相当于对象名指向对象地址 class 就相当于Bean对象的类型相当于类 name第二种起别名的方式(可以有多个属性)

5.3 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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--无参构造-->
    <!--<bean id="user" class="pojo.User">
        <property name="name" value="lsl"/>
    </bean>-->
    <!--有参构造 第一种 下标-->
   <!-- <bean id="user" class="pojo.User">
        <constructor-arg index="0" value="lsl"/>
    </bean>-->
    <!--有参构造第二种 参数类型-->
   <!-- <bean id="user" class="pojo.User">
        <constructor-arg type="java.lang.String" value="xhq"/>
    </bean>-->
    <!--别名-->
    <!--<alias name="user" alias="user2"/>-->
    <!--有参构造第三种 参数名-->
    <bean id="user" class="pojo.User" name="user,user2">
        <constructor-arg  name="name" value="love" />
    </bean>
</beans>
  • 第二步 将元素导入进容器
<?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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
   <import resource="beans.xml"/>
</beans>
  • 测试程序
package pojo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    @Test
    public void test() {
        ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
        User user = context.getBean("user", User.class);
        System.out.println(user);
    }
}