step1.下载OracleJDK step2. 解压 step3. 加入环境变量
接口中定义了三个方法,分别是:前置方法、后置方法和环绕方法(此叫法类似Spring AOP中的前置通知、后置通知以及环绕通知)。三个方法拥有相同的参数:第一个参数是动态代理对象,第二个是真实服务对象,第三个是方法对象,第四个是方法需要的参数集合。
Spring Boot结合JPA操作Mysql数据库十分方便,可以做到零配置文件。具体流程如下。
这里是最简单的Java接口和实现类的关系,此时可以开始动态代理了,一般会分为两个步骤:第一是建立代理对象和真实服务对象的代理和被代理关系,第二步是实现代理对象具体方法的逻辑。
本篇博客主要记录的是学习利用Spring Security技术栈开发企业级认证与授权。这篇博客的主要内容是搭建环境。
从浏览器访问http://localhost:8080/file/152445566433就可以将之前模拟上传的文件下载下来,其中链接后面的数字是文件的上传后的名称。
RESTful一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。本篇博客主要讲述使用Spring MVC开发RESTful风格的API。 一、传统API和RESTful API 传统的API和RESTful API如下表所示: | 行为 | 传统API | RESTful API | 方法 | | -------- | ------------- | ---------
本次测试一共设置了三个实体类,分别是User(用户)、Role(角色)、Department(部门)。三者之间的关系是:一个用户可以拥有多个角色,也就是用户和角色之间是一对多的关系,一个用户只属于一个部门,一个部门可以拥有多个用户,也就是说用户和部门之间是多对一的关系。
Maven是一个优秀的项目构建和管理工具,使用Maven构建项目非常方便,可以非常方便地处理Jar包依赖问题。这里提供构建MyBatis应用的的pom.xml配置内容。
在前面一篇博客《Spring Security技术栈开发企业级认证与授权(九)开发图形验证码接口》中介绍了如何开发图形验证码接口,并将验证逻辑加入到Spring Security中,这里将介绍如何开发短信验证,两者之间有许多非常类似的代码,所以在设计短信登录代码的时候,将它们进一步整合、抽象与重构。 图形验证码和短信验证码重构后的结构图如下所示:
Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等等。 CORS 与 JSONP 相比: 1、 JSONP 只能实现 GET 请求,而 CORS 支持所有类型的 HTTP 请求。 2、 使用 CORS,开发者可以使用普通的 XMLHttpRequest 发起请求和获得数据,比起 JSONP 有更好的 错误处理。 3、 JSONP 主要被老的浏览器支持,它们往往不支持 CORS,而绝大多数现代浏览器都已经支持了 CORS。
这里介绍Spring Boot结合JPA,MySQL和Ehcache实现缓存功能,提高程序访问效率。
本文的目标是开发一个图形验证码接口,该验证码支持用户自定义长度,以及生成图片后图片的宽度和高度、验证码的过期时间等。接下来按照整个设计思路介绍开发流程。
使用过滤器进行拦截主要有两种方式,第一种是将自定义的拦截器标注为Spring的Bean,在Spring Boot应用就可以对RESTful风格的API进行拦截。第二种方式往往应用在继承第三方过滤器,这时候就需要将第三方拦截器使用FilterRegistrationBean对象进行注册即可。接下来详细介绍两种方式。
函数式接口BinaryOperator,继承于BiFunction,Bifunction中有一个apply方法,接收两个参数,返回一个结果
这里不仅整合了Mybatis,还集成了Druid连接池。观察上面的依赖,我还加入了lombok插件依赖,这个已经被集成到了Spring Boot中,它可以动态地生成实体类的getter和setter等方法,使得实体类更加简洁,继续往下看,你会发现我的实体类没有getter和setter等方法,那是因为我加入了@Data注解,它会运行是创建getter和setter等方法。不明白的可以百度搜索一下lombok的用法,在使用它的时候,你的IDE必须得安装它的插件,如果你嫌麻烦,直接手动删除依赖,删除实体类的@Data注解,使用IDE生成getter和setter等方法。
Mybatis官方提供了逆向工程支持,只需简单操作,就可以根据数据库的表生成简单的实体类POJO和Mapper等文件。这里仅仅介绍使用Maven的插件来自动完成逆向工程操作。
这里将获取代理对象和对真实服务类进行代理的逻辑代码集中在一个类中,实现代理逻辑的类需要实现MethodInterceptor接口中的intercept方法。
adb adb「Android Bebug Bridge」是用来连接安卓和PC的桥梁 常用操作: 安装卸载apk 推送拷贝文件 查看设备硬件信息 查看应用程序占用资源 在设备执行shell命令 常用命令 帮助命令 $ adb help 检测连接到电脑的安卓设备 $ adb devices $ adb connect 127.0.0.1:62001 从手机上拉取信息到电脑上 $ adb pull <手机路径> <本地路径> 从电脑上提交信息到手机上 路径不能有中文和特殊字符 $ adb push <本地
我们知道队列是遵循先进先出(First-In-First-Out)模式的,但有些时候需要在队列中基于优先级处理对象。
首先我们需要在项目的POM文件中添加Hibernate Validator的依赖才可以使用它的数据校验器进行数据校验。由于Spring Boot已经将Hibernate Validator集成到了spring-boot-starter-web包里,所以这里不需要额外引用Hibernate Validator依赖。常用的校验注解下表所示:
开发成本较低,可以跨平台,调试方便,维护成本低,功能可复用,性能和体验要比web app好,更新较自由
其中绿色部分的每一种过滤器代表着一种认证方式,主要工作检查当前请求有没有关于用户信息,如果当前的没有,就会跳入到下一个绿色的过滤器中,请求成功会打标记。绿色认证方式可以配置,比如短信认证,微信。比如如果我们不配置BasicAuthenticationFilter的话,那么它就不会生效。
将jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar放入lib\ext中后,重启Jmeter
str字符串作为python中常用的基本数据类型,应用非常之广。常常在编程中忘记或错用其使用方法,特此记录。
Spring Boot默认支持文件上传,enabled这个可以不用配置,默认支持将文件写入磁盘,默认最大文件大小是1MB,默认最大请求大小是10MB,后面两个参数常常需要自己重新配置才能达到要求。
在Spring Boot中应用中Swagger2构建强大的API文档十分方便,只需要在项目中添加Swagger2的依赖,然后在Spring Boot的启动的main方法的类上加上注解@EnableSwagger2就可以完成构建工作。效果图如下:
在Spring Security中,我们最常用的登录验证机制是基于用户名和密码的,输入了用户名和密码以及图片验证码之后,就会进入一系列的过滤器链中,直到验证成功或者验证失败为止。结合下面的图,我们来简要分析一下Spring Security是如何验证基于用户名和密码登录方式的,分析完毕之后,再一起思考如何将短信登录验证方式集成到Spring Security中。
启动Spring Boot项目,从浏览器访问一个不存在的API,如“/user/hello”,这时候返回来的是一个HTML页面,如下图所示:
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8600 Accepted Submission(s): 3032 Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何
然后我们只需要修改一下其他的配置即可运行应用程序,开发人员在这个架构的基础上就可以愉快的撸代码了。 然而,ABP的学习才刚刚开始。ABP放弃了原有MVC的架构,使用了模块化架构,支持微服务,根据DDD模式和原则设计和开发,为应用程序提供分层模型。对于没有DDD、微服务开发经验的程序员来说,学习ABP难度比较大。
本篇要学的 列表 是不同数据类型的集合,它们是有序和可修改的(可变的)。列表可以为空,也可以有不同的数据类型项。
安卓 4.4 以上的版本都是基于 UiAutomator,现在已经改为 UiAutomator2 了。所以 Toast 在原来的 UiAutomator 基础上没办法识别,没法识别的话就需要利用 UiAutomator2了。
正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如在代码中定义的List<Object>和List<String>等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况。类型擦除也是Java的泛型实现方式与C++模板机制实现方式之间的重要区别。
Create an array Create an array, assign values to it, and write the values to the output.
1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为: Php代码 array ar
这篇主要探讨 ** 和 * 前缀运算符,**在变量之前使用的*and **运算符.
python中应该经常看到*和**,这两个运算符有时可能有点神秘,特别是它们作为前缀运算符时,有时知道就是这么写,但要说清楚为什么这么写,就有些傻傻说不上了。这不是咱们的错,是python把*和**用坏了,为它们赋予了太多用途,本文就小说下,*和**都能做些什么。
实现步骤: 实现静态UI效果 用传统的方式实现标签结构和样式 基于数据重构UI效果 将静态的结构和样式重构为基于Vue模板语法的形式 处理事件绑定和js控制逻辑 声明式编程 模板的结构和最终显示的效果基本一致 1.html结构 <li class="acti01挑战30天学完Python:Day6数据类型-元组tuple元组是不同数据类型的集合,它们是有序且不可变的。_tuple _使用圆括号()包裹元素。它一旦被创建便不可修改。也就是说我们不能像上节学习的list一样更改集合项。同时也不能使用像 add,insert,remove等方法。在元组中仅有少量的方法,这些方法如下:03测试进阶之—Linux下SVN服务器的搭建一个互联网公司会有非常多的工作角色,如项目经理、产品经理、开发工程师、设计师、测试工程师等等,每天的工作会产生非常多的代码、文档。02HDOJ/HDU 2567 寻梦(字符串简单处理)Problem Description 每个人的童年都可能梦想过自己成为一个英雄,尤其是喜欢武侠的男生,Yifenfei也不例外。 童年的他常常梦想自己能成为一个绝世英雄,手拿一把灿灿发亮的宝剑,手挽一位长发飘逸的秀丽气质MM ^_^ ,散步于清幽的泉边小道,微风吹过,飘落两片枫叶。。。。。。 正由于成天陶醉于这种脱世的意境之中,导致此人老大不小依旧形单影只,每天只能在人潮中孤单上路。。。。。。 现在就让我们为这个可怜的人创造一个机会,权当假设yifenfei现在已经捕获一位MM的芳心,但该MM被邪恶并且极其可恶的大魔头(AC女之杀手 lemon)抓走。为了正义,为了MM,燃烧吧。。。。。。02Python读取Excel文件并写入数据库 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd 2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。 3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas02SQLite虚拟机1 前言 本文主要介绍SQLite虚拟机VDBE,为了更好地了解SQLite虚拟机,文中也加入了一些Lua虚拟机内容来对比学习,更好地了解不同虚拟机之间的异同。 1.1 预备知识 虚拟机设计需要编译原理相关理论基础,这里先简单温习下编译原理中的一些知识。 1.1.1 文法 (1) LR文法 1965年,D.knuth 首先提出了LR(K)文法及LR(K)分析技术。括号中的K 表示向右查看输入串符号的个数。对于大多数用无二义性上下文无关文法描述的语言都可以用相应的LR 分析器进行识别,而且这种方法还具06Spring Boot整合Druid连接池开启数据库监控功能Spring Boot的数据源配置默认类型是org.apache.tomcat.jdbc.pool.DataSource,为了使用Druid连接池,可以将数据源类型更换为com.alibaba.druid.pool.DruidDataSource,具体如下代码所示。其中,url,username,password是连接MySQL服务器的配置参数,其他一些参数是设定Druid的工作方式。在resources文件夹下面建立application.yml文件,输入下面的代码完成配置。01Spring Security技术栈开发企业级认证与授权(十四)使用Spring Social集成QQ登录验证方式在前一篇文章中介绍到,Spring Social封装了OAuth协议的标准步骤,我们只需要配置第三方应用的认证服务器地址即可,就可以获取到访问令牌Access Token,拿着这个令牌就可以获取到用户信息了,QQ互联的文档中介绍到,要正确获取到用户的基础信息之前,还需要通过Access Token来获取到用户的OpenID,这个OpenID是每一个用户使用QQ登录到你的系统都会产生一个唯一的ID。如下图所示:02python导入excel数据画散点图_excel折线图怎么做一条线https://www.cnblogs.com/liulinghua90/p/9935642.html02挑战30天学完Python:Day7数据类型-集合setSet是项的合集。让我带你回到小学或者高中的数学课,集合的数学定义可以应用在python上。Set是无序且没有索引的集合。在Python中,集合用于存储唯一项,可以在集合之间查找并集、交集、差集、对称差集、子集、超集和不相交集。02通俗易懂PHP基础【2-常量变量】嗯,是吧,学习是一个积累的过程,一定要戒骄戒躁,不然可是会摔跤的。原归正传,今天说说PHP基础语法中的常量和变量。01
元组是不同数据类型的集合,它们是有序且不可变的。_tuple _使用圆括号()包裹元素。它一旦被创建便不可修改。也就是说我们不能像上节学习的list一样更改集合项。同时也不能使用像 add,insert,remove等方法。在元组中仅有少量的方法,这些方法如下:
一个互联网公司会有非常多的工作角色,如项目经理、产品经理、开发工程师、设计师、测试工程师等等,每天的工作会产生非常多的代码、文档。
Problem Description 每个人的童年都可能梦想过自己成为一个英雄,尤其是喜欢武侠的男生,Yifenfei也不例外。 童年的他常常梦想自己能成为一个绝世英雄,手拿一把灿灿发亮的宝剑,手挽一位长发飘逸的秀丽气质MM ^_^ ,散步于清幽的泉边小道,微风吹过,飘落两片枫叶。。。。。。 正由于成天陶醉于这种脱世的意境之中,导致此人老大不小依旧形单影只,每天只能在人潮中孤单上路。。。。。。 现在就让我们为这个可怜的人创造一个机会,权当假设yifenfei现在已经捕获一位MM的芳心,但该MM被邪恶并且极其可恶的大魔头(AC女之杀手 lemon)抓走。为了正义,为了MM,燃烧吧。。。。。。
1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd 2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web,如果大家没有这些软件~可以咨询我们的辅导员索要相关安装工具。 3:步骤1和2 准备好了之后,我们就可以开始安装pandas了,安装命令是:pip install pandas
1 前言 本文主要介绍SQLite虚拟机VDBE,为了更好地了解SQLite虚拟机,文中也加入了一些Lua虚拟机内容来对比学习,更好地了解不同虚拟机之间的异同。 1.1 预备知识 虚拟机设计需要编译原理相关理论基础,这里先简单温习下编译原理中的一些知识。 1.1.1 文法 (1) LR文法 1965年,D.knuth 首先提出了LR(K)文法及LR(K)分析技术。括号中的K 表示向右查看输入串符号的个数。对于大多数用无二义性上下文无关文法描述的语言都可以用相应的LR 分析器进行识别,而且这种方法还具
Spring Boot的数据源配置默认类型是org.apache.tomcat.jdbc.pool.DataSource,为了使用Druid连接池,可以将数据源类型更换为com.alibaba.druid.pool.DruidDataSource,具体如下代码所示。其中,url,username,password是连接MySQL服务器的配置参数,其他一些参数是设定Druid的工作方式。在resources文件夹下面建立application.yml文件,输入下面的代码完成配置。
在前一篇文章中介绍到,Spring Social封装了OAuth协议的标准步骤,我们只需要配置第三方应用的认证服务器地址即可,就可以获取到访问令牌Access Token,拿着这个令牌就可以获取到用户信息了,QQ互联的文档中介绍到,要正确获取到用户的基础信息之前,还需要通过Access Token来获取到用户的OpenID,这个OpenID是每一个用户使用QQ登录到你的系统都会产生一个唯一的ID。如下图所示:
https://www.cnblogs.com/liulinghua90/p/9935642.html
Set是项的合集。让我带你回到小学或者高中的数学课,集合的数学定义可以应用在python上。Set是无序且没有索引的集合。在Python中,集合用于存储唯一项,可以在集合之间查找并集、交集、差集、对称差集、子集、超集和不相交集。
嗯,是吧,学习是一个积累的过程,一定要戒骄戒躁,不然可是会摔跤的。原归正传,今天说说PHP基础语法中的常量和变量。
领取专属 10元无门槛券
手把手带您无忧上云