在项目src/main/resources下创建jdbc.properties文件,并且在文件中,添加一些自定义的配置信息:
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/vrd?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
db.username=root
db.password=123456
如果要读取以上的信息,可以将这些信息读取到某个类的各个属性中,创建一个类,并在类中声明4咯属性,属性跟上面的数量相同:
package cn.tedu.spring;
public class JdbcConfig {
private String driver;
private String url;
private String username;
private String password;
}
然后在类声明之前,通过@PropertySource配置需要读取的配置文件:
@PropertySource("classpath:jdbc.properties")
然后再各个属性声明之前,通过@Value注解读取配置中的值,并且注入到属性中,格式为@Value(“${配置文件的属性名称}”),例如:
package cn.tedu.spring;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
@PropertySource("classpath:jdbc.properties")
@Component
public class GetString {
@Value("${db.driver}")
private String driver;
@Value("${db.url}")
private String url;
@Value("${db.username}")
private String username;
@Value("${db.password}")
private String password;
@Override
public String toString() {
return "GetString [driver=" + driver + ", url=" + url + ", username=" + username + ", password=" + password
+ "]";
}
}
使用的是Spring读取文件的,并为以上属性赋值,所以以上的GetString应该要被Spring管理,所以,首先使用一个类来配置组键扫描:
package cn.tedu.spring;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan("cn.tedu.spring")
public class SpringConfig {
}
然后记住在前面要加@Component注解!
注意:在Windows操作系统中,如果配置文件中的属性名是username
,则最终注入属性的值将不是配置文件中的值,而是当前登录Windows操作系统的用户名,为了避免出现此类问题,建议在配置文件中,每个属性的名称之前都添加一些自定义的前缀。