Spring之路-聊聊Bean装配

Spring配置主要有三种装配机制:
1.在XML中进行显式配置;
2.在JAVA中进行显式配置;
3.隐式的bean发现机制和自动装配。

一、在XML中进行显式配置

1.创建XML配置规范

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd">

这样,就创建了一个合法简单的Spring XML配置
2.声明一个简单的bean

  <bean id="xiaoming" class="program.CoderA">
      <constructor-arg value="xiaoming" />
  </bean>

id代表bean的标识,class代表生成bean的类
3.借助构造器注入初始bean
这里有两种方式进行配置:
* constructor-arg>元素
* 使用spring3.0所引入的c-命名空间

  <bean id="xiaohong" class="program.ProductManageA">
    <constructor-arg ref="xiaoming" />
  </bean>

spring遇到这个bean时,会创建一个ProductManageA的实例,并通过constructor-arg告知spring引用id为xiaomingbean。
通过c命名空间,首先应在xml声明其模式

xmlns:c="http://www.springframework.org/schema/c"

然后,在bean中直接声明:

  <bean id="xiaohong" class="program.ProductManageA"
    c:_0-ref="xiaoming"/>

这里,直接用0代表第一个构造器参数,_是因为数字不可以作为属性第一个字符。也可以使用构造器名。
若需装配集合时,我们只需要使用标签或标签即可,
如:
<constructor-arg>
<list>
<value>..</value>
<value>..</value>
</list>
</constructor-arg>
<!-- <set>标签同理-->

4.设值注入
使用set方法注入是,使用标签即可,与使用同理,也有简化的标签p:,与c:类同。

二、在JAVA中进行显式配置

创建一个配置类,并设置bean返回规则

@Configuration
public class ProgramConfig {

    @Bean
    public Coder coder(){
        return new CoderA();
    }
    @Bean
    public ProductManageA productManageA(Coder coder){
        return new ProductManageA(coder);
    }
}

三、隐式的bean发现机制和自动装配

创建一个config JAVA类

@Configuration//代表配置类
@ComponentScan//设置组件扫描
public class ProgramConfig {

}
@Component//创建可被发现的bean
public class ProductManageA implements ProductManage {


    private Coder coder;
    @Autowired//自动装配程序员
    public ProductManageA(Coder coder){
        this.coder=coder;
    }

    @Override
    public void work() {
        System.out.println("万恶的PM跟码农谈需求");
        coder.coding();
    }

}
//测试类
/* @RunWith(SpringJUnit4ClassRunner.class)以便在测试开始的时候自动创建Spring的应用上下文。注解 @ContextConfiguration会告诉它需要在ProgramConfig中加载配置。*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=ProgramConfig.class)
public class TestProgram {

    @Autowired
    private ProductManageA pmA;
    @Test
    public final void testJavaConfig(){
        pmA.work();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值