`
sw1982
  • 浏览: 511453 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring对bean的管理

阅读更多
1.spring中,bean默认是单例模式singleton。默认加载为lazy-load .

2.lazy-load的时候,bean工厂会把定义信息载入进来,不过仅在显式调用的时候才会去实例化。在spring中配置一个quartz定时任务器的时候,用到了下面的配置:一开始没有把“sfactory”显示的指明为立即加载,导致任务跑不起来。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-lazy-init="true">

    
<!-- spring调度工厂 -->
    
<bean id="sfactory"
        class
="org.springframework.scheduling.quartz.SchedulerFactoryBean"
         singleton
="true" lazy-init="false">
        
<property name="triggers">
            
<list>
                
<ref local="cronTrigger" />
            
</list>
        
</property>
    
</bean>

    
<!-- spring触发trigger -->
    
<bean id="cronTrigger"
        class
="org.springframework.scheduling.quartz.CronTriggerBean">
        
<property name="jobDetail">
            
<ref bean="exampleJob" />
        
</property>
        
<property name="cronExpression">
            
<!-- run every morning at 6 am -->
            
<value>0 0 03 * * ?</value>
        
</property>
    
</bean>


    
<!-- 任务实现类 -->
    
<bean name="exampleJob"
        class
="org.springframework.scheduling.quartz.JobDetailBean">
        
<property name="jobClass">
            
<value>com.decentsoft.smmail.mail.task.TrashCatalogClearTask</value>
        
</property>
        
<property name="jobDataAsMap">
            
<map>
                
<entry key="mailOperationService"> 
                    
<ref bean="mailOperationService"></ref> 
                
</entry> 
            
</map>
        
</property>
    
</bean>


</beans>

3.bean的加载过程:
  1)容器寻找Bean的定义信息,并且将其实例化。
 2)使用依赖注入,Spring按照Bean的定义信息配置Bean的所有属性。
 3)如果实现了BeanNameAware接口,工厂会调用Bean的setBeanName()传给Bean的ID
 4)如果实现了BeanFactoryAware接口,工厂调用setBeanFactory()方法传入工厂自身
5)如果有BeanPostProcessor和Bean关联,那么它们的postProcessBeforeInitialzation()会被调用。
6)如果Bean指定了init-method方法,将被调用。
7)如果有BeanPostProcessor和Bean关联,那么它们的postProcessAfterInitialzation()会被调用。

bean的销毁:
1)可以实现DisposableBean接口
2)配置bean时候指定定制的销毁方法。
分享到:
评论

相关推荐

    Spring bean 管理

    Spring框架是Java企业级应用开发的事实标准,它通过依赖注入(DI)和面向切面编程(AOP)来...需要注意的是,无论是哪种方式,理解Spring Bean管理的原理和生命周期,对于开发高质量的Java企业级应用都是必不可少的。

    spring bean XML配置入门

    通过以上内容,你应该对Spring框架中的Bean XML配置有了初步的理解。掌握这些知识点后,你将能够创建基本的Spring应用,并开始探索更高级的特性,如AOP、Spring MVC等。记得实践是检验真理的唯一标准,尝试自己动手...

    Spring Bean创建初始化流程.docx

    以下是对Spring Bean创建初始化流程的详细解释: 1. **初始化ApplicationContext**: 开始时,通过`AnnotationConfigApplicationContext`类创建一个上下文实例,通常传入一个或多个配置类(`annotatedClasses`),...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    Spring定义bean的三种方式和自动注入

    在Spring框架中,管理Bean的方式主要有三种:XML配置、注解配置和Java配置。下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`...

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

    Spring的Bean配置

    在Spring中,Bean是应用中的对象,它们由Spring IoC容器负责创建、管理和装配。Bean配置是定义这些对象如何被创建和如何相互关联的过程。 **IoC(Inversion of Control)和DI(Dependency Injection)**: IoC是...

    spring创建bean简单示例

    在Spring框架中,Bean是核心概念,它是Spring管理的对象,通常代表了应用程序中的业务对象或服务。本示例将深入探讨如何在Spring中创建...在实际项目中,Spring的Bean管理机制可以帮助我们构建出更加健壮和灵活的应用。

    spring中的bean

    在Spring1-1这个文件中,可能包含了关于这些概念的示例代码和详细教程,帮助开发者深入理解和掌握Spring中的Bean管理。学习和熟练运用这些知识,将对提升Java EE应用的开发效率和质量大有裨益。

    spring自动扫描和管理Bean的示例

    在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式地在配置文件中声明每个Bean,而是让Spring容器自动发现并管理应用中的组件。这一特性极大地简化了Spring应用的配置,提高了开发效率。...

    spring管理bean应用实例代码

    在Spring框架中,Bean管理是核心功能之一,它允许开发者通过声明式的方式配置和管理对象。这个压缩包文件“spring管理bean应用实例代码”显然包含了关于如何在Spring中配置和使用Bean的示例代码。接下来,我们将深入...

    线程中获取spring 注解bean

    在Spring框架中,注解是实现依赖注入(Dependency Injection,DI)的重要手段,极大地简化了代码的编写和管理。线程中的操作往往涉及到多线程环境下的资源共享和管理,因此,如何在线程中正确地获取并使用Spring通过...

    spring的bean加载顺序样例项目

    在Spring框架中,Bean的加载顺序是一个重要的概念,它涉及到Spring容器如何管理和初始化Bean的过程。在"spring的bean加载顺序样例项目"中,我们可以通过分析和实验来深入理解这一主题。下面将详细阐述Spring Bean的...

    Spring学习笔记(9)----让Spring自动扫描和管理Bean

    在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式配置每个Bean,而是通过指定包路径来让Spring自动发现和管理Bean。本文将深入探讨这个主题,帮助你更好地理解和应用这一功能。 首先,让...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    在Spring框架中,Bean的生命周期管理是其核心特性之一,然而有时我们可能会遇到Spring Bean重复执行两次的问题,即实例被构造两次。这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是...

    SPRING:bean配置properties

    这里,`propertyConfigurerForAnalysis`是`PropertyPlaceholderConfigurer`的实例bean,其作用是将`dbQuery.properties`中的键值对作为环境变量注入到Spring容器中。`classpath:`前缀表示该文件位于类路径下,即项目...

    spring依赖注入bean

    综上所述,Spring 的依赖注入和 Bean 管理不仅限于 Web 应用,也可以方便地应用于 Java Application 中,通过 XML 或注解配置来实现组件间的解耦,提高代码质量。这个示例项目 `test` 可能包含了实现上述功能的代码...

    详解Spring中Bean的生命周期和作用域及实现方式

    Bean的生命周期和作用域是Spring框架中两个非常重要的概念,它们决定了Bean的生命周期和作用域的管理方式。 一、Bean的生命周期 Bean的生命周期是指Bean从创建到销毁的整个过程。这个过程可以分为九个阶段: 1. ...

    spring运行过程中动态注册bean

    然后,通过调用`getBeanFactory()`方法,我们可以得到`DefaultListableBeanFactory`类型的`BeanFactory`实例,这个实例是Spring容器内部管理Bean的真正场所。 ```java ConfigurableApplicationContext ...

    Spring的Bean管理;IoC, DI

    在Spring框架中,Bean管理是核心特性之一,它涉及到依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)。这两者是面向对象编程中设计模式的重要概念,也是Spring提高应用程序可...

Global site tag (gtag.js) - Google Analytics