创建数据库 前面介绍了springboot-security整合jdbc从数据库中查询用户的方式,适用性有限,下面介绍最常用的整合MyBatis,这种在开发和生产环境中是最常用,也是最实用的.首先需要创建数据库表,我们来创建三张表,分别是用户表,角色表,还有用户角色表,首先看用户表: 只有三个字段,具体业务中需要几个字段完全由我们自己设计.密码是admin,是加密的,后面的配置中会看到加密方式,与前面介绍的在内存中配置默认用户的方式类似.下面看角色表: 注意每个角色名字的前面都加了一个ROLE_…
数据库中定义用户 前面我们定义用户是在配置文件和代码中定义死的默认用户,一般在开发中是不会这样做的,我们的用户都是来自我们的用户表,存储在数据库中.操作数据库的技术有很多,spring security默认支持了一个JDBC的方式,下面用这个方式来从数据库中查询用户.首先定义用户表users: enabled字段表示是否启用,改为0表示不允许此用户登录.在表里面添加两个用户 : 注意密码前面都加了{noop}是JDBC这种查询方式默认的加密算法.实际上,这种方式还需要定义好几个表,此处我们演示定…
一.Spring整合mybatis思路 非常简单,这里先回顾一下mybatis最基础的根基, mybatis,有两个配置文件 全局配置文件SqlMapConfig.xml(配置数据源,全局变量,加载映射文件等东西) 映射文件xxxMapper.xml,用来对输入参数输出参数,数据库语句做配置的. mybatis配置好之后的使用步骤 1.获取sqlMapConfig.xml的位置然后进行加载 2.通过sqlMapConfig.xml中的内容创建出sqlsessionFactory对象 3.然后通过…
一.回顾Spring整合Mybatis Spring 整合 Mybatis 需要定义很多配置类 SpringConfig 配置类 导入 JdbcConfig 配置类 导入 MybatisConfig 配置类 @Configuration @ComponentScan("com.itheima") @PropertySource("classpath:jdbc.properties") @Import({JdbcConfig.class,MyBatisConfig.c…
Web应用安全管理 Web应用的安全管理,主要包括两个方面的内容,一个是用户身份的认证,即用户登录的设计,二是用户授权,即一个用户在一个应用系统中能够执行哪些操作的权限管理.权限管理的设计一般使用角色来管理,即给一个用户赋予哪些角色,这个用户就具有哪些权限. Spring框架体系中,经典的安全体系框架是Security.关于系统的安全管理及各种设计,Spring Security已经大体上都实现了,只需要一些配置和引用就能够正常使用.SpringBoot使用Security更加的简单,因为Spr…
自定义登录页面 前面无论是使用默认配置,还是自定义配置类,都是使用的springboot-security自带的登录页面,自带的登录页面在这个版本虽然设计的非常不错,但是在实际开发中,我们通常还是使用自己的登录页面.下面来写一个非常简单的登录页面: 这个页面只有填写用户名和密码的地方,然后就是一个form表单提交,没有任何其他内容.特别注意!!这里页面虽然引入了thymeleaf模板,但是没有使用thymeleaf的任何标签属性,使用的是原生的html标签.继续下面,然后是定义登录页面的路径:…
其它授权配置 security的配置类中,对所有路径进行了统一授权配置.但是有的内容我们也需要让未登录游客有权限访问,比如js,css等静态文件,还有一些宣传页面等等.这些路径可以单独配置: 我们来试验一些,springboot项目的试图页面一般放在resource文件夹下面的templates文件夹下.而静态文件一般放在resource文件夹下面的static文件夹下.我们来建立一个test.css文件, 随便写点内容,启动项目看看效果: 可以看到在未登录的情况下是可以访问的.也可以弄一个简单…
默认用户 前面的例子中我们使用的都是配置文件中配置好的默认用户: 除了可以配置账号密码,还可以在配置文件中配置角色: 这个角色是后面实现权限过滤的重要内容,后面会重点讨论. 在内存中配置默认用户 这样在配置文件中默认用户局限性还是很大的.我们想配置多个不同的用户,每个用户拥有不同的角色,并且还有最重要的一点,用户的密码应该是加密的,不应该是明文. 想在内存中配置,首先要实现security配置类的 configure(AuthenticationManagerBuilder auth)方法: 然…
用户授权 前面讨论过,Web应用的安全管理,主要包括两个方面的内容,一个是用户身份的认证,即用户登录的设计,二是用户授权,即一个用户在一个应用系统中能够执行哪些操作的权限管理.前面介绍了登录,下面简单介绍一下用户授权.用户拥有的权限是根据用户的角色来决定的,并且security中,用户的权限可以控制到方法级别. 方法级别的权限控制 每个url的访问都是定义在controller方法上面的,因此需要配置方法权限.开启方法级别的权限,需要引入@EnableGlobalMethodSecurity注解…
场景 当后台项目由部署在一台改为部署在多台以后,解决session共享问题最常用的办法就是把session存储在redis等缓存中.关于session和cookie概念这里就不再赘述了,在springboot-security环境下,把session存储到redis中共享是非常非常简单的,除了多了一些配置,几乎不用改任何代码.共享session达到的效果就是,用户在一台服务器上面登录成功后,访问另外一台,用户也是处于登录状态.下面创建两个一样的项目,来配置session共享. 增加依赖 把ses…
场景 很多登录都有记住我这个功能,在用户登陆一次以后,系统会记住用户一段时间,在这段时间,用户不用反复登陆就可以使用我们的系统.记住用户功能的基本原理如下图: 用户登录的时候,请求发送给过滤器UsernamePasswordAuthenticationFilter,当该过滤器认证成功后,会调用RememberMeService,会生成一个token,将token写入到浏览器cookie,同时RememberMeService里边还有个TokenRepository,将token和用户信息写入到数…
动态权限 前面讨论用户登录认证的时候,根据用户名查询用户会将用户拥有的角色一起查询出来,自动实现判断当前登录用户拥有哪些角色.可以说用户与角色之间的动态配置和判断security做的非常不错.不过在配置方法级别的权限的时候,使用注解虽然是一种比较优雅的方式,但是要求在开发的时候就知道当前url对应哪些角色,无法实现动态的配置,而实际的项目中,每个链接允许哪些角色访问也不是一成不变的,因此下面我们来实现自己的路由判断. 创建表 前面的讨论中,我们创建了用户表,角色表和用户角色中间表,下面来创建菜单…
一.整合思路 1.1 Dao层 SqlMapConfig.xml:空文件即可,但是需要文件头. applicationContext-dao.xml 数据库连接池 SqlSessionFactory对象,需要spring和mybatis整合包下的. 配置mapper文件扫描器. 1.2 Service层 applicationContext-service.xml:包扫描器,扫描@service注解的类. applicationContext-trans.xml:配置事务. 1.3 Contro…
原文链接: https://www.toutiao.com/i6803235766274097678/ 在learn-admin-component子工程中加入搭建环境所需要的具体依赖(因为比较长配置信息放到文档后面) 在learn-admin-webui配置jdbc.propertis 配置内容 jdbc.user=root jdbc.password= jdbc.url=jdbc:mysql://localhost:3306/project_learn?useUnicode=true&cha…
前后端分离 前面讨论了springboot下security很多常用的功能,其它的功能建议参考官方文档学习.网页版登录的形式现在已经不是最流行的了,最流行的是前后端分离的登录方式,前端单独成为一个项目,与后台的交互,包括登录认证和授权都是由异步接口来实现.在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高.这种应用模式比较适合纯网页应用, 但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而…
为了梳理前面学习的内容<Spring整合MyBatis(Maven+MySQL)一>与<Spring整合MyBatis(Maven+MySQL)二>,做一个完整的示例完成一个简单的图书管理功能,主要使用到的技术包含Spring.MyBatis.Maven.MySQL及简单MVC等.最后的运行效果如下所示: 项目结构如下: 一.新建一个基于Maven的Web项目 1.1.创建一个简单的Maven项目,项目信息如下: 1.2.修改层面信息,在项目上右键选择属性,再选择“Project…
Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 git clone https://github.com/Ivy-1996/wechatapi.git cd wechatapi python setup.py install 配置 该模块依赖djangorestframework和django_filter,需要把他们一起注册到INSTALLED_A…
接着上个章节来,上章节搭建好框架,并且测试也在页面取到数据.接下来实现web端,实现前后端交互,在前台进行注册登录以及后端拦截器配置.实现简单的未登录拦截跳转到登录页面 上一节传送门:SpringBoot整合Mybatis完整详细版 本章完整代码:SpringBoot整合Mybatis完整详细版含注册.登录.拦截器配置 天也不早了,开干 首先要实现web端需要在pom里引入jar包,前端用thymeleaf,所以在pom里添加以下内容 <dependency> <groupId>o…
2.11 SpringBoot多环境配置(19)  application.properties中配置 Spring.profiles.active=prd 配置环境: Application-dev.properties 开发环境 Application-test.properties 测试环境 Application-uat.properties 用户测试环境 Application-prd.properties 生产环境 2.12 SpringBoot整合mybatis(20) 注意:使用…
DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统.目的在于整合现有的Deep Learning开发工具,实现深度神经网络(Deep Neural Network,DNN)设计.训练和可视化等任务变得简单化.DIGITS是基于浏览器的接口,因而通过实时的网络行为的可视化,可以快速设计最优的DNN.DIGITS是开源软件,可在GitHub上找到,因而开发人员可以扩展和自定义DIGITS. Gi…
记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + jpa + bootstrap + thymeleaf 简单的增删改查Demo 后来进了新公司,用不到而且忙于任务,今天重温一遍居然有些忘了,看来真是好记性不如烂笔头.于是写下本篇SpringBoot整合Mybatis的文章,做个笔记. 本章节主要搭建框架,下章节实现登录注册以及拦截器的配置:Spr…
SSM 框架-06-详细整合教程(IDEA版)(Spring+SpringMVC+MyBatis) SSM(Spring.Spring MVC和Mybatis)如果你使用的是 Eclipse,请查看:SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis) 许多童鞋现在开始学习这个流行的框架来进行Java开发,想要寻找一个最简单的SSM框架搭建方法,这里我不说什么废话,直接上手开始搭建,代码部分都做了详细的注释,可以快速上手! 创建Java Web…
SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis) 如果你使用的是 Intellij IDEA,请查看: SSM的配置流程详细的写了出来,方便很少接触这个框架的朋友使用,文中各个资源均免费提供! 一.创建web项目(eclipse) File-->new-->Dynamic Web Project (这里我们创建的项目名为SSM) 下面是大致目录结构 二. SSM所需jar包. jar包链接:https://pan.baidu.com/s/…
10.整合MyBatis 10.1 相关jar包 junit <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> mybatis <dependency> <groupId>org.mybatis</groupId>…
SpringBoot数据访问之整合mybatis注解版 mybatis注解版: 贴心链接:Github 在网页下方,找到快速开始文档 上述链接方便读者查找. 通过快速开始文档,搭建环境: 创建数据库: use vuesite; CREATE TABLE city ( id INT PRIMARY KEY auto_increment, name VARCHAR(255), state VARCHAR(255), country VARCHAR(255) ); 创建实体类: package com…
CROW-5 WEB APP引擎商业计划书(HTML5方向)-微信网页版微信公众平台登录-水仙谷 CROW-5 WEB APP引擎商业计划书(HTML5方向)…
一:微博 1,先说微博吧,首先你的去http://open.weibo.com/wiki/先注册账号,通过验证审核.然后的创建网页应用.微博审核不通过的原因就是域名和网站地址,一定要按实际写的.一定要记得在微博这里设置回调页.然后根据微博开发文档一步一步下来. 2.微博的获取code的地址,是不用urlencode编码的,这个跟微信QQ不同.从客服端获取到code之后,我们是传入服务端的.因为微博第获取acces_token必须要求post请求,微博后台做了不能跨域这是第一个原因.第二个原因是a…
接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的staters(启动器) ​ 选择与数据库相关的组件 ​ 分析:Spring Boot基本上将我们实际项目开发中所遇到的所有场景都做了封装.它将所有的功能场景都抽取出来,做成了一个个的staters(启动器),只需要在项目的pom.xml配置文件里面引入这些starter相关场景的所有依赖都会导入进来.需要什…
SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABLE `department` ( `id` ) NOT NULL AUTO_INCREMENT, `departmentName` ) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2.Repositor…