用于导入其他的配置类,直接在主配置文件上注解即可。
这样创建的为父子配置类
用了它之后就
- 不用在
JdbcConfig
上添加@Configuration注解,
- 也不用在测试类创建容器时添加
JdbcConfig
的字节码文件,
这两种创建的是并列配置类
属性:value
- 指定其他配置类的字节码文件
SpringConfiguration
@Configuration
//@ComponentScan(basePackages = {"cn.luis"})
@ComponentScan({"cn.luis","config"})
public class SpringConfiguration {
}
JdbcConfig
package config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
/**
* @ClassName JdbcConfig
* @Description 和spring连接数据库相关的配置类
* @Author L
* @Date 2020.04.02 23:00
* @Version 1.0
* @Remark TODO
**/
@Configuration
public class JdbcConfig {
/**
* 用于创建一个QueryRunner对象
* 注入数据源 :构造函数注入 ref:构造函数的参数
* @param dateSource
* @return
*/
@Bean(name = "runner")
@Scope("prototype")
public QueryRunner createQueryRunner(DataSource dateSource){
return new QueryRunner(dateSource);
}
/**
* 用于创建数据源对象
* @return
*/
@Bean(name = "dataSource") // 细节
public DataSource createDataSource() {
ComboPooledDataSource ds = new ComboPooledDataSource();
try {
ds.setJdbcUrl("jdbc:mysql://localhost:3306/eesy");
ds.setUser("root");
ds.setPassword("root");
ds.setDriverClass("com.mysql.jdbc.Driver");
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return ds;
}
}