之前用的是Spring Boot1.4.2,druid用的是1.1.2
配置方式如下:
spring.datasource.druid.url=xxxx spring.datasource.druid.username=xxx spring.datasource.druid.password=xxx spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
升级Spring Boot版本到2.0.2后报下面的错,druid用的是1.1.9
Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:250) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:226) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:210) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:192) at org.springframework.boot.context.properties.ConfigurationPropertiesBinder.bind(ConfigurationPropertiesBinder.java:82) at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.bind(ConfigurationPropertiesBindingPostProcessor.java:107) ... 49 common frames omitted
原提问者GitHub用户yinjihuan
如果您在使用Spring Boot 2.0.2时无法自动注入Bean,可能是由于以下几个原因:
@Autowired注解不起作用:在Spring中,使用@Autowired注解可以自动注入Bean。但是,在某些情况下,可能会出现@Autowired注解不起作用的情况。这可能是由于您没有将类或方法标记为Spring Bean,或者没有启用自动配置功能。请确保您的类或方法被标记为Spring Bean,或者启用了自动配置功能。
Bean名称匹配问题:在Spring中,自动注入Bean时,Spring会根据Bean的名称和类型进行匹配。如果您的Bean名称不正确或不匹配,可能会导致自动注入失败。请检查您的Bean名称和类型是否正确,并确保它们与@Autowired注解中的名称和类型匹配。
Bean作用域问题:在Spring中,Bean可以有不同的作用域,例如单例、原型、会话和请求等。如果您的Bean作用域不正确,可能会导致自动注入失败。请检查您的Bean作用域是否正确,并确保它们与@Autowired注解中的作用域匹配。
Bean定义重复问题:在Spring中,如果有多个Bean定义具有相同的名称和类型,则可能会导致自动注入失败。请检查您的Bean定义,确保它们具有唯一的名称和类型。
版本兼容性问题:Spring Boot 2.0.2可能不兼容某些版本的Spring或其他相关库。请确保您的应用程序使用的Spring和其他相关库的版本与Spring Boot 2.0.2兼容。
找到原因了,是filters出的问题。 是spring.datasource.druid.filters=stat,wall,log4j有问题 load com.alibaba.druid.filter.logging.Log4jFilter报错 把log4j去掉就可以了
原回答者GitHub用户yinjihuan
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。