package com.suchuanlin.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.*;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
/**
* java配置类,替代xml配置文件
* 1.包扫描注解配置
* 2.引用外部的配置文件
* 3.声明第三方依赖的bean组件
*
* 步骤1:添加@Configuration 代表当前类是配置类
* 步骤2:实现上面的三个功能注解
*/
@Configuration
@ComponentScan(value = {"com.suchuanlin.ioc_01","com.suchuanlin.ioc_02"})
@PropertySource(value = {"classpath:jdbc.properties"})
public class JavaConfiguration {
@Value("${suchuanlin.url}")
private String url;
@Value("${suchuanlin.driver}")
private String driver;
@Value("${suchuanlin.username}")
private String username;
@Value("${suchuanlin.password}")
private String password;
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON)
//@Bean(name = "datasource_1" ,initMethod = "", destroyMethod = "")
@Bean(name = "datasource_1")
public DataSource dataSource1(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driver);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
};
@Bean(name = "datasource_2")
public DataSource dataSource2(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driver);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
};
@Bean
public JdbcTemplate jdbcTemplate(){
JdbcTemplate jdbcTemplate = new JdbcTemplate();
//需要DataSource 需要ioc容器中的其他组件
//方案1.如果其他组件也是@Bean方法,可以直接调用 | 从ioc容器获取组件
jdbcTemplate.setDataSource(dataSource1());
return jdbcTemplate;
}
@Bean
public JdbcTemplate jdbcTemplate1(DataSource datasource_1,DataSource datasource_2){
JdbcTemplate jdbcTemplate = new JdbcTemplate();
//需要DataSource 需要ioc容器中的其他组件
//方案2.通过形参列表传值,可以是一个或多个 ioc容器也会注入
//如果没有:形参变量注入,要求必须有对应的类型的组件,如果没有,抛异常!
//如果有多个:可以使用形参名称=对应的beanId标识即可
jdbcTemplate.setDataSource(datasource_1);
return jdbcTemplate;
}
}
Spring IoC/DI配置类模板
最新推荐文章于 2024-09-04 21:18:02 发布