主要利用 ConfigurationProperties属性进行安排,相比@value(上一次奖的方法)的注入更有优势

1.JDBCProperties
ConfigurationProperties 从application配置文件中读取配置项
prefix 表示 配置项的前缀
package com.itheima.config;
/**
* ConfigurationProperties 从application配置文件中读取配置项
* prefix 表示 配置项的前缀
* 配置项类中的类变量名必须要与 前缀之后的配置项名称保持 松散绑定(相同)
*/
//@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
如果函数名报错,需要添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<!--不传递依赖-->
<optional>true</optional>
</dependency>
jdbcConfig.java
package com.itheima.config;
@Configuration
@PropertySource("classpath:jdbc.properties")
//@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
/*
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
*/
@Bean
public DataSource dataSource(JdbcProperties jdbcProperties) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
dataSource.setUrl(jdbcProperties.getUrl());
dataSource.setUsername(jdbcProperties.getUsername());
dataSource.setPassword(jdbcProperties.getPassword());
return dataSource;
}
@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}
}
测试
package com.itheima;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
/**
* spring boot工程都有一个启动引导类,这是工程的入口类
* 并在引导类上添加@SpringBootApplication
*/
@SpringBootApplication
// 扫描mybatis所有的业务mapper接口
//@MapperScan("com.itheima.mapper")
@MapperScan("com.itheima.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
本文介绍了如何在Spring Boot中使用ConfigurationProperties进行属性注入,相比于@value注解,这种方式能更方便地从application配置文件读取配置。通过示例JDBCProperties,详细展示了prefix的用法,并提醒在遇到函数名报错时可能需要添加相关依赖。
698

被折叠的 条评论
为什么被折叠?



