接上个文章 SpringBoot 零基础入门笔记01
注解方式1:
创建新建类JdbcProperties
如图:
package cn.itcast.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data//编译时添加get set 方法
/***
* @ConfigurationProperties 是 Spring Boot 中的标签,
* 它可以让开发者将整个配置文件,映射到对象中,比@Value 效率更高。
*/
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
}
修改原来的
JdbcConfig
@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;*/
/* @Autowired
JdbcProperties jdbcProperties;
public JdbcConfig(JdbcProperties jdbcProperties){
this.jdbcProperties=jdbcProperties;
}*/
/* 注解方式1: @Bean */
public DataSource dataSource(JdbcProperties prop){
DruidDataSource dataSource =new DruidDataSource();
dataSource.setDriverClassName(prop.getDriverClassName());
dataSource.setUrl(prop.getUrl());
dataSource.setUsername(prop.getUsername());
dataSource.setPassword(prop.getPassword());
return dataSource;
}
}
第二种方式:
如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(jdbcProperties)中,而是直接在需要的地方声明即可
此时可删除 JdbcProperties的类,修改JdbcConfig类
@Bean
/**
* springboot 属性注入2
* 事实上,如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(jdbcProperties)中,而是直接在需要的地方声明即可
*
* */
//声明要注入的属性前缀,SpringBoot 会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}