Shiro-SpringBoot(一)
接口<interface>服务<service>sql语句mapper<mapper.xml>sql调用接口<mapper.interface>
4.配置: application.properties5.入口文件配置扫描位置6.测试查询用户信息
1.配置加载库: pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> <!--数据库相关--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.6</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <!--工具库--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.3.RELEASE</version> </dependency> <!--jsp相关配置--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-core</artifactId> <version>3.0</version> </dependency>
2.创建模型2-1.User
import java.util.HashSet;import java.util.Set;public class User { private Integer uid; private String username; private String password; private Set<Role> roles=new HashSet<>(); private Set<Permission> permissions=new HashSet<>(); public Integer getUid() { return uid; } public void setUid(Integer uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public Set<Permission> getPermissions() { return permissions; } public void setPermissions(Set<Permission> permissions) { this.permissions = permissions; }}
2-2.Role
import java.util.HashSet;import java.util.Set;public class Role { private Integer rid; private String rname; private Set<Permission> permissions=new HashSet<>(); public Integer getRid() { return rid; } public void setRid(Integer rid) { this.rid = rid; } public String getRname() { return rname; } public void setRname(String rname) { this.rname = rname; } public Set<Permission> getPermissions() { return permissions; } public void setPermissions(Set<Permission> permissions) { this.permissions = permissions; }}
2-3.Permission
public class Permission { private Integer pid; private String name; private String url; public Integer getPid() { return pid; } public void setPid(Integer pid) { this.pid = pid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; }}
3.创建数据库查询3-1.UserMapper
public interface UserMapper { User findByUsername(@Param("username") String username);}
3-2.UserService
public interface UserService { User findByUsername(String username);}
3-2.UserServiceImpl
@Servicepublic class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public User findByUsername(String username) { return userMapper.findByUsername(username); }}
3-3.UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="cn.safi16.springbootshiro.mapper.UserMapper"> <!-- select 对应的方法结果 --> <resultMap id="userMap" type="cn.safi16.springbootshiro.model.User"> <id property="id" column="id"/> <result property="username" column="username"/> <result property="password" column="password"/> <!--复合结果--> <collection property="roles" oftype="cn.safi16.springbootshiro.model.Role"> <id property="rid" column="rid"/> <result property="rname" column="rname"/> <!--复合结果--> <collection property="permissions" oftype="cn.safi16.springbootshiro.model.Permission"> <id property="pid" column="pid"/> <result property="name" column="name"/> <result property="url" column="url"/> </collection> </collection> </resultMap> <!--方法执行语句--> <select id="findByUsername" property="string" resultMap="userMap"> SELECT u.*, r.*, p.* FROM user u INNER JOIN user_role ur on ur.uid = u.uid INNER JOIN role r on r.rid = ur.rid INNER JOIN permission_role pr on pr.rid = r.rid INNER JOIN permission p on pr.pid = p.pid WHERE u.username = #{username} </select></mapper>
6.测试查询用户信息HomeController
@RestControllerpublic class HomeController { @Autowired private UserService userService; // 登录页面 @RequestMapping("/test") public String login(){ User user=userService.findByUsername("admin"); if (user==null){ return "用户找不到"; }else{ return "用户名是: "+user.getUsername(); } }}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。