`
wdlisoft
  • 浏览: 48984 次
  • 性别: Icon_minigender_1
  • 来自: 常州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring有四种Bean封装机制

    博客分类:
  • java
阅读更多

Spring有四种Bean封装机制:Bean Wrapper机制、Bean Factory机制、ApplicationContext机制、Web Context机制等,它们所对应配置文件的内容也是不同的。下面,我们就以基于Bean Factory机制实现的Spring的三种依赖注入模式为例,介绍一下Spring配置文件的基本内容。
     1、接口注入,示例代码如下:
public interface InterfaceB{
public Object doIt();
}
public class ClassC implements InterfaceB{
String str1;
public ClassC(String str1){
This. str1= str1;
}
public Object doIt(){
return "Hello,"+ strl+"!";
}
}
public class ClassA {
private InterfaceB clzB;
public Object doSomething(InterfaceB b) {
clzB = b;
return clzB.doIt();
}
………
}
该情况下的Spring配置文件:bean.xml的内容大致如下:
<beans>
<description>Interface Injection Sample</description>
<bean id="ClassC" <!--ClassC类的别名 -->
class="net.liyb.spring.qs.ClassC"> <!--ClassC类的别名所对应的类 -->字串3
<property name="str1"> <!-- 该属性名对应ClassC类的属性(名称一致) -->
<value>liyb</value> <!-- 该属性值将被绑定到ClassC类的对应属性(str1)上 -->
</property>
</bean>
<bean id="ClassA" <!-- ClassA类的别名 -->
class="net.liyb.spring.qs.ClassA"> <!--ClassA类的别名所对应的类 -->
<property name="clzB"> <!-- 该属性名对应ClassA类的属性(名称一致) -->
<ref local="ClassC"/> <!-- 该属性值将被绑定到ClassA类的对应属性(clzB)上,此处的属性值即"别名"为ClassC所对应的类的实例 -->
</property>
</bean>
</beans>
     2、设值注入,示例代码如下:
public class DIByConstructor {
private final DataSource dataSource;
private final String message;
………
字串8

public setDataSource(DataSource ds) {
this.dataSource = ds;
}
public setmessage(String msg) {
this.message = msg;
}
public getDataSource() {
return this.dataSource;
}
public getmessage() {
return this.message;
}
………
}
该情况下的Spring配置文件:bean.xml的内容大致如下:
<beans>
<description>Values Injection Sample</description>
<bean id="dataSource" <!-- JndiObjectFactoryBean类的别名 -->
class="org.springframework.jndi.JndiObjectFactoryBean"> <!-- JndiObjectFactoryBean类的别名所对应的类 -->
<property name="jndiName"> <!-- 该属性名对应JndiObjectFactoryBean类的属性(名称一致) -->
<value>java:comp/env/jdbc/sample</value> <!-- 该属性值将被绑定到JndiObjectFactoryBean类的对应属性(jndiName)上 -->
</property>
</bean>
<bean id="DIByConstructor" <!--DIByConstructor类的别名 -->
字串8


class="net.liyb.spring.qs.DIByConstructor"> <!--DIByConstructor类的别名所对应的类 -->
<property name="message"> <!-- 该属性名对应DIByConstructor类的属性(名称一致) -->
<value>HeLLo</value> <!-- 该属性值将被绑定到DIByConstructor类的对应属性(message)上-->
</property>
</bean>
<bean id="DIByConstructor" <!--DIByConstructor类的别名 -->
class="net.liyb.spring.qs.DIByConstructor"> <!--DIByConstructor类的别名所对应的类 -->
<property name="dataSource"> <!-- 该属性名对应DIByConstructor类的属性(名称一致) -->
<ref local="dataSource"/> <!-- 该属性值将被绑定到DIByConstructor类的对应属性(dataSource)上,此处的属性值即"别名"为dataSource所对应的类的实例-->
</property>
</bean>
</beans> 字串4
     3、构造子注入,示例代码见日志:"Spring核心技术学习总结"中的1.2.3节。此时对应的配置文件同"2、设值注入"中的配置文件是一样的,所以具体内容在此省略。

分享到:
评论

相关推荐

    普元eos-springbean开发

    在普元EOS平台中,SpringBean同样扮演着重要角色,用于封装业务逻辑、数据访问等功能。通过合理地设计和配置SpringBean,可以极大地提高开发效率和系统的可维护性。 #### 开发前准备 - **首选项代码模板配置**:在...

    spring bean 属性总结

    `&lt;beans&gt;`元素是Spring配置文件的根元素,用于封装一个或多个`&lt;bean&gt;`元素。这使得开发人员能够在一个文件中定义和配置多个Bean,从而简化了应用程序的配置过程。 #### `&lt;bean&gt;` 元素 `&lt;bean&gt;`元素用于告诉Spring...

    实例化Spring bean的两种工厂方法

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    spring的持久层封装

    标题:“spring的持久层封装” 描述:“spring持久层封装,新手可用,物超所值” 标签:“spring” 根据给定的文件信息,我们将深入探讨Spring框架中持久层封装的概念、重要性和具体实现方式。 ### 一、Spring...

    SPRING对动态代理的封装

    在Java中,通常有两种方式实现动态代理:Java内置的`java.lang.reflect.Proxy`类和CGLIB库。 Spring AOP主要通过两种方式实现:JDK动态代理和CGLIB代理。JDK动态代理基于接口实现,如果目标对象实现了至少一个接口...

    Java中Spring获取bean方法小结

    通常,我们会创建一个全局的静态Singleton类,如`BeanManager`,来封装获取Bean的逻辑。这样可以在整个应用中方便地获取任何需要的Bean。例如: ```java public class BeanManager { private static ...

    spring动态定时器封装

    本文将深入探讨如何在Spring框架中进行动态定时器的封装,结合标签"源码"和"工具",我们将探讨Spring与Quartz库的整合,以及如何通过源码理解其实现机制。 首先,让我们了解一下Spring的定时任务支持。Spring提供了...

    Spring提供的三种定时任务机制及其比较

    在Spring框架中,有三种主要的定时任务机制可供开发者选择,分别是基于Quartz的定时机制、Spring自己的`@Scheduled`注解以及Java的`java.util.Timer`类。在这篇文章中,我们将重点讨论基于Quartz的定时机制,因为它...

    java中获得spring中的BEAN

    对于一些复杂的项目来说,可能会涉及到多个不同的Spring配置文件,这时可以考虑封装一个自定义工具类来统一处理Bean的获取逻辑,例如题目中提到的`ApplicationContextUtil`: ```java import org.springframework....

    Spring Boot 集成 WebSocket(原生注解与Spring封装方式)

    在通过两种方式集成的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。 适合人群:具备一定编程基础,工作1-3年的研发人员...

    Spring源码学习二:BeanDefinition解析1

    总之,BeanDefinition是Spring框架中描述bean的核心数据结构,它封装了bean的全部配置信息,使得Spring容器能够根据这些信息创建、初始化和管理bean实例。理解和掌握BeanDefinition对于深入学习Spring框架至关重要,...

    spring学习----工厂Bean

    在Spring框架中,"工厂Bean"是一个非常关键的概念,它扩展了传统的Bean定义,使得我们可以在Spring IoC容器中创建自定义的实例化逻辑。工厂Bean允许开发者在对象实例化时进行更复杂的控制,比如引入特定的初始化过程...

    spring 5.2.9 07 源码分析-spring的bean工厂准备工作 测试用例

    在Spring框架中,Bean工厂的初始化是一个关键过程,它涉及到许多内部机制的设置。首先,我们来看看`BeanFactory`接口,它是所有Spring Bean容器的顶级接口。`BeanFactory`提供了对Bean的声明式管理,包括获取Bean、...

    自定义spring-boot-starter封装

    在Spring Boot框架中,`spring-boot-starter`是其核心特性之一,它提供了一种便捷的方式来启动和配置项目。自定义`spring-boot-starter`是为了满足特定项目需求,将一些通用的功能模块化,方便在多个项目中复用,...

    Spring HttpInvoker的封装

    HttpInvoker是Spring框架的一部分,它提供了一种基于HTTP协议的远程调用机制,使得不同网络环境中的Java应用之间能够进行安全、高效的通信。本篇文章将深入探讨Spring HttpInvoker的原理以及如何对其进行封装,以便...

    spring2.5 Bean

    标题“spring2.5 Bean”指的是Spring框架2.5版本中的Bean管理机制。Spring是一个开源的应用框架,主要用于简化Java企业级应用的开发。在Spring框架中,Bean是核心概念,代表着应用程序中的对象,这些对象由Spring...

    ActiveMQ与spring整合封装

    而Spring框架则是Java企业级应用开发的事实标准,提供了丰富的功能和优秀的依赖注入机制。本篇将详细讲解如何将ActiveMQ与Spring进行整合封装,实现高效、便捷的消息服务。 首先,ActiveMQ与Spring的整合主要基于...

    Spring入门操作代码,bean

    这个压缩包文件“Spring入门操作代码,bean”显然包含了关于如何使用Spring框架进行基本操作的示例代码,主要涉及的是Spring框架的核心概念——Bean管理。 首先,Spring的核心理念是依赖注入(Dependency Injection...

    Spring中眼花缭乱的BeanDefinition.docx

    Spring中的BeanDefinition是核心概念,它是Spring IOC容器的基础,用于描述Bean的元数据,包括Bean的行为、依赖关系和其他配置信息。BeanDefinition包含了Bean的全限定类名、作用域、生命周期回调方法、依赖的其他...

Global site tag (gtag.js) - Google Analytics