1、定义
springboot推荐使用用java代码的形式申明注册bean。
@Configuration注解可以用java代码的形式实现spring中xml配置文件配置的效果。
2、通过java代码注册bean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
   | @Configuration public class TestMybaitsConf {
  	@Bean 	public DataSource dataSource() { 		ComboPooledDataSource dataSource = new ComboPooledDataSource(); 		try { 			dataSource.setDriverClass("com.mysql.jdbc.Driver"); 			dataSource.setJdbcUrl("jdbc:mysql://192.168.100.25:6660/TXSMS?useUnicode=true&characterEncoding=utf-8"); 			dataSource.setUser("root"); 			dataSource.setPassword("123456"); 		} catch (Exception e) { 			throw new RuntimeException(e); 		} 		return dataSource; 	} 	 	@Bean 	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) { 		SqlSessionFactory factory = null; 		SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); 		bean.setDataSource(dataSource); 		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); 		bean.setConfigLocation(resolver.getResource("classpath:mybatis.xml")); 		try { 			factory = bean.getObject(); 		} catch (Exception e) { 			throw new RuntimeException(e); 		} 		return factory; 	} 	 	@Bean 	public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { 		return new SqlSessionTemplate(sqlSessionFactory); 	} 	 	@Bean 	public PlatformTransactionManager transactionManager(DataSource dataSource) { 		return new DataSourceTransactionManager(dataSource); 	} }
   | 
 
3、使用xml注册bean
1 2 3 4 5
   | @Configuration @ImportResource("classpath:spring-mybatis.xml") public class TestMybaitsConf { 	 }
   | 
 
spring-mybatis.xml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
   | <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" 	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop" 	xsi:schemaLocation="http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 		http://www.springframework.org/schema/jee  http://www.springframework.org/schema/jee/spring-jee-4.0.xsd 		http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 		http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-4.0.xsd 		http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
  	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 		<property name="driverClass" value="com.mysql.jdbc.Driver"></property> 		<property name="jdbcUrl" value="jdbc:mysql://192.168.100.25:6660/TXSMS?useUnicode=true&characterEncoding=utf-8"></property> 		<property name="user" value="root"></property> 		<property name="password" value="123456"></property> 	</bean> 	 	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 		<property name="dataSource" ref="dataSource"></property> 		<property name="configLocation" value="classpath:mybatis.xml"></property> 	</bean> 	 	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> 		<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg> 	</bean> 	 	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 		<property name="dataSource" ref="dataSource"></property> 	</bean> 	 	<tx:annotation-driven transaction-manager="transactionManager"/> </beans>
   | 
 
4、总结
2、3两种注册bean的效果完全一样,但springboot推荐使用2中的方式,使用java代码注册bean。