Bean的装配方式

Bean有三种装配方式
1.基于xml的装配(分为构造注入和设值注入)
生成一个People类

package com.dl.entity;

public class People {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public People() {
    }

    public People(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "People{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

通过xml文件对bean构造注入

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

    <bean id="people" class="com.dl.entity.People">
        <constructor-arg index="0" value="li"></constructor-arg>
        <constructor-arg name="age" value="12"></constructor-arg>
    </bean>
</beans>

测试类

public class Test {
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
        Object people = ac.getBean("people");
        System.out.println(people);
    }
}

2自动装配bean
Spring实现自动装配两个步骤:

组件扫描:@Component注解
自动装配(autowiring):Spring自动满足bean之间的依赖。
@Component:表明这个类作为组件类,并告知Spring要为这个类创建bean。默认bean的id为第一个字母为小写类名,可以用value指定bean的id。
@Configuration:代表这个类是配置类。
@ComponentScan:启动组件扫描,默认会扫描所在包以及包下所有子包中带有@Component注解的类,并会在Spring容器中为其创建一个bean。可以用basePackages属性指定包。
@RunWith(SpringJUnit4ClassRunner.class):以便在测试开始时,自动创建Spring应用上下文。
@ContextConfiguration:告诉在哪加载配置。
@Autowired:将一个类的依赖bean装配进来。

创建一个接口

public interface Chifan {
    void eat();
}

创建吃饭的实现类

@Component
public class ChifanImpl implements Chifan {
    @Override
    public void eat() {
        System.out.println("吃鱼");
    }
}

3通过java代码装配bean
配置类

@Configuration
public class Config {
    @Bean
    public void getchifan(){
        new ChifanImpl();
    }
}

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Config.class)
public class Test {
    @Autowired
    private Chifan chifan;
    @org.junit.Test
    public void test(){
        chifan.eat();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值