Spring 总结篇(1)

一、Spring获取ioc核心容器  三种加载配置文件的方式:

  1. ClassPathXmlApplicationContext加载类路径下的配置文件。
  2. FileSystemXmlApplicationContext加载磁盘下任意路径的配置文件(必须有访问权限)
  3. AnnotationConfigApplicationContext用于读取注解

   注意:1)ApplicationContext创建核心容器的时候,是立即创建,且是把所有的对象都创建,适用单列模式,比如链接数据库。2)BeanFactory创建核心容器的时候,是延迟加载的。简答来说就是当用户调用的时候再创建对象。

二、Spring 对bean的管理

    1.创建bean的三总方式

                1)适用默认构造函数创建对象,在Spring的配置文件中使用bean标签,配和id和class属性后,且没有其他的属性,采用默认的构造函数创建bean对象,如果没有构造函数,则创建bean对象失败。例如:<bean id="user" class="cn.domain.User"></bean>

               2)普通工厂模式创建对象(使用某个类中的方法创建对象,并存入Spring容器中)

xml bean对象配置:
<bean id="saveuser" class="cn.service.SaveUserImpl"></bean>
<bean id="user" factory-bean="saveuser" factory-method="saveuser"></bean>

具体方法:
public class SaveUserImpl {
    public User saveuser(){
        return new User();
    }
}

测试方法:
public class UserTest {

    @Test
    public void saveUser(){
        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        User user = (User)ac.getBean("user");
        System.out.printf(String.valueOf(user));


    }
}

               3)使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入Spring容器总)

xml bean对象配置:
<bean id="user" class="cn.Factory.staticFactory" factory-method="getuset"></bean>

实现方法:
public class staticFactory {

    public static User getuset(){
        return new User();
    }
}

测试方法:
public class UserTest {

    @Test
    public void saveUser(){
        ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
        User user = (User)ac.getBean("user");
        System.out.printf(String.valueOf(user));


    }
}

以上三种方法的结果都是一样的 ,具体操作还需多体会和理解。 

        2. bean对象的作用范围

                 bean标签的scope的属性,它的作用就是bean标签的作用范围,其中包括5个:singleton、prototype、request、session、golbal-session。

                singleton:单列模式,也是默认值。

                prototype:多列的

                request:web的请求范围

                session  :web的会话范围

                golbal-session:集群环境的范围(全局范围),当不是集群环境时,它就是session。

                         

        3. bean对象的生命周期

                  单列对象:

                         出生:当容器创建时,出生。

                          活着:只要容器还在,你就一直活着

                          GG:容器销毁时,gameover。嘻嘻,你懂的!

                  多列对象:

                        出生:当我们使用时,Spring框架为我们创建。

                        活着:对象只要一直使用 ,就一直活着

                        GG:当对象长时间不使用当时候,java当垃圾回收机制就会为我们销毁。

三、依赖注入   

             能注入当数据有三种:基本数据类型、其他bean、复杂类型\集合类型。

             注入当方式也是三种:构造函数注入(单列模式时默认构造函数,不一样)、使用set方法提供、注解提供。   

             构造函数注入:

                     使用constructor-arg标签,标签属性有type(注入当数据类型)、index(索引赋值)、name(给指定当属性赋值)、value(具体当值)、ref(关联当值)。

           set方法注入:

                    使用property标签。需注意当是,当注入list结构时,可以用:list、array、set;当注入map结构时,可以用:map、props。

                    

                 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值