七牛是一个很好的第三方的图片服务器,下面介绍一下使用七牛上传图片的demo.
1、直接上代码:
|
|
2、相关的依赖
Demo依赖的jar包
3、引用文章
Java SDK
七牛是一个很好的第三方的图片服务器,下面介绍一下使用七牛上传图片的demo.
1、直接上代码:
|
|
2、相关的依赖
Demo依赖的jar包
3、引用文章
Java SDK
一、什么是lambda表达式?
Lambda 表达式,其实就是匿名函数。而函数其实就是功能(function),匿名函数,就是匿名的功能代码了,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java的语言表达能力得到了提升。Lambda就是为了替换匿名函数而存在的【本人的理解】;
二、lambda的使用场景。
|
|
三、什么是函数式接口。
|
|
四、写法、规则
|
|
五.几个特性
|
|
六、demo
1.使用lambda表达式实现Runnable
|
|
上述代码中:
() -> System.out.println(“I am running”)就是一个lambda表达式,
可以看出,它是替代了new Runnable(){}这个匿名内部类。
2.使用lambda表达式实现Comparator
|
|
|
|
有时候需要对集合中的元素按照一定的规则进行排序,对于比较简单单一的数据可以用Java中提供的对集合进行操作的工具类Collections中的sort方法,对于对象,如果要一依据属性进行排序,就需要参与比较的对象实现Comparable
先看一个简单的例子:
1、简单数据
输出结果:
[3, 5, 1, 0]
[0, 1, 3, 5]
稍微复杂的List里面放一个复杂的对象
2、复杂数据
(1、)通过实现接口进行比较
|
|
输出结果:
55,23
67,23
78,26
34,56
我们会发现sort(List)方法中List中的T必须实现Comparable 接口,然后实现
compareTo()方法,该方法的返回值0代表相等,1表示大于,-1表示小于;为什么
在简单例子中没有看到实现Comparable接口呢?是因为Integer类其实自己已经实现
了Comparable接口,Java已经给我们做好了。
(2、)通过匿名比较器实现比较
Collections提供的第二种排序方法sort(List
先看例子:
|
|
输出结果:
score:89:age22
score:98:age27
score:98:age29
score:99:age29
score:100:age23
3、总结
两种方式都可以实现数据的比较,从上面的例子我们可以看出Students类没有实现Comparable
SpringBoot中的拦截器是常用的技能,接下来将参照一个小小的demo讲解SpringBoot中拦截器的配置和使用.
1、SpringBoot中拦截器的使用场景.
日志、登陆验证、权限等都会用到拦截器.
2、demo源码.
在SpringBoot中使用拦截器非常的简单,相关的依赖SpringBoot已经自动为我们导入了,因此不必进行额外的导入,相关的参考代码如下:
|
|
3、参考文章
1、定时任务在J2EE项目中经常会被用到,如自动取消订单、在指定的时间清空缓存等需求就需要定时任务来实现。定时任务的完成是靠轮询来实现的,所以存在一定的延时误差是合理的。springboot在实现定时任务的过程中相关的依赖已经在父依赖中被导入了,所以不需要导入额外的依赖。
2、SpringBoot中定时任务的实现分两步:(1、)定时任务的的实现;
(2、)创建调度表达式;
3、具体实现.
(1、)定时任务的的实现,其实就是你要通过定时器完成的业务逻辑:
|
|
(2、)配置调度表达式:
调度表达式的声明参考文章1.
调度表达式的声明参考文章2.
|
|
通过@Scheduled注解添加调度表达式.
4、需要注意的地方
在使用SpringBoot任务调度的时候,需要在启动类上添加注解@EnableScheduling。
|
|
1、什么是jrebel?
Jrebel是一款热部署插件,用于提高开发效率。一般我们在开发j2ee项目的时候,每次代码跟新就得重启服务,这样效率很低,尤其是对于大项目的,启动很慢,白白浪费了很多时间。使用jrebel插件后可以在java【配置文件更新后还是得重启服务】代码更新后自动编译更新而不用重启项目。但是jrebel的破解码很难搞,下面介绍jrebel的安装、破解和使用.。
2、jrebel的安装、破解和使用.
(1、)安装
可以直接去eclipse的应用商店中下载,如图:
(2、)破解
jrebel理论上是收费的,但是我们可以破解,不是通过破解码和破解工具破解,因为这些方大都是无效的,老旧的。幸好,jrebel爱好者【可能是jrebe官方】搭建了一个网站,专门用于破解激活jrebel.
破解网站:MyJrebel
登录这个网站,使用facebook 或者推特登录(需要翻墙),然后输入邮箱,会要求验证(登录邮箱验证,点击验证链接),在输入手机号,不需要验证手机号。之后会进入破解网站:MyJrebel,登录后按照如下步骤操作即可获取激活码:
A、
B、
C、
(3、)使用
3.1、将jrebel插件作用于选中的项目;
3.2、更新代码,jrebel自动重新编译,无需重新启动。
在配置多数据源之前先理解@Configuration注解、@Bean注解以及配置自动扫描、bean作用域,参考文章如下:
@Configuration注解、@Bean注解以及配置自动扫描、bean作用域
1、原理:定义多个数据源,根据basePackages
进行自动切换;
2.代码:
SpringBoot+Mybatis多数据员配置Demo
为什么在java中要用枚举类呢?
我的理解:如果不用枚举类,而用传统的方法,那么如果要定义三个常量:
|
|
而且在引用的时候做到见名知意,那么就得这么些:
OrderType.java
|
|
SumuOrderEnum.java
|
|
EnumTest .java
|
|
但是用枚举类就方便许多了:
OrderTypeEnum.java
|
|
EnumTest.java
|
|
枚举类使用过程中因该注意的地方:
一:枚举类中必须定义构造方法;
二:枚举类中元素声明的类型必须和构造函数匹配,可以理解为元素的声明就是调用构造方法实例化了一个元素实例;
三:枚举类中属性可以没有,如果属性存在的话,枚举类中属性的名称可以随意,最好做到见名知意,但是其类型必须匹配构造函数中的类型;
四:元素的声明必须放在枚举类的首部;
五:枚举类的存在是为了简化常量的定义和使用;
springboot+react前后端分离项目中,跨域问题必然存在,解决方案有三种类型:
1、前端解决:
在package.json中添加如下代码:
|
|
缺点:由于域名部分是固定的,无法解决跨多个网站请求资源的跨域;
2.后端解决方案:
2.1、参考文章;
2.2、原理:添加SpringMVC底层实现的Web配置适配器,增加CORS相关的配置信息;
3.3、添加代理服务器,如nginx配置,前面讲过;
1、最近在使用des加密的过程中出现了如下错误:
错误提示的意思是:输入的加密源数据不足8个字节,推测是加密的填充模式不对;
2、错误原因:
|
|
注意点:2.1使用哪一种填充模式加密的,也必须采用哪种填充模式解密;
2.2CBC 加密模式需要有一个 IV 参数(也就是初始化向量),这个值在加 密时会随机生成,但必须保存下来,否则无法完成解密工作。
2.3建议采用 ECB 模式,或者在使用 CBC 时将初始化向量保存,在解密时使用。
3、解决方案:
|
|
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true