433条记录
5 阅读
0 评论

SpringBoot报错:Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured

搭建SpringBoot时报错如下: Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-c...
2019年08月13日 22:38
2 阅读
0 评论

SpringBoot启动报错:WebServerException: Unable to start embedded Tomcat的解决方法

最近搭建springboot启动报错:org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 报错信息如下: org.springframework.cont...
2019年08月13日 22:26
12 阅读
0 评论

linux平台下Tomcat的安装与优化

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用...
2019年08月12日 21:48
20 阅读
0 评论

Https更换证书报错:no start line:Expecting: TRUSTED CERTIFICATE解决方法详解

今天帮忙朋友更换服务器Https证书遇到一个问题,更换证书后启动Nginx报错,报错详情如下: 2019/08/09 21:07:21 [emerg] 334#334: PEM_read_bio_X509_AUX("/var/www/edu-online/keys/api...
2019年08月09日 21:56
27 阅读
0 评论

JVM内存溢出、java.lang.OutOfMemoryError常见原因及解决办法

JVM 内存溢出会抛出 java.lang.OutOfMemoryError异常。让我们来聊聊OOM 原因及其解决方法。 1. Java heap space 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMe...
2019年07月30日 22:41
18 阅读
0 评论

Java中有wait和sleep延迟方法,那么wait和sleep有什么区别?

sleep源码如下: public class Thread implements Runnable { public static native void sleep(long millis) throws InterruptedException; public s...
2019年07月30日 12:23
9 阅读
0 评论

SpringBoot如何优雅的关闭应用程序 ?使用Actuator的shutdown即可

假设你要关闭运行中的应用程序。比方说,在微服务架构中,你有多个微服务应用的实例运 行在云上,其中某个实例有问题了,你决定关闭该实例并让云服务提供商为你重启这个有问题的 应用程序。在这个场景中,Actuator的/shutdown端点就很有用了。 为了关闭应用程序,你要往/shutdow...
2019年07月29日 12:17
10 阅读
0 评论

聊聊数据泄露的方式以及如何防止数据泄露

数据泄露几乎每天都发生。个人,包括金融和医疗数据泄露给网络犯罪分子以及情报机构。一些明显的违规行为包括Equifax违规行为,其中数十个个人数据字段被泄露,以及最近宣布的Marriott违规行为,其中违反了护照、信用卡和特定时间内人员的位置。我一直在做一些数据保护咨询以及数据保护产品的工作,并决定对...
2019年07月29日 12:16
11 阅读
0 评论

聊聊Spring Aop、JDK、Cglib代理

说说 Spring AOP 面向切面编程,在我们的应用中,经常需要做一些事情,但是这些事情与核心业务无 关,比如,要记录所有 update*方法的执行时间时间,操作人等等信息,记录到日志,通过 spring 的 AOP 技术,就可以在不修改 update*的代码的情况下完成该需求。&nbs...
2019年07月28日 21:13
25 阅读
0 评论

“扪心七问”如何让自己写得一手高质量好代码

前几天我在想——为什么写好代码这么难?尽管经过多年的努力、最佳实践、方法论和工具,但为什么业界仍然没有生产高质量的软件。而这些问题的答案也很简单。它涉及经济激励、市场现实、最后期限、正规教育、行业标准、市场上开发商数量不足等。作为一个组织,为了生产高质量的软件,你必须做很多事情。建立流程,使你的招聘...
2019年07月28日 16:52
21 阅读
0 评论

SpringBoot使用CaffeineCacheManager实现多重缓存配置

缓存几乎是每个应用程序性能的关键。有时需要分布式缓存,但并非总是如此。在许多情况下,本地缓存可以正常工作,不需要考虑分布式缓存的开销和复杂性。因此,在许多应用程序中,包括plain-spring和spring-boot,您可以在任何方法上使用@cacheable,它的结果将被缓存,以便下次调用该方法...
2019年07月28日 09:09
12 阅读
0 评论

反射Reflection是最重要的Java API

前几天我在想,哪一个是最重要的Java API。SE和EE API中的哪一个实现了Java生态系统的大部分框架、功能,而这不可能只是作为第三方库重新创建的。正如您可能已经通过标题猜到了,我认为是反射API。是的,它不可避免地、直接或间接的成为每个项目的一部分。但对于更多的API来说,这是正确的,特别...
2019年07月28日 08:18
19 阅读
0 评论

权限控制Shiro框架的核心知识点整理

Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个...
2019年07月27日 18:37
10 阅读
0 评论

高可用缓存Redis和memcached有什么区别?哪个更好用?详细的一份对比清单

使用 redis 或 memcached 之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。对于 redis 和 memcached我认为有如下区别:1.redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供 li...
2019年07月27日 18:30
13 阅读
0 评论

如何禁用Jquery $符号? jQuery中的noConflict()完美解决

jQuery使用$符号,作为jQuery的简写,但是有些情况我们希望$失效。JavaScript框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScriptMVC、GoogleWebToolkit、GoogleClosure、Ember、Ba...
2019年07月24日 18:05
54 阅读
0 评论

Java工具类:根据访问者IP获取访问者的国家、省市区域以及ISP运营商等信息

通过Java代码实现IP地址所在区域等信息获取是很难实现的,我们需要强大的IP库支持。好在淘宝提供了公益开源的IP信息获取接口,让我们能够轻松实现IP地址的具体信息的获取。(PS:淘宝提供的IP Url有每日调用次数限制,对于访问量大的网站可能要考虑缓存IP信息到本地库,减少对该Url的调用次数)。...
2019年07月20日 10:17
14 阅读
0 评论

Java Cookie工具类关于Cookie的移除、获取、写入的实现

在很多项目中,我们都会用到Cookie来读取一些会话等信息。例如登录、用户识别、防重复点击等。那么,如何用java实现对Cookie的简单管理呢? 一个完善的Java工具类实现Cookie的获取、移除、写入:package com.my.common.utils; import java.io...
2019年07月20日 09:57
10 阅读
0 评论

Java代码如何实现中文转拼音?工具包pinyin4j轻松实现中文转拼音

在一些Java项目中,我们希望根据中文名称自动生成一串拼音代号,那么我们该如何实现呢?自己写代码实现类似功能还是比较麻烦的,我们可以使用开源的此类工具包pinyin4j来实现。 首先,引入pinyin4j依赖包: <dependency> <groupId...
2019年07月20日 09:48
12 阅读
0 评论

SpringBoot 如何永久301跳转?SpringMVC301跳转代码实例

在一些项目中,例如博客、论坛等服务由于迁移了域名或者url访问地址发生了改变,我们希望原来被搜索引擎收录的请求仍然能访问到最新的内容地址,这时候我们需要对旧的Url做永久301至新的Url链接上。 对于这类需求,通常我们可以使用Nginx 301跳转,也可以在项目代码中实现301跳...
2019年07月20日 09:31
15 阅读
0 评论

Mockito如何mock多线程?教你如何用Mockito注入ThreadPoolTaskExecutor实例

Mockito是常用的写单元测试覆盖率的框架之一。在有的业务服务中,使用了多线程,这时候我们如何mock多线程呢?其实很简单,通过ReflectionTestUtils手动setter多线程实例即可。代码如下:import org.junit.Before; import org.junit.Te...
2019年07月18日 17:03