spring boot 框架设计步骤: 1.poem.xml配置 2.application.yml配置 3.entiry实体 4.realm.Myrealm extends AuthorizingRealm权限认证:授权、判断权限 5.config.ShiroConfig权限认证Bean 6.登录页面 1.webapp添加static(css ,js)包 2.登录页面webapp下login.html 3.controller.IndexController类 4.验证码controller存放在session中 7.repository.UserRepository extends JpaRepository<User,Integer>类 8.controller.UserController类 @Controller,@requestMapping("/user") 1.login()类@responseBody,@requestMapping("/login") 9.util.StringUtil工具类static 10.repository.RoleRepository extends JpaRepository<Role,Integer>类@query,nativeQuery=true 1.interfece RoleService接口 2.RoleServiceImpl implement RoleService实现类@Service("RoleService") 3.controller.UserController类 @Controller,@requestMapping("/user") 11.main.html搭建采用easyui 1.webapp添加static(images ,easyui)包 2.登录页面webapp下main.html 3.定义一些icon 12.$("#tree").tree() 1.UserController.loadMenuInfo(HttpSession session)方法 2.repository.MenuRepository extends JpaRepository<Menu,Integer>类@query 3.interfece MenuService接口 4.MenuServiceImpl implement MenuService实现类@Service("MenuService") 13.var context="<iframe ></iframe>"; $("#tabs").tabs("add",{}); if($("#tabs").tabs("exist",node.text)){("#tabs").tabs("select",node.text)} 14.用户管理@Transient不映射 repository.UserRepository extends JpaRepository<User,Integer>,JpaSpecificationExecutor<User,Integer>类 Pageable pageable=new PageRequest(); Predicate predicate=cb.conjunction(); predicate.getExpressions().add(); controller.admin.UserAdminController类 @Controller,@requestMapping("/admin/user") <table title="" class="easyui-datagrid" fitColumns="true" pagination="true" rownumbers="true" singleSelect="true" url="" fit="true"></table> <thead><th field="" width="" align=""></th><th></th>..</thead> 15.<form id="fm" method="post"> <table id="" class="easyui-datagrid"><tr><td></td><td></td>..</tr><tr></tr>..</table> </form> 16.var selectedRows=$("#dg").datagrid("getSelections"); $("#dg").dialog("open").dialog("setTitle",""); 17.显示所有角色 <div id="dlg" class="easyui-dialog" style=" 450px;height: 300px;padding: 10px 20px" closed="true" buttons="#dlg-buttons" data-options="onClose:function(){resetValue()}"> 18.shiro认证SimpleAuthorizationInfo info=new SimpleAuthorizationInfo(); info.addStringPermission(menu.getName());info.setRoles(); @RequiresPermissions(value="") @RequiresPermissions(value={"",""},logical=Logical.OR) AuthenticationInfo authcInfo=new SimpleAuthenticationInfo(user.getUserName(),user.getPassword(),"xxx"); 19.cascadeCheck:false 不级联