1.编写配置类
//SpringConifg
@Configuration //表名配置类,在容器创建时加载
@ComponentScan("com") //扫描com包下所有组件
@Import(DataSourceConfig.class) //导入其他配置类
public class SpringConfig {
}
//DataSourceConfig.class
@Configuration
@PropertySource("classpath:jdbc.properties") //引入外部文件
public class DataSourceConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String jdbcurl;
@Value("${jdbc.user}")
private String user;
@Value("${jdbc.password}")
private String password;
@Bean("ComboPooled") //表名将该方法的返回值储存到Spring容器中,标识为ComboPooled
public ComboPooledDataSource get() throws PropertyVetoException {
ComboPooledDataSource dataSource=new ComboPooledDataSource();
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(jdbcurl);
dataSource.setUser(user);
dataSource.setPassword(password);
return dataSource;
}
@Bean("Druid")
public DataSource getDurid() throws PropertyVetoException {
DruidDataSource druidDataSource=new DruidDataSource();
druidDataSource.setDriverClassName(driver);
druidDataSource.setUrl(jdbcurl);
druidDataSource.setUsername(user);
druidDataSource.setPassword(password);
return druidDataSource;
}
}
2.外部配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test-spring?useUnicode=true&characterEncoding=utf8
jdbc.user=root
jdbc.password=
3.组件
@Component
public class BookConfig {
@Bean("Book1")
public Book getbook(){
Book book=new Book("三国演义",25);
return book;
}
}
4.编写spring集合Junit的测试
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration(value=Application.xml) //配置文件
@ContextConfiguration(classes = {SpringConfig.class}) //配置类
public class TestSpring {
@Autowired
private Book book;
@Autowired
@Qualifier("ComboPooled")
private DataSource dataSource;
/*@Autowired
@Qualifier("Druid")*/
@Resource(name="Druid")
private DataSource source;
@Test
public void test1(){
System.out.println(book.toString());
}
@Test
public void test2() throws SQLException {
Connection connection= dataSource.getConnection();
System.out.println("ComboPooled:"+connection);
connection.close();
connection=source.getConnection();
System.out.println("Druid:"+connection);
connection.close();
}
}