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 + "]"; } }
相关推荐
自动构造Java的Bean类,暂时仅支持定义包名、类名、带参构造方法、成员变量及其对应的get和set方法,同eclipse里面该项功能,不过本项目是通过配置文件实现,可以根据自己的需要进行拓展,平时用起来省时省力。
主要介绍了详解Spring中bean的几种注入方式,主要介绍了4种注入,主要有属性注入、构造函数注入、工厂方法注入,非常具有实用价值,需要的朋友可以参考下
反射实现的bean转换类,配合类型转换器,告别所有bean转vo,bean转dto,dto转bean,vo转bean,什么构造器转换之类的,简直浪费程序员生命
NULL 博文链接:https://bijian1013.iteye.com/blog/2384411
在Spring中,编写配置文件时,除了使用set方法对属性进行注入,另一种方式就是利用构造器对属性进行赋值。
主要给大家介绍了关于Spring中实例化bean的四种方式,分别是setter 方法、构造函数、静态工厂以及实例工厂等四种方法,分别给出了示例代码供大家参考学习,需要的朋友们下面随着小编来一起学习学习吧。
Spring项目bean实例化代码,包括bean是如何创建的;实例化bean的三种方式,构造方法,静态工厂和实例工厂。
1、<bean>标签主要用来进行Bean定义; 2、alias用于定义Bean别名的;...这两种方式都是通过调用Bean Definition Reader 读取Bean定义,内部实现没有任何区别。标签可以放在下的任何位置,没有顺序关系。
实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和实例工厂方式实例化(其中最常用的是构造器实例化)。 2.2.1 构造器实例化 创建Web项目,导入相关Jar包; 创建名为Bean1的Java类; 创建Spring配置...
(1)根据配置情况调用Bean构造方法或工厂方法实例化Bean。 (2)利用依赖注入来完成Bean中所有属性值的配置注入。 (3)如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值...
Bean A → Bean B → Bean C → Bean D → Bean E → Bean A 2. 循环依赖会产生什么结果? 当Spring正在加载所有Bean时,Spring尝试以能正常创建Bean的顺序去创建Bean。 例如,有如下依赖: Bean A → Bean B → ...
Spring IOC和DI概述,Bean的配置形式,IOC容器BeanFactory和ApplicationContext概述,依赖注入的方式,属性注入,构造器注入等案例
java bean和map之间的互转,后台方便为前台构造数据,必须将相应的java bean 转换为map,或将map集合转换为java bean.
通过构造器或工厂方法创建Bean实例 为Bean的属性设置值和对其它Bean的引用 调用Bean的初始化方法 Bean可以使用了 当容器关闭时,调用Bean的销毁方法 在 Bean 的声明里设置 init-method 和 destroy-method 属性, 为 ...
如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的 依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程(将依赖关系注入到对象中) ,spring的依赖注入有3种方式: ...
ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 ...(4)constructor:与 byType 方式类似,不同之处是构造注入 <bean class="xxx" ></bean> 本例,演示 byName自动装配
2. 使用构造器创建Bean实例使用构造器来创建Bean实例是最常见的情况,如果不采用构造注入,Spring底层会调用Bean类中的无参构造器来创建实例,因此要
spring核心:iOC Aop IOC:inverson of control(控制反转): 就是对对象控制权的转移,从程序代码本身反转到 外部容器中,通过外部容器实现对象的创建,属性 ...创建spring的配置文件,编写bean 4.在测试类中测试
主要介绍了使用Springboot注入带参数的构造函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Spring之动态注册bean的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧