`

Spring IOC实例化了哪些对象

阅读更多
Spring IOC实例化了哪些对象



启动servlet容器(tomcat),加载web.xml-->加载applicationContext.xml
spring的配置文件applicationContext.xml大致如下:

   
    //将beanService对象注入到Action对象 也可以用注解@Resource beanService
    <bean id="Login" class="sshdemo.func001.action.LoginAction"  scope="prototype">
        <property name="personService" ref="personService" />
    </bean>

    //将Dao对象注入到beanService对象里面
    <bean id="personService" class="sshdemo.func001.service.PersonServiceImpl">
        <property name="personDAO" ref="PersonDAO" />
    </bean>

    //将HibernateTemplate注入到Dao对象里面
    <bean id="PersonDAO" class="sshdemo.func001.dao.PersonDAOImpl">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    //将DB连接设置到SessionFactory 也可以通过加载hibernate.cfg.xml创建SessionFactory对象
    <bean id="sessionFactory"         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
    </bean>  

    //创建DB连接,也可以通过配置文件hibernate.cfg.xml里配置参数
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource">
     </bean>



然后在启动tomcat之后,还没有运行程序前,自己配置的log4j打出的日志有如下:
---------------------------------日志分割线--------------------------------------
Loaded 6 bean definitions from location pattern [/WEB-INF/applicationContext.xml]
。。。
6 beans defined in org.springframework.web.context.support.XmlWebApplicationContext@179dce4: display name [Root WebApplicationContext]; startup date [Thu May 14 08:44:00 CST 2009]; root of context hierarchy
。。。
Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6210fb: defining beans [Login,personService,PersonDAO,sessionFactory,dataSource,ChartAction]; root of factory hierarchy
Creating shared instance of singleton bean 'personService'
Creating instance of bean 'personService'
Eagerly caching bean 'personService' to allow for resolving potential circular references
Creating shared instance of singleton bean 'PersonDAO'
Creating instance of bean 'PersonDAO'
Eagerly caching bean 'PersonDAO' to allow for resolving potential circular references
Creating shared instance of singleton bean 'sessionFactory'
Creating instance of bean 'sessionFactory'
Eagerly caching bean 'sessionFactory' to allow for resolving potential circular references
Creating shared instance of singleton bean 'dataSource'
Creating instance of bean 'dataSource'
Eagerly caching bean 'dataSource' to allow for resolving potential circular references
。。。
---------------------------------日志分割线--------------------------------------

在启动servlet容器(tomcat)时,
1.spring就已经初始化了action,PersonServiceImpl,PersonDAOImpl,sessionFactory,dataSource
2.struts2的具体action实例也实例化,但是没包装数据,当用户访问*.action时,会把jsp页面里面的参数包装设置到action的属性里面。这里与struts 1.x不同之处:struts是*.do,经过web.xml过滤,查找有没有请求的action,有--->通过struts-config.xml-->找到<action../>-->对应的beanForm-->把请求参数设置到beanForm里面去。

分享到:
评论

相关推荐

    springIoc实现原理

    容器通过读取XML、Java注解或Java配置类等方式,获取对象的定义信息,然后根据这些信息实例化对象并进行依赖注入。 **三、依赖注入(DI,Dependency Injection)** 依赖注入是IoC的一种具体实现方式,它允许对象在...

    浅谈springioc实例化bean的三个方法

    浅谈Spring IOC实例化Bean的三个方法 Spring IOC(Inversion of Control,控制反转)是Spring Framework中的一种核心机制,用于管理Bean的生命周期。实例化Bean是IOC的核心步骤之一,本文将详细讲解Spring IOC实例...

    springIOC实例

    现在,我们来看如何运行这个简单的Spring IOC实例。首先,你需要创建一个Spring配置文件(如`springioc01.xml`),然后编写你的业务类和它们的依赖。接着,你需要一个启动程序来加载配置并初始化容器: ```java ...

    SpringIoc示例代码

    开发者不再需要手动创建对象,而是声明对象及其依赖,然后由Spring容器负责实例化、初始化和管理这些对象。这样,对象之间的耦合度大大降低,因为它们不再直接引用彼此,而是通过容器获取依赖。 接下来,我们来看看...

    struts+spring ioc 实例

    本实例主要关注Struts与Spring的集成,特别是Spring的Inversion of Control (IoC)容器在其中的作用。 Struts是一个MVC(Model-View-Controller)框架,它主要用于处理用户请求,控制应用程序流程,并提供视图模板来...

    spring ioc和aop原理流程图(详细)

    Spring容器负责管理Bean的生命周期,并根据Bean之间的依赖关系进行实例化和装配。依赖可以通过属性注入、构造函数注入或方法注入等方式实现。 4. **Bean的作用域**:Spring提供了多种Bean的作用域,如单例...

    Spring IoC加载流程讲解

    IoC(Inversion of Control)是指在软件设计中,将对象实例的控制权从代码控制剥离到容器控制。这样做的目的是为了降低耦合度,提高系统的灵活性和可维护性。在 Spring 中,我们使用 XML 文件来配置对象实例的创建和...

    Spring的ioc小案例

    在案例中,可能会有一个名为`beans.xml`的配置文件,其中定义了bean的实例化、属性配置以及它们之间的依赖关系。 2. **Bean的声明**:在`beans.xml`中,每个bean都通过`&lt;bean&gt;`标签进行声明,包括bean的ID、class...

    spring ioc思维导图源文件

    Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它允许开发者将对象的创建和管理交给Spring容器来处理,从而使代码更加松耦合,更易于测试和维护。下面将详细介绍Spring IOC的基本概念、...

    Springioc注入Demo

    这种方式更符合JavaBean规范,使得对象可以在无依赖的情况下被实例化,但在使用前需要注入依赖。 3. **接口注入**:Spring提供了一种基于接口的注入方式,但相对较少使用。它需要定义一个接口,由Spring容器来实现...

    spring ioc

    这样,开发者可以更专注于业务逻辑,而无需关心对象的实例化、配置和组装。在 Spring 中,这种机制通过容器(ApplicationContext)实现,容器负责创建对象、管理对象间的关系,并根据需要注入依赖。 Spring 提供了...

    SpringIOC经典Demo

    5. **Bean的生命周期**:Spring容器管理Bean的整个生命周期,包括实例化、初始化、使用和销毁。开发者可以通过实现特定接口或使用注解来定制Bean的生命周期行为。 6. **自动装配**:Spring提供了一种自动装配Bean...

    springioc和spring aop

    Spring通过反射机制来实现这一过程,比如在上述的`TestIOC`例子中,Spring能够根据类名动态地创建对象,并通过setter方法注入属性值,实现了对象的实例化和配置。 **依赖注入(DI)**有多种实现方式,包括构造器...

    SpringIOC示例源代码

    Spring会负责实例化、初始化和管理这个bean。 5. `Person.java`:这可能是一个简单的Java类,表示一个人,它可能会有一些基本属性,如姓名、年龄等。在Spring中,这类类可能作为依赖注入的实例。 6. `beans.xml`:...

    Spring实例化Bean顺序

    这里,我们主要探讨的是Spring如何通过其IoC(Inversion of Control)容器来实例化Bean,并理解其背后的逻辑。 首先,我们要知道Spring IoC容器是通过XML配置文件、注解或Java配置类来管理Bean的生命周期。Bean的...

    Spring IoC依赖包

    - **依赖注入(Dependency Injection, DI)**: Spring通过构造器注入、设值注入或者接口注入的方式,将对象的依赖关系以声明式的方式定义在配置文件或注解中,由Spring容器负责实例化和组装Bean。 - **AOP(面向切...

    Spring IOC.pdf

    1. 定义Bean:在Spring配置文件中,通常使用XML格式或者注解的方式定义Bean,告诉容器需要管理哪些对象。 2. 容器初始化:Spring容器会读取配置文件并解析其中定义的Bean,然后在容器内部创建Bean的实例并管理它们。...

    Spring IoC源码深度剖析开源架构源码2021.pdf

    其不能被实例化,提供了一套IoC容器必须遵循的基本原则。 - `ApplicationContext` 是在 `BeanFactory` 的基础上,添加了更多功能的接口,如资源加载(`ResourceLoader`)、国际化消息处理(`MessageSource`)等。 ...

    Spring IoC讲解PPT

    容器根据这些配置信息创建并管理bean,自动完成对象的实例化和依赖装配。 **依赖注入** 依赖注入是 IoC 的具体实现方式,它允许开发者在不修改代码的情况下改变对象之间的依赖关系。Spring 提供了构造函数注入、...

    Spring IOC容器实现分析.pdf 下载

    2. Bean的实例化:当需要使用某个Bean时,IOC容器会根据Bean的定义创建实例。可以是单例模式,也可以是多例模式。 3. 依赖注入:在实例化Bean的过程中,容器会根据定义的依赖关系,将其他Bean注入到当前Bean中,...

Global site tag (gtag.js) - Google Analytics