Java配置
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
druidDataSource.setDriverClassName(driver);
return druidDataSource;
}
}
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
@RestController
public class MyController {
@Autowired
private DataSource dataSource;
@RequestMapping("hello")
public String hello(){
System.out.println(dataSource);
return "hello spring boot";
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
- Debug代码
- Spring Boot 对上面的属性注入方式进行了改进,使得代码更加简洁和易于理解。
单独放到一个类中
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
@Autowired
private JdbcProperties jdbcProperties;
@Bean
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(jdbcProperties.getUrl());
druidDataSource.setPassword(jdbcProperties.getPassword());
druidDataSource.setDriverClassName(jdbcProperties.getDriver());
druidDataSource.setUsername(jdbcProperties.getUsername());
return druidDataSource;
}
}
@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties {
private String url;
private String driver;
private String username;
private String password;
}
- application.properties
(注意这个配置文件的名字不能改,系统默认,不能改变)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
@RestController
public class MyController {
@Autowired
private DataSource dataSource;
@RequestMapping("hello")
public String hello(){
System.out.println(dataSource);
return "hello spring boot";
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
- Debug代码
直接注入
- 这种方法只适用于这个属性只需要给当前的对象使用,不适用于公共属性。
- JdbcConfig.java
@Configuration
public class JdbcConfig {
@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
}
- application.properties
(注意这个配置文件的名字不能改,系统默认,不能改变)
- 配置文件的中必须用 driverClassName ,否则会报错。
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
@RestController
public class MyController {
@Autowired
private DataSource dataSource;
@RequestMapping("hello")
public String hello(){
System.out.println(dataSource);
return "hello spring boot";
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
- Debug代码
属性文件使用yaml文件方式
@Component
@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties {
private String url;
private String driver;
private String username;
private String password;
}
jdbc:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
username: root
password: 123456
@RestController
public class MyController {
@Autowired
private JdbcProperties jdbcProperties;
@RequestMapping("hello")
public String hello(){
System.out.println(jdbcProperties);
return "hello spring boot";
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
- Debug代码
你知道的越多,你不知道的越多。
有道无术,术尚可求,有术无道,止于术。
如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步