8 timchen525

尚未进行身份认证

我要认证

学而不思则罔,思而不学则殆!

等级
TA的排名 8k+

idea中maven依赖包识别不了的问题

项目开发过程中遇到依赖的jar包无法识别到,可以通过查看idea的help=>“Show log in finder”解决上面问题,只要删除掉本地的maven仓库相关的jar包即可。...

2020-03-30 22:20:51

共享变量在线程中的可见性问题分析

导致共享变量在线程间不可见的原因:1)线程交叉执行2)重排序结合线程交叉执行3)共享变量更新后的值没有在工作内存与主存间及时更新可见性-synchronizedJVM中关于synchronized的两条规定:1)线程解锁前,必须把共享变量的最新值刷到主内存2)线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值(注意:加锁和解...

2018-05-24 21:59:55

利用Swagger2 构建api文档

背景介绍:Swagger是一个用于java代码中写注解,然后可以通过访问指定的网页,自动生成接口文档,并且可以通过接口进行功能测试。使用介绍:(1)添加Maven依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</arti...

2018-11-12 21:26:06

idea 使用说明以及常用插件介绍

一、idea使用说明导入idea的配置(如果之前有配置好的idea的配置文件)设置idea的缺省配置文件(1)设置默认的jdk(2)设置默认的Maven仓库地址(3)设置默认的Java文件的头部格式(4)设置文件编码UTF8格式(重要)(5)设置点击Java 文件自动弹出对应的包列表(6)设置idea软件自身可以使用软件的内存大小idea...

2018-10-09 00:03:32

Java 动态代理

Java动态代理的实现有两种方式:1、jdk 自带的动态代理2、spring 中的cglib实现的动态代理区别:jdk自带的动态代理一定要有接口interface类,而cglib不需要。(1)基本信息UserInfoService.java 类:public interface UserInfoService { String getUserNa...

2018-10-08 22:42:47

guava SimpleTimeLImiter进行方法超时调用控制

1、基于类级别的调用(1)编写接口类UserInfoService.javapublic interface UserInfoService { String getUserName() throws InterruptedException;}(2)编写对应的实现类UserInfoServiceImpl.javapublic class UserInfoServ...

2018-09-29 21:38:47

自定义log4j Appender

MySQL中可以自定义Appender,这里给出一个自定义的将日志输出到指定的文件的appender:1、继承AbstractAppender类FileAppender.class@Plugin(name = FileAppender.FILE_APPENDER, category = "Core", elementType = Appender.ELEMENT_TYPE, pr...

2018-09-27 22:10:27

Spring boot 多数据源配置

这里讲下如何在一个Spring Boot项目中配置多个数据源:Mave中添加依赖:<!-- Spring Boot Mybatis 依赖 --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring...

2018-09-26 23:46:46

Spring 不通过注解加载bean

工具类:SpringUtil@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContex...

2018-09-06 22:29:25

Spring boot 具体化类和配置来缩短单元测试时间

我们在写完业务代码之后,都需要编写测试用例来验证代码逻辑是否正确,这样不仅方便自己后期检查,也方便后面接手的人快速测试我们的代码。编写测试用例时,我们可以通过如下快捷键:ctrl+shift+T,然后会出现如下提示:点击,Create New Test....通常,只是帮助我们生成一个包下对应的类,以及方法名,然后我们在类上面,简单粗暴的添加:@RunWith(Sprin...

2018-08-22 22:52:44

一种MySQL 分类查询方法

在开发过程中,经常会遇到需要对不同的分类情况下获取相应分类下制定排序的前N条数据。一种比较慢的办法是先查询总共有几个分类,然后根据分类id再去获取前N条数据,这样一共需要进行1+N次数据库查询。这里给出一种,可以只根据一条MySQL语句查询,然后把查询结果在JAVA代码中进行处理获取需要的结果。举个栗子:1、 创建表 tb_infocreate table tb_info(...

2018-08-16 21:54:24

Spring 事务 注解@Transaction 用法

在实际开发中,对于一组数据库操作特别是增删改操作,为了保证原子性,通过需要用事务来控制,要么全部成功,要么全部失败。Spring中可以通过注解@Transaction常用的方法如下: @Transactionalpublic void testTransaction(User user) { int rowNum = userMapper.insertUser(user);...

2018-08-09 00:06:12

一种Spring web 统一异常处理切面设计

这里给出一种对控制层处理错误时,会抛出异常,导致返回给客户端的数据比较奇怪,因此,给出一个统一异常处理的类,ExceptionHandle,具体结构如下:具体代码如下:具体代码如下:@ControllerAdvice@Slf4jpublic class ExceptionHandle { @ExceptionHandler(value = Exception...

2018-07-24 23:32:57

谈ThreadLocal中InheritableThreadLocal的用法以及ThreadLocalUtil类

例子1:public class TestThreadLocal { public static ThreadLocal<Integer> threadLocal = new ThreadLocal<>(); public static void main(String[] args) { threadLocal.set(n...

2018-07-24 23:31:11

一种多层级机构数据库表设计的思路

在实际开发过程中,经常存在多个层级结构的设计,而且多个层级结构还需要排序。这里通过将多级结构的数据在同一张表中(无需多张表进行关联),并通过level的巧妙设计来实现单表查询。level的设计原则:0.*.* 其中,0是顶级结构,第一个*是顶级结构下的结构,第二个*是顶级结构下的结构下的结构。举个栗子:1、创建部门架构表:CREATE TABLE department ( ...

2018-07-23 21:39:33

java web中通过fork join来子任务拆分提高处理速度

场景分析: 在项目中,我们可能一次会请求较多数据(比如:一千条),此时,我们可以用fork/join将一次请求分解成N个子任务(每个任务请求1000/N条数据),假如一次请求一千条耗时5s,则我们分解子任务后耗时大概只需要5/N秒多一点。这里各处fork join的demo例子,如下所示举个栗子:@Slf4jpublic class ForkJoinTaskExample extends Rec...

2018-07-13 22:33:40

Spring MyBatis generator自动生成配置

1、需要在pom.xml中添加插件配置:<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <configuration> &l...

2018-07-10 22:10:56

Java 注解的原理及自定义注解

1、@Deprecated与SupressWarnings("deprecation")对于废弃的方法,我们会用注解@Deprecated来显示注解表示,但是有的时候我们用了废弃的@Deprecated注解,会出现中横线,如果用了废弃的方法,又不想显示横线,可以添加注解@SupressWarnings("deprecation")举个栗子:public class DeprecateExample...

2018-07-09 22:07:39

Spring 线程池定时监控

在上一篇Spring异步线程池:https://blog.csdn.net/timchen525/article/details/80672186,该文介绍了如何使用Spring的注解来配置异步线程操作。本篇博文中,补充介绍如何通过Spring定时任务来配置定时检测线程池的使用情况。ThreadPoolExecutor线程池提供了如下几个方法:getTaskCount():线程池已执行和未执行的任...

2018-07-09 21:59:53

Java中如何存储金额的问题

背景分析:在实际开发过程中,对于金额(一般是元为单位)前端输入一般为小数点两位,比如:1.10,小数点第二位到分。而且数据库的存储粒度可以为分或者元,如果为分,则传入的值需要乘以100。解决方法:前端传入的的为小数点2位(小数点合法的位数是2位,大于2位前端和服务端都要校验),服务端这边用Decimal来接收金额类型数据,数据库存储的类型可以为bigInt(此时传入的Double或者Decimal...

2018-07-05 21:11:48

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。