2021-05-03 09:46  阅读(134)
文章分类:Spring 入门教程 文章标签:SpringSpring 教程
©  原文作者:一点教程 原文地址:http://www.yiidian.com/spring/

@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。作用是,把方法的返回结果放入IOC容器中,并且起个bean的id名称。

@Bean与@Component的区别?

@Component注解的作用是创建一个对象,放入IOC容器中。

@Bean注解并没有创建对象的能力,它只是获取某个方法的返回值,放入IOC容器中。

以下为@Bean注解的案例:

一、编写Bean类

CustomerDao接口:

    
    package com.yiidian.dao;
    /**
     * 
     * @author http://www.yiidian.com
     *
     */
    public interface CustomerDao {
    }
    

CustomerDaoImpl实现:

    
    package com.yiidian.dao.impl;
    
    import com.yiidian.dao.CustomerDao;
    
    /**
     * @author http://www.yiidian.com
     * 
     */
    public class CustomerDaoImpl implements CustomerDao {
    }
    

SpringConfig启动类(重点在这里):

    
    package com.yiidian.test;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    import com.yiidian.dao.CustomerDao;
    import com.yiidian.dao.impl.CustomerDaoImpl;
    
    /**
     * @author http://www.yiidian.com
     *
     */
    @Configuration
    @ComponentScan(basePackages={"com.yiidian"}) 
    public class SpringConfig {
    	@Bean(name="customerDao") //获取getCustomerDao的返回对象,放入IOC容器中,并且起名为customerDao
    	public CustomerDao getCustomerDao(){
    		return new CustomerDaoImpl();
    	}
    }
    

注意:在这里@Bean的作用,获取getCustomerDao的返回对象,放入IOC容器中,并且起名为customerDao。

二、编写测试类

    
    package com.yiidian.test;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    import com.yiidian.dao.CustomerDao;
    /**
     * 
     * @author http://www.yiidian.com
     *
     */
    public class Demo1 {
    	@Test
    	public void test1(){
    		ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
    		CustomerDao customerDao = (CustomerDao)ac.getBean("customerDao");
    		System.out.println(customerDao);
    	}
    }
    

三、运行结果

2021050309460240114_1.png

源码下载:http://pan.baidu.com/s/1hrHobUO

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> 零配置-@Bean
上一篇
零配置-@Import
下一篇
Spring整合Junit