Spring中@Bean (工厂 Bean)详解

精选30+云产品,助力企业轻松上云!>>> hot3.png

搭建一个Spring项目并整合Mybatis看这个博客:https://my.oschina.net/u/4284277/blog/3194178

1. @Bean简介

@Bean用于修饰方法:
   作用: 
	1.将方法返回的对象注册到spring容器
	2.向方法形参注入数据
注解描述修饰位置
@Bean将方法的返回对象注册到Spring容器方法
@Bean(name="xx")将方法的返回对象注册到Spring容器, 并赋予注册名方法

2. @Bean基本使用

方法返回值对象 注入 成员变量

2.1 按类型注入

  • Dao类:
public class ManLuDao{}
  • 配置类
/**
* Spring配置类
* @author 漫路h
*/
@Configuration
public class SpringConfiguration{
	@Bean
	public ManLuDao getDao(){
		return new ManLuDao();
	}
}
  • 测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringConfiguration.class})
public class ManLuText{
	@Resource //向Spring容器获取对象
	private ManLuDao dao;
	@Test
	public void run1(){
		System.out.println(dao);
	}
}
  • 示意图:

2.2 按名称注入

  • Dao类:
public class ManLuDao{}
  • 配置类
/**
* Spring配置类
* @author 漫路h
*/
@Configuration
public class SpringConfiguration{
	@Bean(name="manLuDao")
	public ManLuDao getDao(){
		return new ManLuDao();
	}
}
  • 测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringConfiguration.class})
public class ManLuText{
	@Resource(name="manLuDao") //向Spring容器获取对象
	private ManLuDao dao;
	@Test
	public void run1(){
		System.out.println(dao);
	}
}
  • 示意图

3. @Bean进阶使用

向方法形参注入

3.1 向参数注入-引用类型

  • Dao类:
public class ManLuDao{}
  • 配置类
/**
* Spring配置类
* @author 漫路h
*/
@Configuration
public class SpringConfiguration{
	@Bean
	public ManLuDao getDao(){
		return new ManLuDao();
	}
	
	@Bean
	public Object test(ManLuDao dao){
		System.out.println(dao);
		return null
	}
}
  • 测试类

直接运行即可

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringConfiguration.class})
public class ManLuText{
	@Test
	public void run1(){}
}
  • 示意图

3.2 向参数注入-多个简单类型

这里我们结合property配置文件的读取

  • property文件
jdbc.driver=com.mysql.jdbc.Driver
# 数据库地址
jdbc.url=jdbc:mysql://127.0.0.1:3306/springday01
# mysql账号
jdbc.username=root
# mysql密码
jdbc.password=root
  • 配置类
/**
* Spring配置类
* @author 漫路h
*/
@Configuration
public class SpringConfiguration{
	@Bean
	public static PropertySourcesPlaceholderConfigurer prop(){
		return new PropertySourcesPlaceholderConfigurer();
	}
	
	/**
	* 将properties文件中的参数注入到方法形参中
	*/
	@Bean
	public Object get1(@Value("${jdbc.driver}")String driver, 
			@Value("${jdbc.username}")String username){
		System. out .println(driver);
		System. out .println(username);
		return null;
	}
}
  • 测试类

直接运行即可

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={SpringConfiguration.class})
public class ManLuText{
	@Test
	public void run1(){}
}

4. @Bean总结

@Bean用于修饰方法:
   作用: 
	1.将方法返回的对象注册到spring容器
	2.向方法形参注入数据
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值