逝_doom 2019-06-02 18:19 采纳率: 50%
浏览 4956

springboot 使用druidDataSource,用配置文件自动配置,如果想把DataSource注入该怎么做 ?

工程中使用的式druidDataSource,没有写任何Java配置文件,直接使用properties文件创建的数据源。现在想使用shiro,jdbcreadlm使用时需要set数据源,我直接在配置文件上方使用autowired会报错。请问有什么解决方案么?。

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/random_recommend?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root@password
#druid数据源需要的东西
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
    @Autowired
    DruidDataSource druidDataSource;
    @ExceptionHandler(AuthorizationException.class)
    @ResponseStatus(HttpStatus.FORBIDDEN)
    public String handleException(AuthorizationException e, Model model) {

        // you could return a 404 here instead (this is how github handles 403, so the user does NOT know there is a
        // resource at that location)
        LogUtil.debug(this.getClass(),"AuthorizationException was thrown", e);

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("status", HttpStatus.FORBIDDEN.value());
        map.put("message", "用户权限不足");
        model.addAttribute("errors", map);

        return "error403";
    }

    @Bean
    public Realm realm() {
        JdbcRealm jdbcRealm = new JdbcRealm();
        jdbcRealm.setDataSource(druidDataSource);
        jdbcRealm.setPermissionsLookupEnabled(true);
        String sqlQueryUserPassword = "select user_password from tb_sys_user where user_id = ?";
        jdbcRealm.setAuthenticationQuery(sqlQueryUserPassword);
        return jdbcRealm;
    }
  • 写回答

1条回答 默认 最新

  • weixin_43530188 2020-08-27 13:35
    关注

    报错信息贴出来啊,如果没有单独的配置类注入druid数据源名称为druidDataSource的话,注入的时候直接 @Autowired DataSource dataSource就好了;

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!