Spring入门 (2)

            public void run(){
               BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
               UserService us = (UserService) factory.getBean("us");
               us.sayHello();
            }

          3.BeanFactory和ApplicationContext的区别

            * BeanFactory -- BeanFactory采取延迟加载,第一次getBean时才会初始化Bean
            * ApplicationContext -- 在加载applicationContext.xml时候就会创建具体的Bean对象的实例,还提供了一些其他的功能
            * 事件传递
            * Bean自动装配
            * 各种不同应用层的Context实现

            c.Spring框架的Bean管理的配置文件方式

        技术分析之Spring框架中标签的配置

        1. id属性和name属性的区别
          * id -- Bean起个名字,在约束中采用ID的约束,唯一
          * 取值要求:必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号 id:不能出现特殊字符

          *name -- Bean起个名字,没有采用ID的约束(了解)
          * 取值要求:name:出现特殊字符.如果<bean>没有id的话 , name可以当做id使用
          * Spring框架在整合Struts1的框架的时候,Struts1的框架的访问路径是以/开头的,例如:/bookAction

        2. class属性 -- Bean对象的全路径
        3. scope属性 -- scope属性代表Bean的作用范围
          * singleton -- 单例(默认值)
          * prototype -- 多例,在Spring框架整合Struts2框架的时候,Action类也需要交给Spring做管理,配置把Action类配置成多例!!
          * request -- 应用在Web项目中,每次HTTP请求都会创建一个新的Bean
          * session -- 应用在Web项目中,同一个HTTP Session 共享一个Bean
          * globalsession -- 应用在Web项目中,多服务器间的session

        4. Bean对象的创建和销毁的两个属性配置(了解)
          * 说明:Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法
          * init-method -- 当bean被载入到容器的时候调用init-method属性指定的方法
          * destroy-method -- 当bean从容器中删除的时候调用destroy-method属性指定的方法
          * 想查看destroy-method的效果,有如下条件
          * scope= singleton有效
          * web容器中会自动调用,但是main函数或测试用例需要手动调用(需要使用ClassPathXmlApplicationContext的close()方法)

 

      d.依赖注入(DI)

        1. IOC和DI的概念
          * IOC -- Inverse of Control,控制反转,将对象的创建权反转给Spring!!
          * DI -- Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中!!

        2. DI(依赖注入)
          * 例如:如果UserServiceImpl的实现类中有一个属性,那么使用Spring框架的IOC功能时,可以通过依赖注入把该属性的值传入进来!!
          * 具体的配置如下
            <bean>
              <property value="小风"/>
            </bean>

      e.Spring框架的属性注入

        1. 对于类成员变量,常用的注入方式有两种
          * 构造函数注入
          * 属性setter方法注入

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyydyj.html