`
liuzhaomin
  • 浏览: 204247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用编码方式创建和绑定Bean

阅读更多

 

package com.astute.sparrow.spring.ioc.test;

public class B {
	
	public void output() {
		System.out.println("B.output");
	}
	
}

 

 

package com.astute.sparrow.spring.ioc.test;

public class A {
	private B b;

	public A() {
	}

	public A(B b) {
		super();
		this.b = b;
	}

	public B getB() {
		return b;
	}

	public void setB(B b) {
		this.b = b;
	}
	
}

 

//创建Bean工厂
		DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
		
		//生成BeanDefinition
		AbstractBeanDefinition newA = new RootBeanDefinition(A.class);
		newA.setScope(BeanDefinition.SCOPE_SINGLETON);
		AbstractBeanDefinition newB = new RootBeanDefinition(B.class);
		newB.setScope(BeanDefinition.SCOPE_PROTOTYPE);
		
		//注册
		factory.registerBeanDefinition("a", newA);
		factory.registerBeanDefinition("b", newB);
		
		//功过构造函数注入
		ConstructorArgumentValues argValues = new ConstructorArgumentValues();
		argValues.addIndexedArgumentValue(0, newB);
		newA.setConstructorArgumentValues(argValues);
		
		//通过Setter方式注入
		MutablePropertyValues propertyValues = new MutablePropertyValues();
		propertyValues.addPropertyValue(new PropertyValue("b", newB));
		newA.setPropertyValues(propertyValues);
		
		A a = (A) factory.getBean("a");
		a.getB().output();

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    自动生成mybatis的mapper文件和bean

    MyBatis是一个流行的Java持久层框架,它简化了数据库操作,通过XML或注解的方式将SQL与Java代码绑定,提供了一种动态SQL的功能。在开发过程中,手动编写Mapper接口、Mapper XML文件以及对应的实体类(bean)是一项...

    如何在Spring中使用编码方式动态配置Bean详解

    在 Spring 中使用编码方式动态配置 Bean 是一种非常灵活和强大的方式,可以满足不同的业务需求。但是,需要注意的是,在使用这种方式时,需要充分了解 Spring 框架的原理和机制,以避免出现一些不必要的错误。

    xmlbean&xmlstream

    XMLBean和XMLStream是两种处理XML数据与Java对象之间转换的工具,它们在Java开发中广泛用于解析XML文档和创建Java对象。这两种方法各有特点,适用于不同的场景。 XMLBean是Apache软件基金会的Cocoon项目的一部分,...

    webbean.pdf

    - **绑定注解**:通过使用绑定注解(如`@MyQualifier`),我们可以指定特定的Bean实例应该被注入到何处。 - **部署类型**:WebBeans支持多种部署类型,包括容器托管的Bean和程序控制的Bean等。 - **解决未满足的依赖...

    基础项目的架构代码,tools生成bean,数据库连接service,前台框架js等

    在企业级开发中,工具如Apache BeanUtils或Spring的BeanFactory可以自动创建和管理这些对象,减少手动编码的工作量,提高开发效率。 "数据库连接service"指的是应用程序中负责与数据库进行通信的部分,通常是一个...

    soring02.zip

    通过依赖注入,Spring容器可以将其他Bean作为依赖注入到目标Bean中,使得对象之间的关系在运行时动态绑定,而不是在编译时硬编码。依赖注入可以通过构造器注入、setter注入或属性注解方式实现。 4. **作用域(Scope)...

    SPRING面试宝典

    3. **非侵入性**:Spring并不强制开发者使用特定的设计模式或编码方式,而是尽可能地适应现有的代码结构。 4. **强大的社区支持**:Spring拥有庞大的开发者社区,这意味着有丰富的资源和支持可用。 5. **广泛的集成...

    Spring框架文档 - 核心技术部分 中英双语版 第一部分.pdf

    - **Bean实例化**:有多种方式实例化bean,包括使用构造函数、静态工厂方法和实例工厂方法。 3. **面向切面编程(AOP)**:Spring的AOP允许开发者定义“方面”,这些方面是跨越多个对象的横切关注点,如日志、...

    使用Spring进行装配

    这使得开发者无需在代码中硬编码依赖,而是由Spring容器负责创建、管理和协调这些对象。Spring支持两种主要的装配方式:XML配置和基于注解的配置。 1. XML配置: 在传统的Spring应用中,XML配置文件(如`...

    JAXB 利用xsd文件生成java类

    JAXB (Java Architecture for XML Binding) 是Java平台上的一个标准,用于将XML文档与Java对象之间进行绑定,实现XML数据的解析和序列化。在Java开发中,JAXB提供了一种方便的方式,允许开发者通过XML Schema (XSD) ...

    Struts标签大全.doc

    Bean在这里通常指的是JavaBean,这是一种遵循特定命名和编码约定的Java类,用于封装数据和业务逻辑。Bean Tags包括以下几种: - **bean:cookie**:此标签用于从HTTP请求中获取名称为`name`的Cookie的值,根据`...

    Pro CDI 2 in Java EE 8

    9. **替代与绑定**:CDI允许定义bean的替代和绑定规则,这样可以在运行时选择使用哪个bean实例,增强了灵活性和可配置性。 10. **测试与调试**:CDI提供了一套测试API,使得测试组件和服务变得更加容易。开发者可以...

    SSM集成应用

    Spring入门案例通常涉及一个简单的应用,演示如何通过XML或注解的方式配置和使用Spring容器。 **1.4 基于注解的Spring的使用** - **1.3.1 注解的概念**:注解是一种元数据,用于向编译器或运行时环境提供额外的...

    JSP-and-JavaBeans

    这种方式利用了请求参数的名称与Bean属性之间的映射关系,实现了自动绑定,大大简化了数据处理过程。 #### 在多个Servlet和JSP页面间共享JavaBeans 为了在不同的Servlet和JSP页面之间共享JavaBeans实例,可以将...

    jsf中文使用教程jsf中文使用教程

    1. **组件驱动**:JSF拥有大量的内置组件,如输入字段、按钮、表格等,开发者可以通过声明式方式使用它们,减少了编码量。 2. **事件驱动**:用户交互触发事件,JSF会处理这些事件并调用对应的处理方法。 3. **可...

    Spring中XML配置文件的十二个最佳方法.doc

    这对于避免硬编码bean名称和增强代码的灵活性非常有用。例如: ```xml <bean id="userService" class="com.lizjason.service.UserService"/> ``` 这样,代码可以使用`userService`或`userServiceAlt`引用相同...

    一个较初级的EJB商业应用的例子

    在例子中,你可能会看到如何使用`InitialContext`查找和绑定EJB。 **EJB的部署**: EJB部署在应用服务器如Tomcat、JBoss或WebLogic等上。部署描述符(如ejb-jar.xml)定义了Bean的元数据,包括Bean的类名、接口、...

Global site tag (gtag.js) - Google Analytics