1. 导入依赖
思路:类似springboot整合mybatis
因为实体类用了lombok所以多导了Lombok的依赖。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
2.编写mybatis的文件和类,
1.使用德鲁伊(Druid)连接池,配置Druid的数据库连接池
yml文件
spring:
datasource:
username: root
password: liuqing.1998
url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#使用了log4j,所以导入了log4j的依赖
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
2.整合mybatis
mybatis.type-aliases-package=com.liuqing.shirospringboot.pojo
mybatis.mapper-locations=classpath:mapper/*.xml
3.创建mapper,service层,编写mapper.xml文件,参考springboot整合mybatis
3.使用真实数据实现shiro的认证功能
1.注入service
@Autowired
private UserServiceImpl userService;
2.认证业务实现
//认证
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
System.out.println("认证");
//数据从数据库中取
UsernamePasswordToken userToken = (UsernamePasswordToken) authenticationToken;
User user = userService.queryUserByname(userToken.getUsername());
if(user == null){
return null;
}
//密码认证,shiro做
return new SimpleAuthenticationInfo("",user.getPwd(),"");
}