`

spring的BeanFactory和AplicationContext

阅读更多

org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现

org.springframework.asm——spring 2.5.6的时候需要asm jar包,spring3.0开始提供它自己独立的asm jar包

org.springframework.aspects——Spring提供的对AspectJ框架的整合

org.springframework.beans——所有应用都用到,包含访问配置文件,创建和管理bean等,是Spring IOC的基础实现。

org.springframework.context.support——Spring context的扩展支持,用于MVC方面

org.springframework.context——提供在基础IOC功能上的扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。

org.springframework.core——Spring的核心工具包,其他包依赖此包

org.springframework.expression——Spring表达式语言

org.springframework.instrument.tomcat——Spring对tomcat连接池的集成

org.springframework.instrument——Spring对服务器的代理接口

org.springframework.jdbc——对JDBC 的简单封装

org.springframework.jms——为简化jms api的使用而做的简单封装

org.springframework.orm——整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现

org.springframework.oxm——Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换

org.springframework.test——对JUNIT等测试框架的简单封装

org.springframework.transaction——为JDBC,HIBERNATE,JDO和JPA提供的一致性的声明式和简单编程式事务管理

org.springframework.web.portlet——Spring MVC的增强

org.springframework.web.servlet——对J2EE6.0 servlet3.0的支持

org.springframework.web.struts——整合struts框架的支持,可以更方便更容易的集成Struts框架。

org.springframework.web——包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。

 

 

1.spring的7个模块

  • spring core模块 :包含BeanFactory ,BeanFactory是spring框架的核心,实现依赖注入【使个组件的依赖关系从代码中独立出来,使用配置文件即可实现这种依赖关系】和bean声明周期的管理
  • spring context模块 :该模块使spring成为框架,它通过配置文件将各个组件组合在一起,使组件之间可以正常访问。包括ApplicationContext 类,ApplicationContext继承BeanFactory接口并扩展功能。此外还有JSM ,JNDI访问远程调用 等内容。
  • DAO模块、ORM模块、AOP模块、web模块和MVC模块

2.spring的管理容器--BeanFactory和ApplicationContext

       1.BeanFactory接口 :采用工厂模式,实例化和分发各种组件。实例化时自动根据配置文件applicationContext.xml(也可以其它名字)创建bean之间的依赖关系,<ref>来实现bean之间的依赖。

BeanFactory接口的5个方法,主要实现类:XMLBeanFactory

  • boolean containsBean(String str)
  • Object getBean(String str)
  • Object getBean(String str,Class)
  • boolean isSingleton(String str)
  • String[] getAliases(String str) //别名

加载BeanFactory

InputStream is=new FileInputStream("WEB-INF\\applicationContext.xml");
XMLBeanFactory bf=new XMLBeanFctory(is);
MyBean mb=(MyBean)bf.getBean("mybean");

      

       2. ApplicationContext接口 覆盖了BeanFactory的所有功能,一般使用ApplicationContext,资源少的时候才用BeanFactory.

实现类:ClassPathXmlApplication   FileSystemXmlApplication  XmlWebApplicationContext

其它功能

国家化支持、事件传播、对资源的访问 【spring可以通过Application.getResource()方法对资源(文件、web页面)进行访问】

加载ApplicationContext容器

ApplicationContext context=new FileSystemApplicationContext("applicationContext.xml");
MyBean mb=(MyBean)contxt.getBean("mybean");

 

 在web.xml文件中配置

Listener接口方式

<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
  <listener-class> org.springframework.web.context.ContextLoadLisener
</listener-class>
</listener>

 servlet接口方式

<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<servlet>
  <servlet-name>context</servlet-name>
  <servlet-class> org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

 WebApplicationContextUtils.getWebApplicationContext() 方法获得ApplicationContext的引用

 

       3.依赖注入的两种方式 设值注入   构造函数注入

设值注入

    备案中包含setter getter方法,配置

 

<bean id="mybean" class="org.cims201.MyBean"  singleton="true" init-mehod="startInit" destroy-method="closeBean" depends-on="DealAction">

<property name="name">
  <value>林建科</value>
</property>
<property name="password">
  <value>null</value>
</property>


<property name="department">
<ref bean="department"><!--对应另一个bean的id-->
</property>


<property name="friedns">
  <list>
      <value>林建科1</value>
       <value>林建科2</value>
  </list>
</property>

<property name="friedns">
 <set>
      <value>林建科1</value>
       <value>林建科2</value>
  </set>
</property>


<property name="favorite">
  <map>
      <entry key="sport">
            <value>篮球</value>
      </entry>
        <entry key="music">
            <value>因为爱情</value>
      </entry>
  </map>
</property>

<property name="roommate">
 <props>
       <prop key="张">张教授</prop>  <!--值为string类型-->
      <prop key="林">林教授</prop>  <!--值为string类型-->
 </props>
</property>





构造函数注入  

public class MyBean{
private String name;
private String sex;
private Department department;

public MyBean(String name,String sex,Department department){  //构造函数 this.name=name;
.......
}


}

 配置如下,用 constructor-arg   type 参数类型和index 指定参数顺序】

<bean id="mybean" class="org.cims201.MyBean"  singleton="true" init-mehod="startInit" destroy-method="closeBean" depends-on="DealAction">

<constructor-arg type="java.lang.String" index="0">
   <value>林科</value>
</constructor-arg>

<constructor-arg type="java.lang.String" index="1">
   <value>男</value>
</constructor-arg>

<constructor-arg>
   <ref bean="department">
</constructor-arg>

</bean>

<bean id="mybean" class="org.cims201.MyBean" >  <!--另一个bean的配置-->
<property name="name">
<value>林克</value>
</property>
</bean>


 

 

 

分享到:
评论

相关推荐

    简单模拟Spring的beanFactory

    通过模拟`BeanFactory`,我们可以加深对Spring如何管理对象生命周期和依赖关系的理解。这对于日常开发和优化Spring应用非常有帮助,尤其是在解决依赖问题或自定义bean处理逻辑时。同时,了解这些基础知识也为理解和...

    简单了解Spring中BeanFactory与FactoryBean的区别

    简单了解Spring中BeanFactory与FactoryBean的...BeanFactory和FactoryBean都是Spring框架中的重要组件,它们提供了不同的功能和机制来管理和生成Bean。理解它们之间的区别对我们使用Spring框架开发应用程序非常重要。

    Spring中ApplicationContext和beanfactory区别.rar

    在Spring框架中,ApplicationContext和BeanFactory是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入学习和使用Spring至关重要。 首先,BeanFactory是Spring中最基础的bean管理容器,它...

    day38 05-Spring的BeanFactory与ApplicationContext区别

    在Spring框架中,BeanFactory和ApplicationContext是两种不同的bean容器,它们各自有其特性和应用场景,理解二者的区别对于深入掌握Spring框架至关重要。 首先,BeanFactory是Spring中最基本的bean容器,它提供了对...

    Spring的BeanFactory的接口源码中文解释

    Spring的BeanFactory的接口的中文解释

    二、Spring源码分析——BeanFactory

    总结,Spring的BeanFactory是IoC容器的核心,它通过强大的依赖注入机制,简化了对象的管理和维护,使得代码更加灵活和可测试。理解并熟练运用BeanFactory及其相关概念,对于深入学习Spring框架至关重要。通过不断...

    Spring BeanFactory和FactoryBean区别解析

    Spring BeanFactory和FactoryBean的区别解析 Spring框架中,BeanFactory和FactoryBean是两个非常重要的概念,它们都是Spring IoC容器的核心组件。今天,我们将深入探讨这两个概念之间的区别和联系。 首先,让我们...

    spring之beanfactory

    spring之beanfactory 的一些基本知识与其关系使用

    Spring的BeanFactory的接口注解

    ### Spring的BeanFactory的接口注解 #### 一、引言 在Spring框架中,`BeanFactory`是工厂模式的一种实现,它负责管理容器中的Bean的生命周期与依赖注入。了解`BeanFactory`及其相关接口的功能对于掌握Spring的核心...

    spring中的BeanFactory解析xml文件

    在Spring框架中,BeanFactory是核心的容器,它负责管理和装配应用中的对象,即bean。当我们谈论“Spring中的BeanFactory解析XML文件”时,我们实际上是在讨论如何通过XML配置文件来定义、创建和管理bean。这篇文章将...

    简单了解Spring beanfactory循环依赖命名重复2大属性

    本文将深入探讨Spring BeanFactory中的两个关键属性——`allowBeanDefinitionOverriding`和`allowCircularReferences`,以及它们如何影响循环依赖和bean名称重复的情况。 首先,`allowBeanDefinitionOverriding`...

    BeanFactory的实例化

    在 Spring 框架中,BeanFactory 是一个核心组件,负责管理和实例化 Bean。Spring 3 中提供了三种实例化 BeanFactory 的方法,下面将详细介绍这三种方法。 第一种方法:从文件系统资源实例化 BeanFactory 在 Spring...

    Spring中BeanFactory与FactoryBean接口的区别详解

    在Spring框架中,BeanFactory和FactoryBean是两个重要的接口,它们各自扮演着不同的角色,但都与Spring容器的管理和创建对象密切相关。 **BeanFactory接口**是Spring容器的基础,它是整个Spring IoC(Inversion of ...

    Spring的IoC容器之BeanFactory[定义].pdf

    Spring的IoC容器是其核心特性之一,它通过BeanFactory和ApplicationContext两个主要接口来实现控制反转(Inversion of Control,IoC)的概念。BeanFactory作为基础的IoC容器,提供了全面的IoC服务,包括对象的注册、...

    BeanFactory内部解析:Spring框架的心脏如何运作

    总的来说,可以初步理解BeanFactory 为 Spring 框架中负责管理 bean 对象的核心组件,它通过 IoC 容器、延迟加载、依赖注入和作用域管理等机制,实现了对象之间的解耦和灵活配置,从而提高了应用程序的可维护性、可...

    Spring框架 jar 架包 spring开发文档详解

    Spring BeanFactory Spring IOC(控制翻转)/DI(依赖注入) Spring Proxy Spring AOP 面向切面编程 Spring与JDBC整合 Spring声明式事务 Spring与Hibernate整合 Spring与Struts整合

    Eclipse 搭建Spring 开发环境

    最后,编写测试程序 HelloApp,使用 Spring 的 BeanFactory 和 XmlBeanFactory 对象来加载配置文件和实例化 Bean。 Spring 开发环境搭建完成后,可以进行 Spring 项目的开发和测试。该环境提供了一个强大且灵活的...

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起来整个过程)

    Spring源码学习三:BeanFactory解析1

    在Spring框架中,BeanFactory是核心的IoC(Inversion of Control)容器接口,它负责管理和维护Bean的生命周期。BeanFactory提供了对Bean的创建、初始化、销毁等操作的支持,是Spring容器的基础。当我们通过XML、Java...

Global site tag (gtag.js) - Google Analytics