1、创建一个配置类替代配置文件
package com.itheima.config;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
//<!-- 配置组件扫描--> <comtext:component-scan base-package="com.itheima"/>
@ComponentScan("com.itheima")
@Configuration //标志:Spring核心配置文件
// <!-- 加载外部properties文件--> <comtext:property-placeholder location="classpath:jdbc.properties"/>
@PropertySource("classpath:jdbc.properties")
public class SpringConfiguration {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource") //Spring会将当前方法的返回值已指定吗名称存储到Spring容器中
public DataSource getDataSource() throws PropertyVetoException {
//创建数据源
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
//设置数据库连接参数
comboPooledDataSource.setDriverClass(driver);
comboPooledDataSource.setJdbcUrl(url);
comboPooledDataSource.setUser(username);
comboPooledDataSource.setPassword(password);
return comboPooledDataSource;
}
}
2、引用配置类
ApplicationContext app = new AnnotationConfigApplicationContext(SpringConfiguration.class);