零配置-@Bean
@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);
}
}
三、运行结果
热门文章
优秀文章