Spring基础(二)——Spring中装入bean的几种方法

上一篇文章描述了spring装配bean的自动化装配技术
下面主要描述一下spring装配bean的显示配置,其中显示配置有两种方案,Java配置和XML。
为啥需要有显示配置的?其实主要是考虑到第三方插件,我们无法通过标注@Component和@Autowired
注解进行装配。
1、Java配置,声明Java配置类的注解是@Configuration,
在Java配置类中声明一个简单的bean,

@Bean
public CompactDisc sgtPeppers(){
	return new SgtPeppers();
}

@Bean 注解告诉spring这个方法返回一个对象,并且该对象要注册在spring应用上下文中的bean,
在spring 中bean的ID为方法名字,我们也可以通过@Bean(name=“你自己要定义的名字”)指定自己要设置的唯一ID名字
(1) 通过java配置实现注入,
①引用创建bean

@Bean
public CDplayer cdPlayer(){
return  new CDPlayer(sgtPeppers());
}

非引用创建bean(最为常用的方法,而这种方法和@Autowired注解方法很类似)

@Bean
public CDplayer cdPlayer(CompactDisc  compactDisc ){
return  new CDPlayer(compactDisc);
}

2、通过Xml装配bean(最原始的)

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
</beans>

最简单的一个xml配置,可以使用spring tool suit 工具创建一个spring的配置文件,自己选择可配置的命名空间。现在声明一个bean

<bean id="compactDisc " class="com.ssm.interImpl.SgtPeppers"/>    

创建这个bean的类通过class属性来指定的,并且要使用全限定的类名。
(1)那么如何使用构造器方式在xml中实现DI注入呢?
①、使用 <construcor-arg>,

<bean id="cdPlayer" class="com.ssm.interImpl.CDPlayer">    
	<constructor-arg ref="compactDisc ">
</bean>

②、使用c-命名空间
在使用命名空间,首先要引入声明c-命名空间,然后就可以来声明构造器的参数

<bean id="cdPlayer" class="com.ssm.interImpl.CDPlayer"
   c:cd-ref="compactDisc "/>    

使用c-命名空间比使用代码更见简洁,这里要注意c:cd-ref="compactDisc " 中的cd,cd代表的是构造器参数名。其中还可以按照参数的位置索引,c: _0-ref="compactDisc ",如果只有一个构造器则使用 c: _-ref=“sgtPeppers”,

(2)如何将字面量字注入到构造器中,首先定义一个类

public class BlankDisc implements CompactDisc{
	private String title;
	private String artist;
	public BlankDisc(String title,String artist){
	this.title=title;
	this.artist=artist;
	}
}
通过  <construcor-arg>进行注入
<bean id="compactDisc " class="com.ssm.interImpl.BlankDisc ">
  <constructor-arg value="Lonly Hearts Club ">
  <constructor-arg  value="The Beatles ">
</bean>    

使用命名空间对参数进行注入

 <bean id="compactDisc " class="com.ssm.interImpl.BlankDisc ">
	c:_title="Lonly Hearts Club"
	c:_artist="The Beatles"
</bean>    

注:仅个人理解,望指点与交流,共同学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值