`
zyongking
  • 浏览: 58628 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论

spring 的配置详解及容器

阅读更多

什么是bean?

bean就是由Spring容器初始化、装配及被管理的对象,除此之外,bean就没有特别之处了(与应用中的其他对象没有什么区别)。而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。

 

1、 bean的配置:

生命周期

1> bean的定义(见下一页表格附件)

2> bean的初始化(两种方式):

·在配置文档中通过指定init-method属性来完成(推荐)

·实现org.springframework.beans.factory.InitializingBean接口

3> bean的使用(三种)

·详细见第2节。

4> bean的销毁(两种方式):

·在配置文档中通过指定destroy-method属笥来完成(推荐)

·实现org.springframework.beans.factory.DisposableBean接口

ref的属性指定依赖的三种模式:

1> local性性指定:被参考引用的bean在同一个xml文件中,且是用id命名的。

2> bean属性指定:同一个或者不同的xml中均可(推荐)

3> parent属性指定:引用父bean

 

Bean自动装配的5种模式  autowire=***

1> byName模式  按名字自动装配

2> byType模式  按类型自动装配

3> constructor模式 按构造函数的类型自动装配

4> autodetect模式 自动按先constructorbyType模式匹配。

5> no模式 (默认) 不自动装配

 

Bean依赖检查的4种模式 dependency-check = ***

1> simple  对基本类型、字符串和集合进行依赖检查

2> object  对依赖的对象进行检查

3> all  对全部属属性进行检查

4> none  (默认)不检查

 

集合的注入方式

1> List

2> Set

3> Map

4> Properties

 

Bean如下:

示例代码:

public class SomeBean { 
    private String[] someStrArray; 
    private SomeObj[] someObjArray; 
    private List someList; 
    private Map someMap; 

    private Set test; 

private Properties test2; 


    ....

}

 示例配置:

<beans> 
    <bean id="someBean" class="onlyfun.caterpillar.SomeBean"> 
        <property name="someArray"> 
            <list> 
                <value>Hello!Justin!</value> 
                <value>Hello!Momor!</value> 
                <value>Hello!Bush!</value> 
            </list> 
        </property> 
        <property name="someObjArray"> 
            <list> 
                <ref bean="someObj1"/> 
                <ref bean="someObj2"/> 
            </list> 
        </property> 
        <property name="someList"> 
            <list> 
                 <value>Hello!Justin!</value> 
                 <ref bean="someObj1"/> 
                 <ref bean="someObj2"/> 
            </list> 
        </property> 
        <property name="someMap"> 
            <map> 
                 <entry key="somekey1"> 
                     <ref bean="someObj1"/> 
                 </entry> 
                 <entry key="somekey2"> 
                     <value>Hello!Justin!</value> 
                 </entry> 
            </map> 
        </property>

<property name="test"> 

<set> 
    <value>a set element</value> 
    <ref bean="otherBean"/> 
    <ref bean="anotherBean"/> 
</set>

</property>

<property name="test2"> 

            <props> 
                <prop key="someProkey1"> 
                    someProValue1 
                </prop> 
                <prop key="someProkey2"> 
                    someProValue2 
                </prop> 
            </props> 
        </property>
    </bean> 
</beans>

 

可以配置的项目有:
1. Bean属性值及依赖关系(对其他Bean的引用)
2. Bean创建模式(是否Singleton模式,即是否只针对指定类维持全局唯一的实例)
3. Bean初始化和销毁方法
4. Bean的依赖关系
下面是一个较为完整的Bean配置示例:

<beans>
<description>Spring Bean Configuration Sample</description>
<bean
id="TheAction" class="net.xiaxin.spring.qs.UpperAction" singleton="true" init-method="init" destroy-method="cleanup" depends-on="ActionManager"
>
<property name="message">
<value>HeLLo</value> 
</property>
<property name="desc">
<null/>
</property>
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/sample</value>
</property>
</bean>
</beans>

 ⑴

 

 

 

2管理bean
beans包提供了以编程的方式管理和操控bean的基本功能,而context包下的ApplicationContext以一种更加面向框架的方式增强了BeanFactory的功能。

1> BeanWrapper  

1> BeanFactory 

2> ApplicationContext(推荐使用的方式)
由于ApplicationContext包括了BeanFactory所有的功能,所以通常建议优先采用ApplicationContext

ApplicationContext actx2= new FileSystemXmlApplicationContext("WebRoot\\WEB-INF\\applicationContext.xml");

 

或者将applicationContext.xml放在src

ApplicationContext actx3= new ClassPathXmlApplicationContext("applicationContext.xml");

 id
Java BeanBeanFactory中的唯一标识,代码中通过BeanFactory获取
JavaBean实例时需以此作为索引名称。
 class
Java Bean 类名
 singleton
指定此Java Bean是否采用单例(Singleton)模式,如果设为“true”,则在
BeanFactory作用范围内,只维护此Java Bean的一个实例,代码通过BeanFactory
获得此Java Bean实例的引用。反之,如果设为“false”,则通过BeanFactory获取
Java Bean实例时,BeanFactory每次都将创建一个新的实例返回。
 init-method
初始化方法,此方法将在BeanFactory创建JavaBean实例之后,在向应用层返回引
用之前执行。一般用于一些资源的初始化工作。
 destroy-method
销毁方法。此方法将在BeanFactory销毁的时候执行,一般用于资源释放。
 depends-on
Bean依赖关系。一般情况下无需设定。Spring会根据情况组织各个依赖关系的构建工作(这里
示例中的depends-on属性非必须)。
只有某些特殊情况下,如JavaBean中的某些静态变量需要进行初始化(这是一种Bad
Smell,应该在设计上应该避免)。通过depends-on指定其依赖关系可保证在此Bean
载之前,首先对depends-on所指定的资源进行加载。
 <value>
通过<value/>节点可指定属性值。BeanFactory将自动根据Java Bean对应的属性
类型加以匹配。
下面的”desc”属性提供了一个null值的设定示例。注意<value></value>代表一
个空字符串,如果需要将属性值设定为null,必须使用<null/>节点。
 <ref>
指定了属性对BeanFactory中其他Bean的引用关系。示例中,TheActiondataSource
性引用了iddataSourceBeanBeanFactory将在运行期创建dataSource bean实例,并将其
引用传入TheAction BeandataSource属性。
下面的代码演示了如何通过BeanFactory获取Bean实例:
InputStream is = new FileInputStream("bean.xml");
XmlBeanFactory factory = new XmlBeanFactory(is);
Action action = (Action) factory.getBean("TheAction");
此时我们获得的Action实例,由BeanFactory进行加载,并根据配置文件进行了初始化和属性设定。
联合上面关于BeanWrapper的内容,我们可以看到,BeanWrapper实现了针对单个Bean的属性设
定操作。而BeanFactory则是针对多个Bean的管理容器,根据给定的配置文件,BeanFactory从中读取
类名、属性名/值,然后通过Reflection机制进行Bean加载和属性设定。

 

 

1
分享到:
评论

相关推荐

    spring配置文件详解

    Spring 配置文件详解 Spring 配置文件是 Spring 框架中最重要的配置文件之一,它负责定义和配置应用程序的Bean对象,以及它们之间的依赖关系。Spring 配置文件通常以XML文件的形式存在,文件名通常为...

    spring 配置文件详解

    Spring 配置文件详解 Spring 配置文件是指-guide Spring 工厂进行 Bean 生产、依赖关系注入(装配)及 Bean 实例分发的“图纸”。Java EE 程序员必须学会并灵活应用这份“图纸”准确地表达自己的“生产意图”。...

    spring所有配置文件详解

    ### Spring配置文件详解 #### 一、引言 在Java Web开发领域,Spring框架因其强大的功能和灵活性而受到广泛欢迎。对于初学者来说,理解Spring的配置方式是至关重要的第一步。本文将详细介绍Spring中常见的配置文件...

    spring 详解 配置详解

    5. 配置详解:Spring 配置可以通过 XML 文件或注解完成。XML 配置文件通常包含 Bean 的定义、依赖关系和属性值。注解配置则允许在类或方法上直接声明元数据,简化配置,提高代码可读性。 6. AOP 配置:Spring 的 ...

    Spring配置详解.docx

    在Spring框架中,`applicationContext.xml`是核心配置文件,它定义了应用的组件及其依赖关系。这个文件是Spring IoC(Inversion of Control,控制反转)容器的基础,负责管理和装配应用中的对象。下面我们将详细解析...

    spring +hibernate 详解与配置(附图)

    ### Spring + Hibernate 详解与配置 #### Spring框架概述 Spring框架是一个开源的、轻量级的应用框架,旨在简化企业级应用开发。它提供了一个全面的编程模型,支持从Web到数据访问等各种应用需求。Spring的核心...

    详解spring boot容器加载完后执行特定操作

    "Spring Boot 容器加载完成后执行特定操作" Spring Boot 框架提供了多种方式来执行容器加载完成后的特定操作,例如使用 ApplicationListener 接口或使用 @PostConstruct 注解。在本文中,我们将介绍使用 ...

    Spring定时器配置详解(附demo)

    三、Spring配置Quartz 1. 添加依赖 在你的项目中,你需要引入Spring对Quartz的支持。在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context-support 你的...

    spring架构详解 spring架构详解

    此外,Spring Boot简化了Spring应用的启动和配置,Spring Cloud则提供了微服务治理的解决方案。 总结,Spring框架通过其独特的设计理念和设计模式,实现了对象的解耦和管理,提高了代码的可测试性和可维护性。理解...

    spring 配置文件详解.txt

    ### Spring配置文件详解 #### 一、Spring框架与配置文件的重要性 Spring框架是Java平台上的一个开源框架,它提供了一种轻量级的方式来管理和组织Java应用程序中的组件。Spring框架的核心特性之一是依赖注入...

    spring内核详解

    《Spring内核详解》 Spring框架作为Java领域最流行的轻量级应用框架,其核心机制是许多开发者关注的焦点。本文将深入剖析Spring内核,揭示其设计思想和实现原理,帮助开发者更好地理解和运用这一强大的工具。 一、...

    ActiveMQ+spring配置方案详解

    以上就是ActiveMQ与Spring的集成配置方案,涵盖了连接工厂、JMS模板、监听容器以及消息监听器等关键元素。通过这样的配置,我们可以方便地在Spring应用中发送和接收消息,从而实现服务间的异步通信。在实际应用中,...

    spring技术详解及使用指导

    在这个“spring技术详解及使用指导”中,我们将深入探讨Spring框架的主要组成部分和应用场景。 首先,Spring框架的核心是IoC(Inversion of Control,控制反转)。IoC通过将对象的创建和管理权交给容器,使得开发者...

    Spring 容器后处理器

    ### Spring 容器后处理器详解 #### 一、Spring 容器后处理器概念及应用场景 在Spring框架中,容器后处理器(BeanFactoryPostProcessor)是一种非常实用的设计模式,主要用于在容器初始化完成后对容器进行额外的...

    spring框架技术详解及使用指导(电子书PDF)

    在阅读“spring框架技术详解及使用指导”时,你可能会学到如何配置Spring IoC容器,如何使用注解进行依赖注入,如何编写AOP切面,以及如何利用Spring MVC构建RESTful Web服务。此外,书中可能还会涵盖Spring Boot的...

    spring框架,技术详解及使用指导

    这篇“spring框架,技术详解及使用指导”可能涵盖了Spring的多个方面,包括但不限于以下几个关键知识点: 1. **依赖注入(Dependency Injection,DI)**:这是Spring的核心特性,通过DI,对象之间的耦合度降低,...

    详解Spring的配置文件

    ### Spring配置文件详解 #### 一、Spring框架简介与配置文件的重要性 Spring 是一个开源的 Java 平台框架,提供了一种轻量级的应用程序开发方式。它通过依赖注入(Dependency Injection, DI)和面向切面编程...

Global site tag (gtag.js) - Google Analytics