- 浏览: 9478 次
- 性别:
- 来自: 杭州
最新评论
文章列表
手动实现简单的线程池
写在前面:
本文使用了 BlockingQueue 作为线程池实现的数据结构,利用生产者/消费者思想进行多任务的处理。
实现方式比较简单,并没有完全实现所有方法,本文可作为线程池和同步队列的入门学习参考。
受限于博主的姿势水平,本文中的一些方法肯定存在优化的空间及更好的实现方式,欢迎探讨。
基于 spring-boot 编写,测试。
1. 自定义线程池接口
package com.getthrough.threadpool.mythreadpool;
/**
* <p>This interface is a top inte ...
spring boot 特性之 Logging
【日志格式】
spring boot 默认的日志输出格式如下:
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localho ...
JS 跨域请求
【什么是跨域】
当浏览器请求的目标地址(接口)与请求发出地的 ip 、端口、协议不同时,请求将会出错。
例如:“No 'Access-Control-Allow-Origin' header is present on the requested resource”;
如果只在前台做了跨域处理 ...
使用 BufferedReader 犯的一个错
- 博客分类:
- 工作便签
使用 BufferedReader 读取文件数据,由于数据是设备按格式生成导出的,因此需要按行读取,分割,然后取值。
这里,我在读取文件时,while 条件里通过 bufferedReader.read() 读取到的字节是否为 -1 进行判断,结果,每一行的第一个字节(字符)都在读取时丢失了:
// 传入 fileAddress 文件路径
BufferedReader br = new BufferedReader(new FileReader(new File(fileAddress)));
int len;// 用于记录读取到的字节,范围在 0 - 65535
w ...
spring boot 特性
【启动相关】
1. 启动应用
在启动应用类的 main 方法中调用 SpringApplication 的 run():
public static void main(String[] args) {
SpringApplication.run(MySpringConfiguration.class, args);
}
2. 启动失败
如果应用启动失败了,FailureAnalyzers 会获取错误信息,并得到一个具体解决该问题的办法。
比如,8080 端口被占用,你可能会看到如下信息:
**************** ...
记录一些零碎
【MYSQL】
连接方式。连接 mysql 服务器可以通过 tcp/ip,也可以通过 socket(仅限于本地) 。当在连接命令中指定 mysql 服务器 ip 时,连接方式为 tcp/ip 。当连接命令中不指定连接 ip 或 或者 ip 为 localhost 时,连接方式为 socket。如果使用 socket 连接时,mysql 默认从 /tmp 目录下寻找 mysql.sock 文件,如果没有找到,并且没有在全局选项文件里指定,那么会报“Can't connect to local MYSQL server through socket '/tmp/mys ...
使用 spring boot
本文会更加深入使用 spring boot 的细节,包含 如何构建应用,自动配置以及启动应用几个话题。尽管 spring boot 并没有太多特殊的地方(其实你可以把它当作一个类库使用),只是如果有如下的一些提示,开发过程会更简单而已。
一、【应用构建】
强烈建议使用支持依赖管理的构建工具,提议使用 Maven 或者 Gradle。也可以使用其他构建系统,如 Ant,但是它们并没有得到 spring boot 很好的支持。
1.1 依赖管理
每一次 spring boot 版本的推出都会提供该版本支持的依赖列表。在实践中,你不需要为配 ...
Chapter 1
【去哪儿找】
spring boot 官网地址:https://projects.spring.io/spring-boot/
spring boot 2.0文档地址:https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-documentation
【获得帮助】
查看 How-to documents 文档,这里提供了一些最普遍问题的解决方案。
spring boot 是构建在众多 spring 工程之上的。在 spring.i ...
Spring 整合 ActiveMq
- 博客分类:
- Java
Spring 整合 ActiveMq
整合步骤如下:
添加依赖
连接 mq 消息服务器
定义生产者/消费者
发送/接收消息
添加依赖
<properties>
<spring_version>4.2.4.RELEASE</spring_version>
</properties>
<dependencies>
<!--Spring-->
<dependency>
<groupId>org.springframewo ...
Java内存泄漏
什么是内存泄漏?
内存泄漏指的是存在“不再使用但持有引用”的对象,它们无法被GC回收,占用了内存的现象。轻微的内存泄漏不容易被察觉,严重的内存泄漏容易导致OOM(out of memory)。
哪些操作可能导致内存泄漏?
使用静态集合或数组而没有及时使用清除指向对象的引用导致;
使用 Set 集合保存对象,当修改对象属性后,无法通过该对象删除导致;
没有及时释放资源连接(IO连接,数据库连接,Socket网络连接等)导致,应在 finally 块中释放资源;
外部类持有内部类的引用没有及时清除;
模块之间方法调用,在参数中传递 ...
本文属性文件的读取主要针对于传统spring框架的项目。
主要介绍以下三种方式:
[1] 通过 spring 支持的 xml 标签,加载属性文件;
[2] 通过 spring 注解获取属性值;
[3] 通过字节流读取,按规则存储在容器类中。
方式一、在 xml 标签中指定属性文件位置
<!-- 可以通过 * 通配符方式加载多个属性文件 -->
<context:property-placeholder location="classpath:config.properties"/>
config.properties ...