美文网首页
2018-10-28

2018-10-28

作者: cc_d940 | 来源:发表于2018-11-07 21:44 被阅读0次
                                           Spring 5.2文档初读
    
    • IOC容器概述:

      1. 容器是什么
        • 在Spring中,org.springframwork.context.ApplicationContext这一接口就代表了Spring IOC容器并且用于创建、配置、管理多个对象,并且还可以控制对象的生命周期,该接口常用的一种实现类就是ClassPathXmlApplicationContext,例如:ApplicationContext context = new ClassPathXmlApplicationContext("services.xml","daos.xml"),同时我们可以狭隘地认为一个context对象就对应于一个container。
      2. IOC是什么
        • IOC是控制反转(Inversion of Control)的简称,说它是一种技术,其实它更偏向于一种被动获取的思想。在我们传统的java中,构造任意一个对象都要通过new这个关键字,即当我们要使用到某个类时,我们先要去主动的创建,然后再来使用。而在Spring中,我们只需要通过各种注解或在配置文件中注册的方式就可以自动生成各种对象,这些对象就是存放在上述所说的容器中,当我们需要使用这些对象的时候,直接从容器中取出相应的对象即可,这种控制方式不仅使得我们更加方便的管理对象,而且还在一定程度上弱化了类和类之间的耦合。总而言之,控制反转就是一种将原本在程序中手动创建对象的控制权交给Spring框架管理的思想。
    • Bean概述:

      1. Bean是什么
        • Bean的本质就是一个对象,通常来说,所有的bean都是由使用者提供给容器的配置数据所创造的。在容器内部,这些bean都是一个个BeanDefinition对象,这些对象都包含下列元数据:

          • 全限定类名:通常代表该bean对象的实现类的包名加类名
          • 行为配置元素:表明该bean在容器中的行为(作用域,生命周期回调函数等)

          在基于XML的配置元数据中,我们可以使用id或者name者两个属性来指定一个bean对象的名称,并且我们必须保证在整个容器对象中,各个bean的id值都是唯一的。

    1. Bean的实例化
    • 构造器实例化:使用该方法创建一个bean对象时,相应的类中应该带有一个无参数的构造器,其他的属性通过setget方法来进行设置或者获取.除此之外,还需要在配置文件中设置bean元素的id和class属性以方便获取该bean对象。
    • 静态工厂方法实例化:使用该方法时必须先定义一个静态工厂类,在静态工厂类中定义一个静态方法用来返回某个实例化对象。具体代码如下:
      public class ClientService{
           private static ClientService service = new ClinetService();
           public ClientService(){}
            public ClientService createInstance(){return service;}
                  }
    
    <bean id="service" class="xxx.xxx.ClientService" factory-method="createInstance">
    </bean>
    
    • 实例工厂方式实例化:使用该方法创建bean对象时,不需要通过静态工厂类提供的静态方法来创建实例,而是先在配置文件中创建一个bean元素作为工厂对象,需要实例化的bean也不是通过class属性指向其实例化的类,而是通过factory-bean指向工厂对象,然后通过使用factory-method属性来确定使用工厂对象中的哪个方法。具体配置如下:
    <bean id=“serviceLocator” class="examples.DefaultServiceLocator">
    </bean>
    <bean id="clientService" factory-bean="serviceLocator" factory-method="createClientServiceInstance">
    </bean>
    

    上述三种配置都是最简洁的配置,除此之外,还可以根据实际情况设置bean对象是否为单例、是否需要别名等等。

    • IOC容器概述:

    相关文章

      网友评论

          本文标题:2018-10-28

          本文链接:https://www.haomeiwen.com/subject/iaeptqtx.html