Spring Boot (mybatis)配置數據庫 連接方式
1、第一種方式,使@Value 注解的方式進行注入
1.1 編寫配置文件 例如 jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456
1.2 編寫一個屬性類、配置類
@Data
public class jdbcProperties {
String url;
String driverClassName;
String username;
String password;
}
package com.caicia.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
@Configuration
@EnableConfigurationProperties(jdbcProperties.class)
@PropertySource("classpath:jdbc.properties") 以前的配置方式
public class JdbcConfig {
//Spring boot 自帶的Value注解
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String dirclassname;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(dirclassname);
dataSource.setUsername(username);
dataSource.setUrl(url);
dataSource.setPassword(password);
return dataSource;
}
}
2、第二種數據庫注入方式
2.1 編寫一個默認的數據配置文件:application.proterties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456
2.2 編寫屬性類
package com.caicia.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; //添加配置屬性注解 @ConfigurationProperties(prefix = "jdbc") //追加前綴 @Data //lombock 插件,使用這個注解,可以在編譯的時候自動生成 get set toString 方法。詳細查看lombock 源碼 public class jdbcProperties { String url; String driverClassName; String username; String password; }
2.3 編寫配置類
package com.caicia.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; //添加配置類注解 @Configuration
//添加允許配置屬性注解,並引入配置文件 @EnableConfigurationProperties(jdbcProperties.class) // public class JdbcConfig { @Bean public DataSource dataSource(jdbcProperties jdbcProperties){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(jdbcProperties.getDriverClassName()); dataSource.setUsername(jdbcProperties.getUsername()); dataSource.setUrl(jdbcProperties.getUrl()); dataSource.setPassword(jdbcProperties.getPassword()); return dataSource; } }
3、相對優雅的注入數據方式
3.1 編寫屬性類
package com.caicia.config; import lombok.Data; @Data public class jdbcProperties { String url; String driverClassName; String username; String password; }
3.2 編寫配置類
package com.caicia.config; import com.alibaba.druid.pool.DruidDataSource;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource; //添加配置類注解 @Configuration public class JdbcConfig { @Bean @ConfigurationProperties(prefix = "jdbc")
// datasource 方法是Spring 去調用的,它會在調用的時候,首先會掃描到配置注解,然后去找datasouce 相關字段有沒有set 方法如果有 自動注入到applicationcontext 中 public DataSource dataSource (){ return new DruidDataSource(); } }
3.3 編寫 application.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou jdbc.username=root jdbc.password=123456