Spring中@Bean (工廠 Bean)詳解

搭建一個Spring項目並整合Mybatis看這個博客:http://www.javashuo.com/article/p-awaeytpc-cu.htmljava

1. @Bean簡介

@Bean用於修飾方法:
   做用: 
	1.將方法返回的對象註冊到spring容器
	2.向方法形參注入數據
註解 描述 修飾位置
@Bean 將方法的返回對象註冊到Spring容器 方法
@Bean(name="xx") 將方法的返回對象註冊到Spring容器, 並賦予註冊名 方法

2. @Bean基本使用

方法返回值對象 注入 成員變量mysql

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進階使用

向方法形參注入spring

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
	}
}
  • 測試類

直接運行便可sql

@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.向方法形參注入數據
相關文章
相關標籤/搜索