17.【@Import】

用于导入其他的配置类,直接在主配置文件上注解即可。

这样创建的为父子配置类

用了它之后就

  • 不用在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;
    }
}
发布了36 篇原创文章 · 获赞 14 · 访问量 3586

猜你喜欢

转载自blog.csdn.net/qq_39720594/article/details/105314639
今日推荐