亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

java - druid-spring-boot-starter中的一個疑問

瀏覽:59日期:2023-10-17 11:27:06

問題描述

先貼代碼

@Configuration@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)@EnableConfigurationProperties(DruidStatProperties.class)@Import({DruidSpringAopConfiguration.class, DruidStatViewServletConfiguration.class, DruidWebStatFilterConfiguration.class})public class DruidDataSourceAutoConfigure { @Bean @ConfigurationProperties('spring.datasource.druid') @ConditionalOnMissingBean public DataSource dataSource(Environment env) {DruidDataSource dataSource = DruidDataSourceBuilder.create().build();//if not found prefix ’spring.datasource.druid’ settings,’spring.datasource’ prefix settings will be used.if (dataSource.getUsername() == null) { dataSource.setUsername(env.getProperty('spring.datasource.username'));}if (dataSource.getPassword() == null) { dataSource.setPassword(env.getProperty('spring.datasource.password'));}if (dataSource.getUrl() == null) { dataSource.setUrl(env.getProperty('spring.datasource.url'));}if (dataSource.getDriverClassName() == null) { dataSource.setDriverClassName(env.getProperty('spring.datasource.driver-class-name'));}// set filters default value on StatViewServlet enabled.if (! 'false'.equals(env.getProperty('spring.datasource.druid.StatViewServlet.enabled'))) { try {dataSource.setFilters('stat'); } catch (SQLException e) {e.printStackTrace(); }}return dataSource; }}

public class DruidDataSourceBuilder { private Map<String, String> properties = new HashMap<String, String>(); public static DruidDataSourceBuilder create() {return new DruidDataSourceBuilder(); } public DruidDataSource build() {DruidDataSource dataSource = new DruidDataSource();maybeGetDriverClassName();bind(dataSource);return dataSource; } //use spring boot relaxed binding by reflection config druid . detail see Spring Boot Reference Relaxed binding section. private void bind(DruidDataSource result) {MutablePropertyValues properties = new MutablePropertyValues(this.properties);new RelaxedDataBinder(result).withAlias('url', 'jdbcUrl').withAlias('username', 'user').bind(properties); } private void maybeGetDriverClassName() {if (!this.properties.containsKey('driverClassName')&& this.properties.containsKey('url')) { String url = this.properties.get('url'); String driverClass = DatabaseDriver.fromJdbcUrl(url).getDriverClassName(); this.properties.put('driverClassName', driverClass);} }}

不理解的地方在DruidDataSourceBuilder的maybeGetDriverClassName方法,顯然DruidDataSourceAutoConfigure中的方法dataSource在使用DruidDataSourceBuilder的時候,DruidDataSourceBuilder中的properties是沒有屬性的,這樣的話maybeGetDriverClassName方法不是沒有意義嗎?還有一點是DruidDataSourceAutoConfigure的dataSource方法中的if判斷,在方法中dataSource應該還沒注入屬性吧,這樣判斷不是也沒意義?

問題解答

回答1:

可能是為以后 properties 里面添加其他屬性留余地吧。

標簽: java
相關文章:
主站蜘蛛池模板: 成人午夜视频一区二区国语 | 瑟瑟网站在线观看 | 欧美成人午夜视频免看 | 久久w5ww成w人免费不卡 | 欧美很黄视频在线观看 | 韩国免又爽又刺激激情视频 | 国产精品久久久久久久久久久不卡 | 欧美一级毛片特黄大 | 美国三级大片 | 久草在线视频免费资源观看 | 免费一级特黄特色黄大任片 | 国产乱子伦露脸对白在线小说 | 国产一区二区三区影院 | 国产成人在线视频观看 | 国产韩国精品一区二区三区久久 | 三级网站免费观看 | 九九视频在线免费观看 | 综合网站 | 亚洲欧美在线综合一区二区三区 | 美女网站色免费 | 日韩美女在线看免费观看 | 波多野结衣在线免费观看视频 | 成人免费观看永久24小时 | 久草在线中文最新视频 | 国产成人午夜 | 在线播放亚洲精品 | 亚洲 欧美 精品专区 极品 | 在线日本看片免费人成视久网 | 国产成人精品日本亚洲专 | 国产黄色小视频 | 黄色a网 | 国产亚洲高清在线精品不卡 | 日本aaaa片毛片免费观看 | 日本在线亚州精品视频在线 | 亚洲精品专区一区二区欧美 | 国产精品亚洲第一区柳州莫青 | 日韩美香港a一级毛片 | 国产精品久久久久久福利 | 能直接看的一级欧美毛片 | 一级成人 | 日韩免费精品一级毛片 |