Spring通过构造方法注入的四种方式

通过构造方法注入,就相当于给构造方法的参数传值

set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选

的,构造注入的优势是通过构造强制依赖关系,不可能实例化不

完全的或无法使用的bean

MemberBean定义四个变量,

privateStringname;

privateDoublesalary;

privateDeptdept;

privateStringsex;

加上构造方法和toString方法:方便测试

Dept

privateStringdname;

privateStringdeptno;

使用set方法注入

第一种方法:根据索引赋值,索引都是以0开头的:

<bean

id="memberBean"class="www.csdn.spring01.constructor.MemberBean">

<constructor-argindex="0"value="刘晓刚"/>

<constructor-argindex="1"value="3500"/>

<constructor-argindex="2"ref="dept"/>

<constructor-argindex="3"value="男"/>

第二种方法是根据所属类型传值

这种方法基本上不怎么适用,因为一个类里可以有好几个相同基本类型的变量,很容易就混淆值传给哪一个参数了所以做好不要使用这种方法:

<constructor-argtype="java.lang.String"value="刘晓刚"

<constructor-argtype="java.lang.Double"value="3500"/>

<constructor-argtype="www.csdn.spring01.constructor.Dept"ref="dept"/>

<constructor-argtype="java.lang.String"value="男"/>

第三种方法:根据参数的名字传值:(推荐用法)

在这几种方法里我感觉这种方法是最实用的,他是根据名字来传值的,所以基本上只要名字对了,这个值就可以获取到

<constructor-argname="name"value="刘晓刚"/>

<constructor-argname="salary"value="3500"/>

<constructor-argname="dept"ref="dept"/>

<constructor-argname="sex"value="男"/>

第四种方法:直接传值

直接给参数赋值,这种方法也是根据顺序排的,所以一旦调换位置的话,就会出现bug,这种方法已经很原始了

<constructor-argvalue="刘晓刚"/>

<constructor-argvalue="3500"/>

<constructor-argref="dept"/>

<constructor-argvalue="男"/>

</bean>

<beanid="dept"class="www.csdn.spring01.constructor.Dept">

<propertyname="dname"value="北航"/>

<propertyname="deptno"value="00001"/>

</bean>S

构造方法注入是依赖注入的一种形式,在Spring框架中,它通过使用构造函数来初始化对象并将依赖递给对象。这种方式可以确保依赖项在对象创建时就被初始化,同时提供了更好的不可变性和线程安全性。要通过构造方法注入实现依赖注入并配置BeanFactory,可以按照以下步骤进行: 考资源链接:[Spring SSM框架题库入门详解](https://wenku.youkuaiyun.com/doc/pig3k7piis?spm=1055.2569.3001.10343) 1. **定义依赖**:首先需要定义将要注入的依赖类,即实现特定接口或继承特定类的类。 2. **配置BeanFactory**:通过XML配置文件、注解或Java配置类来定义Bean和注入依赖。在XML配置中,可以使用`<bean>`标签,并在其中使用`<constructor-arg>`标签指定构造函数数。使用注解,则可以在类上使用`@Component`,`@Service`,`@Repository`等注解,并使用`@Autowired`对构造函数进行注解。对于Java配置类,则使用`@Configuration`注解,并在方法上使用`@Bean`注解来定义Bean。 3. **实现构造方法注入**:在你的服务或组件类中定义一个构造函数,并将需要注入的依赖作为数。Spring将自动调用此构造函数并入相应的依赖实例。 以下是一个使用XML配置文件实现构造方法注入的示例: ```xml <!-- 定义依赖的Bean --> <bean id= 考资源链接:[Spring SSM框架题库入门详解](https://wenku.youkuaiyun.com/doc/pig3k7piis?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值