• xml配置


    xml配置注入:

    1、普通构造方法注入

    在Spring的配置文件中声明你要注入的对象 例如:User

    <bean class="com.itbaizhan.User" id="user1"/>
    1
    所谓的声明,就是将自己的信息告诉Spring容器,例如id和class,Spring容器根据class,通过反射(默认使用的是无参构造方法)就可以创建一个名为user1的User对象。

    初始化Spring容器:

    @Before
    public void before(){
    ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    }
    1
    2
    3
    4
    初始化Spring容器后,可以看到User对象被创建出来了:

    @Test
    public void test01(){
    User user = (User) ac.getBean("user");
    System.out.println(user);
    }
    1
    2
    3
    4
    5
    注意:上面的这种初始化方式,要求User类必须有一个无参构造方法,如果没有无参构造方法,会抛出如下异常:

    No default constructor found; nested exception is java.lang.NoSuchMethodException: com.itbaizhan.User.<init>()
    1
    我们也可以通过类型直接获取一个bean的实例:

    @Test
    public void test02(){
    User user = ac.getBean(User.class);
    System.out.println(user);
    }
    1
    2
    3
    4
    5
    注意:区别Spring配置文件中id和name:
    在实际开发中,可以忽略id和name的区别,可以混用。
    这两个是有区别的:

    id="user1,user2,user3"表示bean有一个名字,这个名字就是user1,user2,user3
    name="user1,user2,user3"表示bean有多个名字,多个名字分别是user1、user2以及user3
    2、静态工厂注入

    1、定义类的静态工厂方法:

    public class UserFactory {
    public static User getInstance() {
    return new User();
    }
    }
    1
    2
    3
    4
    5
    2、在xml文件中进行配置:
    配置时注意指定静态工厂类以及静态方法

    <bean class="com.sxt.factory.UserFactory" id="factory" factory-method="getInstance"/>
    1
    3、获取相应的实例:

    @Test
    public void test04(){
    User user = (User) ac.getBean("factory");
    System.out.println(user);
    }
    1
    2
    3
    4
    5
    3、实例工厂注入

    实例工厂注入与静态工厂注入基本一致,主要区别体现在工厂方法是不是静态方法
    实例工厂方法:

    public class UserFactory2 {
    public User getInstance2() {
    return new User(http://www.my516.com);
    }
    }
    1
    2
    3
    4
    5
    注意:实例工厂配置,在xml文件中配置中,首先要先配置实例工厂的类,首先获取实例工厂的实例,然后再配置要 获取的实例类,通过factory-bean属性进行实例工厂的获取配置,获取想要获取的实例对象。
    配置如下:

    <bean class="com.sxt.factory.UserFactory02" id="userFactory02"/>
    <bean class="com.sxt.pojo.User" id="user1" factory-bean="userFactory02" factory-method="getInstance02"/>
    ---------------------

  • 相关阅读:
    BASH让标准输出和错误输出颜色不同
    为Linux的文件管理器创建“在此打开终端”菜单
    在Linux终端中快速生成、解码二维码
    让BASH用得更舒服:提示符颜色、时间、显示返回值、终端标题显示当前目录与正在执行的命令
    Linux关联文件扩展名和打开程序
    Linux发行版教你如何选 给入门者的选择通法
    B/S架构与C/S架构的比较
    一个PB12.5安装的问题
    介绍JavaEE平台
    类与对象小结
  • 原文地址:https://www.cnblogs.com/ly570/p/11179184.html
Copyright © 2020-2023  润新知