首页 > 其他分享 >shiro 整合Mybatis

shiro 整合Mybatis

时间:2024-05-18 16:29:41浏览次数:30  
标签:com druid mybatis 整合 mysql Mybatis true log4j shiro

  • 就是将之前一步自己模拟的数据要换成从数据库中查出来的真实数据
  1. 导入mybatis相关依赖

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>xxx</version>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>xxx</version>
    </dependency>
    
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.3</version>
    </dependency>
    
  2. 配置文件application.yml

    spring:
      datasource:
        username: root
        password: admin
        #?serverTimezone=UTC解决时区的报错
        url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource # 导入了就可以用自己导入的数据库连接池
    
        #Spring Boot 默认是不注入这些属性值的,需要自己绑定
        #druid 数据源专有配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
    
        #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
        #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
        #则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
        
    mybatis:
      type-aliases-package: nuc.ss.pojo
      mapper-locations: classpath:mapper/*.xml
    
  3. 编写真实的业务

  4. UserRealm连接真实数据库

    //认证
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
        System.out.println("执行了=>认证doGetAuthorizationInfo");
    
        UsernamePasswordToken userToken = (UsernamePasswordToken) token;
        
        // 真实数据库 用户名、密码, 数据中取
        User user = userService.queryUserByName(userToken.getUsername());
    
        if (user == null) {//没有这个人
            return null;
        }
    
        // 密码认证,shiro做,默认是SimpleCredentialsMatcher加密,可以自己设置加密函数
        return new SimpleAuthenticationInfo("",user.getPwd(),"");
    }
    

标签:com,druid,mybatis,整合,mysql,Mybatis,true,log4j,shiro
From: https://www.cnblogs.com/hytip/p/18199450

相关文章

  • spring boot整合shiro
    导入依赖<!--Subject用户SecurityManager管理所有用户Realm连接数据库--><!--shiro整合spring的包--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version......
  • shiro 的快速开始
    Shiro是什么ApacheShiro是Java的一个安全(权限)框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成:认证、授权、加密、会话管理、与Web集成、缓存等。支持的功能Authentication:身份认证/登录,验证用户......
  • mybatis-plus id在高并发下出现重复
    mybaits-plusASSIGN_ID生成id生成策略在分布式高并发环境下出现重复idhttps://github.com/baomidou/mybatis-plus/issues/3077mybatis-plus对@TableId(type=IdType.ASSIGN_ID)生成默认使用com.baomidou.mybatisplus.core.toolkit.Sequence,这个类是雪花算法的实现,在该实现......
  • 【rust】《Rust整合OpenCV ( Ubuntu.22.04系统 ) 》
    前言Ubuntu22.04的环境搭建、rust安装配置、VSCode安装等参照另一篇博文:https://www.cnblogs.com/-CO-/p/18197715环境搭建对应项##虚拟机版本VMware17##系统版本Ubuntu22.04.4##Rust版本Rust1.78.0##Rust依赖Opencv版本Opencv-rust0.7......
  • Mybatis-plus多租户用例
    我们可以通过注解+配置实现项目多租户数据隔离注解定义:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(......
  • Springcloud学习笔记67--springboot 整合 任务调度框架Quartz
    1.背景定时任务Job的作业类中无法注入Service等由Spring容器所管理的Bean。例如下面这种情况,TaskCronJobService就无法成功注入。importjava.util.Iterator;importjavax.annotation.Resource;importorg.quartz.Job;importorg.quartz.JobExecutionContext;importor......
  • 通过mybatisflex获取多数据源mapper
    基于mybatisflex1.8.4:@NoArgsConstructor(access=AccessLevel.PRIVATE)@Slf4jpublicclassDataSource{publicstaticfinalStringA="a";publicstaticfinalStringB="b";publicstaticfinalStringC="c";pub......
  • mybatis-plus mapper整理
    mybatis-plusmapper整理简介提供了操作数据的框架,避免使用jdbc操作数据,加速开发效率,支持多种数据库(databaseId)。既支持sql,mapper的编写,也支持注解@Select等,同时提供了一二级缓存,以及BaseMapper接口以及IService、ServiceImpl这些接口,来提供模板化的方法。同时还支持逆向工程生......
  • 整合mybatis框架
    添加依赖<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>xxx</version></dependency>添加配置文件mybatis:mapper-locations:class......
  • LLM-通义千问:MyBatis-Plus 多租户插件
    MyBatis-Plus(简称MP)是一个对MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。多租户(Multi-Tenant)是一种软件架构技术,它允许多个组织(即“租户”)共享同一应用程序的实例,但每个组织的数据都是隔离且私有的。在多租户场景下,MyBatis-Plus提供了一种插件......