跨域解决方案CORS
什么是跨域? 出于浏览器的同源策略限制。同源策略(Sameorigin policy)是一种约定,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略的基础之上的,浏览器只是针对同源策略的一种实现。同源策略会组织一个域的JavaScript脚本和另一个域的内容进行交互。所谓同源策略(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port),如果跨域调用会出现以下错误:
1No 'Access-Contol-Allow-Orgin' header is present on the requested resource.Orgin 'http://localhost:9100' is therefore not allow access.The response had HTTP status code 400
由于采用前后端分离的编程方式,前端和后端必定存在跨域问题,解决跨域问题可以采用CROS
CORS ...
thymeleaf获取当前时间并格式化输出
有时候会需要在模板中直接打印时间的需求,如果输出一个时间还需要在java类中去获取model的话,那未免也太麻烦了,以下为thymeleaf在模板中直接获取时间戳并格式化输的代码获取时间戳
1<p th:text="${new java.util.Date().getTime()}"></p>
格式化时间
12[[${#dates.format(new java.util.Date().getTime(), 'yyyy-MM-dd hh:mm:ss')}]]注:[[{}]]这种格式为内联,也可以使用th:text="{}"
解决分页插件PageHelper的startPage不生效的问题
原因是MyBatis的版本和PageHelper的版本不匹配
一组正确的版本是:
123456789101112<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.4</version></dependency><!--mybatis分页插件--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version></dependency>
解决MyBatis无法注入的问题
今天在用Mybatis的时候没有在启动类中加上@MapperScan(basePackages = {“”}),导致Mapper一直注入不进来
Mybatis在继承通用Mapper之后利用SelectOne()来查找某一条纪录
12345678910111213@RegisterMapperpublic interface SelectOneMapper<T> { /** * 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号 * * @param record * @return */ @SelectProvider(type = BaseSelectProvider.class, method = "dynamicSQL") T selectOne(T record);}
参数为一个实例,实例中的属性作为查找的条件
Python列表和元组的详细区别
1、列表是动态数组,它们不可变且可以重设长度(改变其内部元素的个数)。
2、元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
3、元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。
列表(List) 列表一旦创建了我们就可以根据自己的需要随意改变它的内容:
1234>>> l = [1, 2, 3, 4, 5, 6]>>> l[0] = l[2] * l[3]>>> l[12, 2, 3, 4, 5, 6]
另外我们可以给列边添加新的数据来增加其大小:
1234567>>> len(l)6>>> l.append(7)>>> l[12, 2, 3, 4, 5, 6, 7]>>> len(l)7
这是因为动态数组支持resize操作,可以增加数组的容量。当一个大小为N的列表第一次需要添加数据时,Python会创建一个新的列表,足够放原来的N个元素以及额外添加的元素 ...
《练习的心态》3-10章
当我们试图理解自己以及我们对人生中各种努力的痛苦挣扎时,可以通过观察一朵花来找到平和。问你自己:一朵鲜花的生命,从洒下种子到完全盛开,在什么时候可以达到完美?
我们在生活中体验到的焦虑,源于一种感觉:我们总是感到自己涉足其中的所有事情,总有一个完美的终点。不论在什么事情上追求完美,也不论在什么地方追完美,我们都不完美。我们继续有意或者无意地观察生活中的每一件事,将它与我们觉得理想的事情对比,然后判断距离理想还有多远。拥有大房子、赚更多的钱、买辆新车等,都是这种例行比较的正常组成部分。
在著名的电影(以及小说)《天生好手》(The Natural),有一个引人注目的场景:一位棒球运动员刚开始出现在职业比赛中,便受了伤。说起打棒球,他拥有近乎神奇的才能,很可能成为史上最著名的运动员。但他在一个尴尬的场合中受了伤,因此不得不退出球场许多年。最后,他终于回归球场,尽管已经是一个中年人,但他令人不可思议的天赋,使得他能够在职业队里打球。没过多久,他成了英雄,但他的伤不可能完全治愈,到最后旧伤复发,不得不住进医院。
在这里,我想到了这部电影中令 ...
《乌合之众》卷3:群体的分类及其特点
我们经常会受到别人的怂恿并服从这种行为,这种行为会由于来自集体而变得异常强大,杀人者并没有罪恶感,反倒认为自己干了一件非常有功德的事情,由于自己得到了无数同胞的赞同和支持,因此他这样认为是理所当然的。这种事从法律的角度来考虑的话,我们可以说是一种犯罪行为,但从心理学上将这样的行为却不能认为是犯罪行为。
在某些问题上,一大群人和一小撮人相比,能做出明智而独立的决定的可能性更大。在心理学范畴,这种观念是错误的,但并不影响其得到普遍的认同。
Serializable接口
Serializable接口概述Serializable是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象。例如,我们可以将序列化对象写入文件后,再次从文件中读取它并反序列化成对象,也就是说,可以使用表示对象及其数据的类型信息和字节在内存中重新创建对象。
而这一点对于面向对象的编程语言来说是非常重要的,因为无论什么编程语言,其底层涉及IO操作的部分还是由操作系统其帮其完成的,而底层IO操作都是以字节流的方式进行的,所以写操作都涉及将编程语言数据类型转换为字节流,而读操作则又涉及将字节流转化为编程语言类型的特定数据类型。而Java作为一门面向对象的编程语言,对象作为其主要数据的类型载体,为了完成对象数据的读写操作,也就需要一种方式来让JVM知道在进行IO操作时如何将对象数据转换为字节流,以及如何将字节流数据转换为特 ...
分布式文件存储-FastDFS
FastDFS简介FastDFS体系结构 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务、如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传,下载等服务。
FastDFS架构包括Tracker Server和Storage Server。客户端请求Tracker Server进行文件上传、下载,通过Tracker Server调度最终由Storage Server完成文件上传和下载。
Tracker Server作用是负载均衡和调度,通过Tracker Server在文件上传时可以根据一些策略找到Storage Server提供文件上传服务。可以将Tracker称为追踪服务器或调度服务器。Storage Server作用是文件 ...
SpringBoot自定义starter
SpringBoot自定义starterstarter:
1、这个场景需要使用到的依赖是什么?
2、如何编写自动配置
12345678910111213@Configuration //指定这个类是一个配置类@ConditionalOnXXX //在指定条件成立的情况下自动配置类生效@AutoConfigureAfter //指定自动配置类的顺序@Bean //给容器中添加组件@ConfigurationPropertie结合相关xxxProperties类来绑定相关的配置@EnableConfigurationProperties //让xxxProperties生效加入到容器中自动配置类要能加载将需要启动就加载的自动配置类,配置在META-INF/spring.factoriesorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoCo ...