自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一大三千的博客

已迁移至 https://yidasanqian.github.io 备用 https://sanqian.ga

  • 博客(124)
  • 资源 (10)
  • 收藏
  • 关注

原创 BeanFactory和FactoryBean接口的区别

Spring版本:5.1.3.RELEASEBeanFactory接口: String FACTORY_BEAN_PREFIX = "&"; Object getBean(String name) throws BeansException; <T> T getBean(String name, Class<T> requiredType) throws B...

2019-04-03 11:50:42 1496

原创 Fix:Skipping MapperFactoryBean with name ‘xxxMapper' mapperInterface

解决Spring Boot应用整合Mybatis启动输出警告日志:[main] o.m.s.mapper.ClassPathMapperScanner - Skipping MapperFactoryBean with name 'channelMapper' and 'io.github.yidasanqian.dao.ChannelMapper' mapperInterface. Bean ...

2019-04-01 17:15:46 14994

原创 Spring Boot启动流程源码分析

Spring Boot启动流程源码分析版本:2.1.1.RELEASE使用main方法启动Spring Boot应用: public static void main(String[] args) { SpringApplication.run(DingtalkApplication.class, args); }进入SpringApplication类的r...

2019-03-29 15:49:01 476

原创 一个用Python实现的高可用低延迟的高匿IP代理池 -- HAipproxy的使用

本文只记录HAipproxy在Scrapy爬虫框架中的使用,前提是你已部署服务端。可以查看haipproxy具体使用说明。如果在部署方面碰到问题可以评论,我看到会帮忙解决。下载源码并解压https://github.com/SpiderClub/haipproxy/archive/master.zip有两种方式调用IP代理池:Python客户端squid二级代理我用的是第...

2018-05-11 12:31:49 4151

原创 Spring Boot + Guava Cache缓存应用实战

Guava Cache缓存应用实战问题背景实际项目碰到一个上游服务商接口有10秒的查询限制(同个账号)。项目中有一个需求是要实时统计一些数据,一个应用下可能有多个相同的账号。由于服务商接口的限制,当批量查询时,可能出现同一个账号第一次查询有数据,但第二次查询无数据的情况。解决方案基于以上问题,提出用缓存的过期时间来解决。这时,可用Redis和Guava Cache来...

2018-05-07 11:47:59 5121 2

原创 HTTP同步客户端类RestTemplate在微服务中的使用

在Spring Cloud中使用依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt; &lt;artifactId&gt;spring-cloud-starter-netflix-eureka-client&lt;/artifactId&gt;&lt;/depen...

2018-04-17 10:22:49 1341

原创 Java8新特性整理之新的时间和日期API(终章)

前言Java8之前我们使用Date和Calendar这两个类处理时间,但有的特性只在某一个类有提供,比如用 于以语言无关的方式格式化和解析日期或时间的DateFormat方法就只在Date类里有。DateFormat方法也有它自己的问题。比如,它不是线程安全的。这意味着两个线程如果尝试使用同一个formatter解析日期,你可能会得到无法预期的结果。最后,Date和Calendar类...

2018-02-22 10:30:57 4668

原创 Java8新特性整理之CompletableFuture:组合式、异步编程(七)

使用CompletableFuture构建异步应用Future 接口的局限性Future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的:将两个异步计算合并为一个——这两个异步计算之间相互独立,同时第二个又依赖于第一个的结果。等待 Future 集合中的所有任务都完成。仅等待 Future集合中最快...

2018-02-13 09:10:08 67681 15

原创 Java8新特性整理之Optional取代Null引用(六)

java8之前如何避免空指针异常相信大家在开发中都会碰到NullPointerException 空指针异常导致程序停止的情况。下面就来谈谈在java8之前如何避免空指针异常。一个拥有汽车及汽车保险的客户。Person.javapublic class Person { private Car car; public Car getCar() { ret...

2018-02-12 11:53:47 1195

原创 Java8新特性整理之接口的默认方法(五)

默认方法默认方法由default修饰符修饰,并像类中声明的其他方法一样包含方法体。比如,你可以像下面这样在集合库中定义一个名为 Sized的接口,在其中定义一个抽象方法size,以及一个默认方法isEmpty:public interface Sized { int size(); default boolean isEmpty() { r...

2018-02-11 09:14:58 512

原创 Java8新特性整理之构建流的方式(四)

流的创建方式由值创建流你可以使用静态方法Stream.of,通过显式值创建一个流。它可以接受任意数量的参数。Stream&lt;String&gt; stream = Stream.of("Java 8 ", "Lambdas ", "In ", "Action"); stream.map(String::toUpperCase).forEach(System.out::pr...

2018-02-08 13:43:24 422

原创 Java8新特性整理之流的介绍与使用(三)

流是什么官方定义:支持顺序和并行聚合操作的元素序列。这里有几个关键词,顺序、并行、聚合、元素序列。所谓顺序就是单线程顺序执行,并行就是多线程分解执行,聚合就是将顺序或并行执行的结果计算后得出最终结果,元素序列则是将数据源(数组,文件,集合等)流化后的数据结构。流与集合上面说的还是有些不明朗,下面结合Java中的集合(Collection)来进一步解释流。Java现有的集

2018-02-07 15:33:48 571

原创 Java8新特性整理之方法引用(二)

方法引用语法目标引用 ::方法的名称例子截取字符串的Lambda表达式(str, i) -> str.substring(i) 等效的方法引用String::substring 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们.构建方法引用方法引用主要有三类: - 指向静态方法的方法引用(例如Integer的pa

2018-02-06 10:09:37 606

原创 Java8新特性整理之Lambda表达式(一)

前言JDK1.8是Oracle在2014年3月19日发布正式版的,到现在差不多接近四年了,最近公司新项目都使用JDK1.8来开发了。这里总结下JDK8中常用的特性,部分内容整理自《Java 8 In Action》 并加上自己的理解,如有出入欢迎批评指正(✪ω✪)Lambda表达式语法(parameters) -> expression或(parameters)

2018-02-05 14:12:56 627

原创 【开源项目】Dynamic-add-date的使用

介绍Dynamic-add-date是基于Mybatis插件原理开发的可以动态在Insert和Update Sql语句中添加日期列和对应的值的插件。 要求Maven支持jdk7及之后的版本MySql(其它数据库暂未测试)功能自定义要生成的日期列的名称自动处理原始Sql语句中已包含自定义日期列名支持批量插入、批量更新Sql日期列的生成支持忽略表,表名支持正

2018-01-31 17:18:24 476

原创 【Java】IntelliJ IDEA 插件推荐

Random Image Background插件提供可配置的随机图像背景插件地址:https://github.com/allandequeiroz/random_image_background_any_jetbrains_plugin.gitAlibaba Java Coding GuidelinesJava代码规约插件地址:https://github.com/al...

2018-01-31 17:03:39 4459

原创 Spring Boot+Guava Cache+@EnableCaching

Spring Boot集成Guava Cache并配合@EnableCaching注解管理本地缓存依赖dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-cacheartifactId>dependency>dependency> gro

2018-01-09 15:03:31 5240

原创 spring boot+atomikos+mybatis+druid分布式事务实现

配置数据源新建配置类DataSourceConfig:public class DataSourceConfig { private static final String PRIMARY_MAPPER_BASE_PACKAGE = "io.github.yidasanqian.mapper.master"; private static final String BUSINESS_M

2017-12-29 17:19:34 5597 5

原创 Linux下Redis集群搭建与测试

集群搭建准备条件一台已经配置好Redis服务的虚拟机,地址为:192.168.2.100:6379克隆6台,使用命令nmtui修改地址分别为:192.168.2.101192.168.2.102192.168.2.103192.168.2.104192.168.2.105192.168.2.106 由于集群的容错机制是超过半数的节点认为某节点挂掉就确认挂掉,因此我们搭建的集群最好是奇数

2017-12-16 13:49:38 7427

原创 Linux之设置服务为开机自启动

添加Tomcat开机自启动服务编辑vi /usr/local/tomcat8/bin/startup.sh在#!/bin/sh下方添加#chkconfig: 2345 80 90#description:tomcat auto start#processname: tomcat建立软连接ln -s /usr/local/tomcat8/bin/startup.sh /etc/rc.d/init.

2017-12-05 15:14:53 591

原创 error Your local changes to the following files would be overwritten by merge

解决步骤 git pull origin master --allow-unrelated-histories如果出现以下错误:error: Your local changes to the following files would be overwritten by merge如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:git stashgit pull origi

2017-11-24 16:48:41 1021

原创 mysql5.7 Access denied for user 'root'@'localhost'

用mysqld --skip-grant-tables来重新启动mysql,然后再修改密码UPDATE user SET authentication_string=PASSWORD('root') where USER='root';

2017-11-22 13:20:20 1439

原创 Spring Boot之分离测试和生产环境的应用配置

多环境应用配置将默认不变的配置,设置在application.properties文件中。新建开发环境下的属性文件application-dev.properties,将开发中的配置,设置在该文件中。新建生产环境下的属性文件application-prod.properties,将生产中的配置,设置在该文件中。最后在application.properties文件中配置:## 开发/测试/生产环境分

2017-11-14 13:43:45 7376

原创 Spring Boot之配置虚拟映射路径

需要先在application.properties属性文件中配置本地上传文件的路径:spring.http.multipart.location=D:/crowd-funding/media/然后将本地上传文件的路径加入到静态资源路径中即可:spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/re

2017-11-07 17:36:44 19391 6

原创 将数据从Java Bean复制到另一个Java Bean

将数据从一个对象复制到另一个对象使用Spring的BeanUtils在开发中我们常会在对象之间设置属性值:Order order = new Order();order.setOrderAmount(orderDTO.getOrderAmount());order.setOrderStatus(orderDTO.getOrderStatus());order.setPayStatus(orde

2017-11-03 10:28:45 26172

原创 解决由于设置BatchExecutor批量执行器而导致无法获取自增Id的问题

在Mybatis中有三种Executor: - SimpleExecutor – SIMPLE 就是普通的执行器。 - ReuseExecutor -执行器会重用预处理语句(prepared statements) - BatchExecutor –它是批量执行器这些就是Mybatis的三种执行器。你可以通过配置文件的settings里面的元素defaultExecutorType,配置它,默

2017-11-02 13:31:06 3127

原创 Oracle11gR2 for Linux 静默安装

使用yum快速部署Oracle安装环境(11g)从http://public-yum.oracle.com/getting-started.html下载对应Linux版本的yum库文件。查看Linux版本信息命令:cat /etc/issue下载到目录 /etc/yum.repos.d/ 下使用yum安装oracle-rdbms-server-11gR2-preinstall包:yum instal

2017-10-20 13:17:00 1426

原创 Mysql服务器无法存emoji表情的解决方案

使用Mysql服务器的utf8字符编码,在存入emoji表情时会报异常:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 原因:utf8是三字节,utf8mb4是4字节而emoji表情也是4字节。解决方法:修改mysql配置文件my.cnf(windows为my.i

2017-10-20 10:13:03 4906 3

原创 Mybatis插件开发原理

Mybatis插件说明MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterOb

2017-10-19 08:52:30 696

原创 Mybatis使用注解的方式CRUD包括批量插入更新

定义一个Mapper接口:@Mapper@Repositorypublic interface ConfigMapper {}查询注解@Select:@Select("select * from config where id=#{id}")Config findById(Long id);删除注解@Delete:@Delete("delete from config where id=#{

2017-10-17 16:41:06 12089 2

原创 --author 'yidasanqian' is not 'Name <email>' and matches no existing author

修改git项目的作者信息,提交时遇到错误:--author 'yidasanqian' is not 'Name <email>' and matches no existing author只需要在该项目的.git/config 文件中添加节点:[user] name = yidasanqian email = [email protected]以上

2017-09-28 12:39:44 9464 1

原创 org.hibernate.AnnotationException: No identifier specified for entity

启动应用时报以下错误:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/H

2017-09-27 17:00:15 791

原创 Failed to transfer file could not determine the type of file "ftp

使用Intellij IDEA部署项目到远程服务器时报如下错误:Uploading to (服务器ip) failed: could not list the contents of folder "ftp://服务器ip/". Failed to transfer file 'D:\IdeaProjects\target\TogetherCrowdfunding\WEB-INF\classes\c

2017-08-14 13:19:40 5760

原创 Spring Boot Jpa之构建动态SQL查询语句

Spring Boot Jpa构建动态SQL查询语句引入依赖包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>DAO接口继承JpaSpecificationExecutor<T>。该接

2017-05-22 16:44:19 35538 3

原创 Spring Boot Jpa之CascadeType

Spring Boot Jpa之CascadeTypeJPA允许您传播从父实体到子级的状态转换。为此,JPA javax.persistence.CascadeType定义了各种级联类型:ALL 级联所有实体状态转换PERSIST 级联实体持久化操作。MERGE 级联实体合并操作。REMOVE 级联实体删除操作。REFRESH 级联实体刷新操作。DETACH 级联实体分离操作。此外,Ca

2017-05-22 13:53:27 25632 4

原创 Set DISPLAY environment variable, then re-run.

export DISPLAY=127.0.0.1:1.0设置DISPLAY为服务器内网IP地址加上1.0

2017-03-17 20:03:54 8995

原创 ./runInstaller: line 97: /home/oracle/database/install/.oui: Permission denied

解决方法:用root用户登录,切换到database目录的上级目录下,依次执行以下命令:chown -R oracle:install database chmod -R 755 database最后文件权限如下图:

2017-03-16 18:54:03 14348

原创 java实现手机短信验证的基本思路

整体流程:客户填入手机号,通过客户端点击获取验证码按钮,验证手机号是否有效(这只在客户端验证手机号),是则浏览器发送ajax请求后台,客户端开始倒计时60s,否则返回;服务器,验证手机号是否被注册或有效,是则调用第三方的短信通信接口并发送相关数据(包括手机号和验证码),然后回调结果,成功则将验证码存入session,失败则返回提示,否则返回。客户收到验证码后在有效时间内,填入并发送请求。服务

2016-09-30 23:53:39 36631 1

翻译 理解 REST

REST (Representational State Transfer)REST (Representational State Transfer) 网上比较容易理解的中文意译:表述性状态转移。REST是为分布式系统而设计的一种架构风格。它不是一个标准,而是一套约束集合,例如无状态性,client/server关联性和统一 的接口。REST不是严格地关联HTTP,但通常会将它们联系在一起。RE

2016-09-16 20:58:30 714

原创 解决Ubuntu下sublime text3无法输入中文的情况

我的环境ubuntu 16.04系统中已经有GCC了,但是这个GCC什么文件都不能编译,因为没有一些必须的头文件,所以要安装build-essential这个软件包,安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。可以在新立得里面搜索build-essential或输入下面命令:sudo apt-ge

2016-08-17 16:14:27 849

LaunchMode

LaunchModeDemo android四种启动模式Demo。 配合此文http://blog.csdn.net/u011726984/article/details/49456287 风味更佳。

2015-10-27

activity-lifecycle

activity 生命周期详解http://blog.csdn.net/u011726984/article/details/49361345 配合此文风味更佳

2015-10-23

activit整合SSH三大框架demo

测试环境 Windows STS Mysql5 Jdk1.8 Tomcat8 Maven3 Struts2 + Spring4 + Hibernate3 + Activiti5.17 希望对你们有所帮助!

2015-08-03

白中英计算机组成原理1~8章ppt课件

白中英计算机组成原理1~8章ppt课件,总共8章

2015-06-23

Java Web整合开发王者归来光盘内容和PDF文档

Java Web整合开发王者归来光盘内容和PDF文档

2015-02-20

基于C#的学生成绩管理系统

基于C#语言写的学生成绩管理系统。包含数据库文件,使用的工具是vs2013和sql server2012。里面的功能可自行添加/修改

2015-01-22

sqlserver2012管理对象安装包

在用VS2013连接SQL2012生成实体模型的时候出现Could not load file or assembly 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one 所需的安装包

2014-12-10

常用中文字符

中国常见的文字字符集,做网页验证码时有用。发上来共享。

2014-12-05

tk.eclipse.plugin.htmleditor_2.2.0

tk.eclipse.plugin.htmleditor_2.2.0插件是eclipse的html编辑器

2014-07-25

GEF-ALL-3.7.2

GEF(Graphical Editing Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很多,例如:UML类图编辑器、图形化XML编辑器、界面设计工具以及图形化数据库结构设计工具等等。

2014-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除