1. Spring管理的bean对象多少个?

    每一个数据库的表格会对应一套Controller Service Dao,多个bean对象分属在不同的层次中,我们可以将配置拆分。
    将XML文件拆分
    ①(String…)—-可变长度参数列表

    1. BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext.xml","ApplicationContext_Dao.xml","ApplicationContext_Service.xml","ApplicationContext_Controller.xml");

    image.png
    ②(String[])

    1. BeanFactory factory=new ClassPathXmlApplicationContext(new String[]{"ApplicationContext.xml","ApplicationContext_Dao.xml","ApplicationContext_Service.xml","ApplicationContext_Controller.xml"});

    ③通配符写法*

    1. BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext*.xml");

    ④主配置文件引入其他文件的方式
    image.png

    1. BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext.xml");
    1. Spring管理的这些对象是每次new一个新的 还是单例

    ①Spring管理的bean对象默认的效果是单例模式
    image.png

    1. BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext.xml");
    2. //2.帮我们创建对象,跟工厂要一个对象
    3. System.out.println(factory.getBean("student"));
    4. System.out.println(factory.getBean("student"));

    image.png
    单例模式底层—-生命周期托管的方式(Servlet)
    单例模式能否修改—-可以修改
    image.png
    image.png


      1. public Student() {
      2. System.out.println("Student创建了");
      3. }
      ①如果是单例对象,是立即加载方式
      1. BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext.xml");
      image.png
      如果是原型模式加载对象,不会立即加载
      1. <bean name="student" class="domain.Student" scope="prototype"></bean>
      image.png
      平时我们在开发的时候可能更多的使用延迟加载的机制,我们可以通过修改Spring配置的方式来改变
      image.png

    补充:

    init-method="" //在创建对象时加载此方法
    destroy-method=""//销毁对象时加载此方法
    


    1. 如果对象中有属性 自动将属性值赋上———->DI(Dependency Injection)