解读:
@Configuration:声明我们JdbcConfig是一个xml配置类
@PropertySource:指定属性文件的路径是: classpath: jdbc. properties
@Value:通过@Value为属性注入值
@Bean:通过@Bean将dataSource() 方法声明为一一个注册Bean的方法, Spring会自动调用
该方法,将方法的返回值加入Spring容器中。
然后我们就可以在任意位置通过@Autowired注入DataSource了!
package cn.hm1006;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
/**
* liuxiansen
* hm1006.cn
*/
@Configuration
//声明JdbcConfig是一个xml配置类
@PropertySource("classpath:jdbc.properties")
//引入外部熟悉文件
public class JdbcConfig {
@Value("${jdbc.driverClassName}")
//通过“@Value 为属性注入值
private String driverClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
//这里的Bean同xml配置中一样
//通过@Bean将、dataSource() 方法声明为一一个注册Bean的方法,Spring会自动调用
//该方法,将方法的返回值加入Spring容器中。然后我们就可以在任意位置通过@Autowired注入DataSource了!
public DataSource dataSource(){
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(driverClassName);
source.setUrl(url);
source.setUsername(username);
source.setPassword(password);
return source;
}
}
Q.E.D.