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

Bean 的四种构造方式

阅读更多

1.通过构造函数创建

    <bean id='injectBean' class="di.InjectBean"></bean>
    <bean id="diConstruct" class="di.DependencyInjectConstruct">
    	<constructor-arg type="java.lang.String" value="Inject construct test"/>
        <constructor-arg ref="injectBean"/>
    </bean>

 

package di;

public class DependencyInjectConstruct {
	private final String value;
	private final InjectBean injectBean;
	public DependencyInjectConstruct(String value, InjectBean injectBean) {
		this.value = value;
		this.injectBean = injectBean;
	}
	
	public void print() {
		System.out.println(value);
		System.out.println(injectBean);
	}
}

 2.通过Setter注入

	<bean id="diSetter" class="di.DependencyInjectSetter">
		<property name="value" value="Inject setter test"/>
		<property name="injectBean" ref="injectBean"/>
	</bean>

 

package di;

public class DependencyInjectSetter {
	private String value;
	private InjectBean injectBean;
	public void setValue(String value) {
		this.value = value;
	}
	public void setInjectBean(InjectBean injectBean) {
		this.injectBean = injectBean;
	}
	@Override
	public String toString() {
		return "DependencyInjectSetter [value=" + value + ", injectBean=" + injectBean + "]";
	}
}

 3.通过工厂方法

<bean id="diStaticMethod" class="di.DependencyInjectStaticMethod" factory-method="create"></bean>

 

package di;

public class DependencyInjectStaticMethod {
	private final String value;
	private final InjectBean injectBean;
	
	private DependencyInjectStaticMethod(String value, InjectBean injectBean) {
		this.value = value;
		this.injectBean = injectBean;
	}
	
	public static DependencyInjectStaticMethod create() {
		return new DependencyInjectStaticMethod("Dependency inject for status method", new InjectBean());
	}

	@Override
	public String toString() {
		return "DependencyInjectStaticMethod [value=" + value + ", injectBean=" + injectBean + "]";
	}
	
	
}

 4.如果需要的非static的工厂方法可以用factory-bean类引用一个对象来创建bean

<bean id="factoryBean" class="di.DependencyInjectMethod"></bean>
	<bean id="diMethod" class="di.DependencyInjectStaticMethod" factory-bean="factoryBean" factory-method="create"></bean>

 

package di;

public class DependencyInjectMethod {
	private String value;
	private InjectBean injectBean;
	
	public DependencyInjectMethod() {
	}
	
	private DependencyInjectMethod(String value, InjectBean injectBean) {
		this.value = value;
		this.injectBean = injectBean;
	}
	
	public DependencyInjectMethod create() {
		return new DependencyInjectMethod("Dependency inject for method", new InjectBean());
	}

	@Override
	public String toString() {
		return "DependencyInjectMethod [value=" + value + ", injectBean=" + injectBean + "]";
	}
	
	
}

 

分享到:
评论

相关推荐

    根据配置文件自动构造Bean类

    自动构造Java的Bean类,暂时仅支持定义包名、类名、带参构造方法、成员变量及其对应的get和set方法,同eclipse里面该项功能,不过本项目是通过配置文件实现,可以根据自己的需要进行拓展,平时用起来省时省力。

    详解Spring中bean的几种注入方式

    主要介绍了详解Spring中bean的几种注入方式,主要介绍了4种注入,主要有属性注入、构造函数注入、工厂方法注入,非常具有实用价值,需要的朋友可以参考下

    反射实现的bean转换类

    反射实现的bean转换类,配合类型转换器,告别所有bean转vo,bean转dto,dto转bean,vo转bean,什么构造器转换之类的,简直浪费程序员生命

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

    NULL 博文链接:https://bijian1013.iteye.com/blog/2384411

    通过bean的构造器赋值.zip

    在Spring中,编写配置文件时,除了使用set方法对属性进行注入,另一种方式就是利用构造器对属性进行赋值。

    Spring中实例化bean的四种方式详解

    主要给大家介绍了关于Spring中实例化bean的四种方式,分别是setter 方法、构造函数、静态工厂以及实例工厂等四种方法,分别给出了示例代码供大家参考学习,需要的朋友们下面随着小编来一起学习学习吧。

    Spring项目bean实例化代码

    Spring项目bean实例化代码,包括bean是如何创建的;实例化bean的三种方式,构造方法,静态工厂和实例工厂。

    尚硅谷]_佟刚_Spring IOC 容器中 Bean 的生命周期.pdf

    1、&lt;bean&gt;标签主要用来进行Bean定义; 2、alias用于定义Bean别名的;...这两种方式都是通过调用Bean Definition Reader 读取Bean定义,内部实现没有任何区别。标签可以放在下的任何位置,没有顺序关系。

    基于java的企业级应用开发:Bean的实例化.ppt

    实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和实例工厂方式实例化(其中最常用的是构造器实例化)。 2.2.1 构造器实例化 创建Web项目,导入相关Jar包; 创建名为Bean1的Java类; 创建Spring配置...

    基于java的企业级应用开发:Bean的生命周期.ppt

    (1)根据配置情况调用Bean构造方法或工厂方法实例化Bean。 (2)利用依赖注入来完成Bean中所有属性值的配置注入。 (3)如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值...

    基于SpringBoot构造器注入循环依赖及解决方式

    Bean A → Bean B → Bean C → Bean D → Bean E → Bean A 2. 循环依赖会产生什么结果? 当Spring正在加载所有Bean时,Spring尝试以能正常创建Bean的顺序去创建Bean。 例如,有如下依赖: Bean A → Bean B → ...

    Spring的Bean配置

    Spring IOC和DI概述,Bean的配置形式,IOC容器BeanFactory和ApplicationContext概述,依赖注入的方式,属性注入,构造器注入等案例

    java bean和map之间的互转

    java bean和map之间的互转,后台方便为前台构造数据,必须将相应的java bean 转换为map,或将map集合转换为java bean.

    08-IoC配置-bean的生命周期控制

    通过构造器或工厂方法创建Bean实例 为Bean的属性设置值和对其它Bean的引用 调用Bean的初始化方法 Bean可以使用了 当容器关闭时,调用Bean的销毁方法 在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 ...

    Spring系列之依赖注入的三种方式.docx

    如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的 依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程(将依赖关系注入到对象中) ,spring的依赖注入有3种方式: ...

    spring自动装配例子

    ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 ...(4)constructor:与 byType 方式类似,不同之处是构造注入 &lt;bean class="xxx" &gt;&lt;/bean&gt; 本例,演示 byName自动装配

    4 后台使用Spring中的Bean质量评估193210111党涛1

    2. 使用构造器创建Bean实例使用构造器来创建Bean实例是最常见的情况,如果不采用构造注入,Spring底层会调用Bean类中的无参构造器来创建实例,因此要

    spring001 基于xml的DI bean实例调用的是无参构造,如果需要bean对象的属性进行初始化

    spring核心:iOC Aop IOC:inverson of control(控制反转): 就是对对象控制权的转移,从程序代码本身反转到 外部容器中,通过外部容器实现对象的创建,属性 ...创建spring的配置文件,编写bean 4.在测试类中测试

    使用Springboot注入带参数的构造函数实例

    主要介绍了使用Springboot注入带参数的构造函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Spring之动态注册bean的实现方法

    主要介绍了Spring之动态注册bean的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics