自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 Linux常用命令

ps -aux|grep nginx 列出所有的进程 并在其中查找。

2018-11-13 10:18:14 214

原创 windows10删除mysql服务出错

然后我看这个mysql项的父项原来是360safe,360把系统服务全都纳入到360父项下边了,360父项设置了restricted权限,而且restricted权限只有读取权限,现在替换成8.0,然后在注册表删除5.7版本数据的时候,提示删除出错。因为我电脑mysql5.7版本较老,之前是zip解压安装的服务。导致其子类也只有只读权限,所以网上的教程全都失灵。解决办法是卸载360,即可删除mysql项。

2023-06-30 02:49:27 198

原创 java8函数式接口&方法引用在实际项目中的应用

发现从20年开始,博客上出现了大量普及java stream流使用方法的文章.对于java8的函数式接口及方法引用,只是介绍了其基本的使用方式,没有讲怎么用在项目上. 基于我对函数式接口在项目上的使用经验,我觉得函数式接口有两大作用. 1.使代码有逻辑上的分层. 比如一些操作逻辑应该写在service层,而不是manger层,就可以用函数式接口,将逻辑写在service层,而真正实际上是在manger层进行执行的.这样的结构,逻辑边界更加清晰,明确了每个层级...

2021-06-22 11:11:06 1051 1

原创 idea快捷键

idea快捷键⌘ Command⇧Shift⌥ Option⌃ Control↩︎ Return/Enter⌫ Delete1.dea里大写shift+command+u2.移动某行shift+command+箭头3.删除多余importcontrol+option+o4.复制某行到下一行command+d5.展示最近的文件列表command+e6.⇧↩ 开始新的一行7.⌘⇧↩ 自动结束代码,行末自动添加分号8...

2021-05-20 10:58:54 343

原创 php学习

Php1.一、=>,->的意思:->是对象执行方法或取得属性用的=>是数组里键和值对应用的。二、用法1、=> 的用法数组中用于数组的key和value之间的关系例如:$a=array('0'=>'1','2'=>'4',);echo$a['0'];echo$a['2'];2、-> 的用法:类中用于引用类实例的方法和属性例如:classTest{var$var=0;fu...

2020-11-19 11:56:59 321

原创 springboot 多个redis配置

ConfigurationProperties() 注解会把配置文件里spring.redis开头的属性,赋值给bean里对应的对象.@Configuration@ConditionalOnProperty({"spring.redis.hostName"})@Import({TemplateRedisManager.class})public class RedisConfig { public static final String REDIS_TEMPLATE_BEAN = "xx

2020-09-18 19:57:32 1913

原创 为redis缓存的key定义通用枚举类

定义一个这样的枚举类,把要缓存的key的格式给定义下来,通过getCacheKey()方法来获取到缓存的key,这是一个不错的方式@AllArgsConstructor@Getterpublic enum CacheKey { /** * KEY_1("key1:","xx:%s:%s"), kEY_2("key2:", "xx:%s"); String biz; String prefix; public static St

2020-08-20 17:41:14 1475

转载 Redis数据结构-------有序集合

Redis数据结构---------有序集合有序集合和集合类似,只是说它是有序的,和无序集合的主要区别在于每一个元素除了值之外,它还会多一个分数。分数是一个浮点数,在Java中是 使用双精度表示的,对于每一个元素都是唯一的,但是对于不同元素而言,它的分数可以一样。元素也是String数据类型,也是一种基于hash的存储 结构。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为2^32 - 1,有序集合的数据结构。有序集合是依赖 key标示它是属于哪个集合,依赖分数进行

2020-08-17 14:15:21 744

原创 关于CompletableFuture.applyToEitherAsync和acceptEitherAsync的理解

CompletableFuture实现了CompletionStage接口,查看CompletionStage官方文档CompletionStage定义了计算阶段的三个分类:功能,消费者或可运行(分别为apply,accept或run)具体取决于是否需要参数和/或生成结果。例如:stage.thenApply(x -> square(x)) .thenAccept(x -> System.out.print(x)) .thenRun(() -> ...

2020-08-07 19:08:07 1136

原创 org.apache.commons.lang3包里的一些使用

1.RandomUtils :产生随机数例如:RandomUtils.nextInt(1, 100);

2020-07-29 14:49:46 1309

原创 POI生成excel文件并保存

关于excel文件,上传到云有两种方法(云的方法参数需要输入流)1.先在本地生成一个文件,然后将对象写入文件里,然后再获取文件的输入流,然后调用方法上传到云XSSFWorkbook wb = new XSSFWorkbook();…..File file = new File(EXCEL_DIR + fname); // 创建文件夹 Files.createParentDirs(file); XSSFWorkbook wb = new XSSFWorkbook()...

2020-07-29 11:05:43 1581 1

转载 Java Stream API groupingBy()介绍

groupingBy()是Stream API中最强大的收集器Collector之一,提供与SQL的GROUP BY子句类似的功能。使用形式如下:.collect(groupingBy(...));需要指定一个属性才能使用,通过该属性执行分组。我们通过提供功能接口的实现来实现这一点 - 通常通过传递lambda表达式。例如,如果我们想按长度对字符串进行分组,我们可以通过将String :: length传递给groupingBy()来实现:List<String> ...

2020-06-28 15:34:46 699

原创 java Calendar获取某个时间上个月的时间

java8的时间api很好用,但有的场景用Calendar也是很合适的 /** * 从当前时间获取上个月的第一天和最后一天 */ private void getPreMonthDate(String startDate) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = getPreMonth(st.

2020-05-27 15:33:58 4999

原创 java8时间api:LocalDateTime

有这样一个需求,通过给定的秒级时间戳,来算出n天后的时间戳,或者是字符串java8之前的时间api存在闰秒问题,所以如果要获取到准确的时间戳,最好用java8api,不要用当前时间戳加上每天的秒数来算.private String getDelayDaysString(Long stratTime, Integer n) { LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(strat.

2020-05-22 11:08:26 186

原创 guava包里一些类的运用

String str="a-b-c";List<String> attrs = Splitter.on("-").trimResults().splitToList();Splitter可以将字符串按照指定的分隔符进行分割

2020-05-22 10:41:52 255

原创 java8 api3:高阶函数

高阶函数就是其参数是个函数或者返回值是个函数,我觉得高阶函数也是java实现函数科里化的一个技巧此次举例的是入参是个函数返回值同样是个函数.比如我要实现,对一个数求乘法,然后再求以这个数以10为底的对数.实际上先求乘法是一个函数,然后再求对数是另一个函数所以我可以定义一个高阶函数,它的入参是实现了乘法的函数,它的返回值是实现了求对数的函数,即higherFunction.下...

2019-10-08 10:50:39 113

原创 java8 api体验2:集合转数组

public class Java8Tesmt3 { public static void main(String[] args) { // String集合转String数组 // 将数组转换List后,不能对List增删,只能查改,否则抛出 UnsupportedOperationException异常 List<Strin...

2019-09-24 17:37:33 441

原创 java8 api体验1:Comparator,Predicate

public class Java8Tesmt2 { public static void main(String[] args) { // 例1:比较器 // comparing的传参为一个函数接口Function,其有个抽象方法apply,方法返回要比较的值 // Integer a: 是入参,->: 把入参与Lambda...

2019-09-24 17:02:54 550

转载 Stream中关于collect方法的介绍

在Stream 的API中可以查到有两种collect方法,分别是:第一种:<R, A> R collect(Collector<? super T, A, R> collector);第二种:<R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> ac...

2019-08-21 15:26:47 3660

原创 @Bean的一种用法

先有一个bean @Bean public Queue queueMessages() { return new Queue("topic.messages"); }后一个bean需要以前一个bean为参数可以这样写: @Bean Binding bindingExchangeMessage(Queue queueMessag...

2019-08-21 11:01:26 609

原创 Mysql给已存在的表创建分区

用alter可以操作表增加分区ALTER TABLE `xxx_table`PARTITION BY RANGE (id)(PARTITION p1 VALUES LESS THAN (10000),PARTITION p2 VALUES LESS THAN (20000),PARTITION p3 VALUES LESS THAN (30000),PARTITION p4 ...

2019-08-06 17:11:55 6175

转载 数据量大时mysql limit查询优化方法

当网站达到一定的规模时,网站的各种优化是必须要进行的。 而网站的优化中,针对数据库各种优化是最重点的了。mysql数据库中的查询语句有关limit语句的优化。一般limit是用在分页的程序的分页上的,当应用数据量够小时,也许感觉不到limit语句的任何问题,但当查询数据量达到一定程度时,limit的性能就会急剧下降。 这个是通过大量实例得出来的结论。对同一张表在不同的地方取10条数据:...

2019-07-31 15:49:19 698

原创 Your kernel does not support swap limit capabilities, memory limited without swap

Edit the /etc/default/grub file.Set the GRUB_CMDLINE_LINUX value as follows:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"Save and close the file.Update GRUB.$ sudo update-grubRebo...

2019-07-24 15:57:45 277

转载 docker部署rabbitmq集群的实现方法

拉取rabbitmq management镜像docker pull rabbitmq:3.7-rc-management创建网络创建rabbitmq私有网络# docker network create rabbitmqnet# docker network lsNETWORK ID NAME DRIVER SCOPE65b44ea88...

2019-07-19 09:56:47 923

原创 unbuntu安装Docker及部署微服务

1.ubuntu上安装docker wget -qO- https://get.docker.com/ | sh2. 开启docekr监听2375端口,实现镜像远程添加vim /lib/systemd/system/docker.service在[Service]部分的最下面添加下面两行:ExecStart=ExecStart=/usr/bin/dockerd -H t...

2019-07-17 16:20:43 747

转载 基于Docker 部署MySQL 5.7

一、拉取 Docker Hub 官方提供的MySQL镜像docker pull mysql:5.7二、创建数据、日志存放路径mkdir -p ~/mysql/{data,logs}三、运行容器docker run -d --name mysql \ -v ~/mysql/data:/var/lib/mysql \ -e MYSQ...

2019-07-17 16:19:16 775

原创 update-rc.d: error: Default-Start contains no runlevels, aborting

首先这个用的系统应该ubuntu16.04以上的因为systemctl命令兼容service,我在/etc/init.d上创建了个脚本jiaoben用update-rc.d jiaoben defaults 设置默认级别然后用 systemctl enable jiaoben 来设置开机自启然后就是如上错误.根本原因是16.04以上的update-rc.d命令升级了,已经不能...

2019-07-02 16:38:22 11253 2

转载 syntax error near unexpected token '$'\r''

原因: 因为你所处理的文件换行符是dos格式的”\r\n” ; 可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m需要转换成linux/unix格式的”\n”; 具体转换办法就是转换换行符 。 可以用sed命令处理一下文件,命令如下: sed ‘s/\r//’ 原文件 >转换后文件 ; sed 命令的参数中 ”代...

2019-07-01 17:58:56 5352

原创 Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

因为没有切换管理员权限 sudo su

2019-06-18 23:24:22 5605 3

转载 捕获异常终止的线程信息

在单线程的开发过程中,通常采用try-catch的方式进行异常捕获,但是这种方式在多线程环境中会显得无能为力,而且还有可能导致一些问题的出现,比如发生异常的时候不能及时回收系统资源,或者无法及时关闭当前的连接…概述Java中有两种异常,即已知异常(编辑器会提示捕获或者抛出)和未知异常(特殊情况下发生),由于线程中的run()方法是不接受抛出语句的(只能内部捕获),所以在面对未知异常的情况,...

2019-06-14 10:38:06 388

原创 spring-boot项目集成quartz

开发的项目是将定时任务持久到mysql数据库中1.quartz数据库检表语句CREATE TABLE QRTZ_JOB_DETAILS ( SCHED_NAME VARCHAR(120) NOT NULL, JOB_NAME VARCHAR(200) NOT NULL, JOB_GROUP VARCHAR(200) NOT NULL, DESCRIP...

2019-06-12 10:54:56 288 2

原创 多数据源切换下保证事务解决方案

多数据源下要保证事务,实际上就是分布式事务,现在已经有阿里开源的seata来实现分布式事务了,不用自己造轮子,如果想自己实现,下边是一套方案.我的项目是基于mybatis-plus实现的,在因为mubatis-plus只是在mybatis上面做了封装,这套方案用于myabtis也是没问题的如果只是重写了AbstractRoutingDataSource方法,那么在事务下数据源是切换不了的,...

2019-06-12 10:46:52 4353 16

转载 Spring中使用注解 @Scheduled执行定时任务

注解@Scheduled 可以作为一个触发源添加到一个方法中,例如,以下的方法将以一个固定延迟时间5秒钟调用一次执行,这个周期是以上一个调用任务的完成时间为基准,在上一个任务完成之后,5s后再次执行:@Scheduled(fixedDelay=5000)public void doSomething() { // something that should execute...

2019-06-11 13:53:03 201

原创 基于拦截器的用自定义注解进行权限拦截

对于增删改接口,管理员权限能操作,用户权限不能操作.1. 定义一个注解类@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public @interface RoleOfAdmin { String value() default "admin";}2.重写Bean...

2019-05-17 13:59:14 830

原创 mybatis-spring包@MapperScan注解下的属性

源码:@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented@Import({MapperScannerRegistrar.class})public @interface MapperScan { String[] value() default {}; String[]...

2019-05-13 15:10:16 11143 4

转载 @Conditional注解使用

@Configurationpublic class Config { @Conditional(MyCondition.class) @Bean public String condition() { System.err.println("自定义的condition的match方法返回值为true时,才会进入该方法创建bean"); ...

2019-05-13 14:57:39 322

原创 Spring Boot中的 @ConfigurationProperties

看各种框架的spring boot版本,配置信息都写在yml或properties文件里了,这里实际上用了@ConfigurationProperties注解,源代码的流程很复杂,先看看怎么使用.方式1:注解加在类上@Component@ConfigurationProperties(prefix = "test")public class TestConfiguration { ...

2019-05-10 16:41:06 195

原创 @Resource 注解的一个用法

@Bean("readDataSources") public List<DataSource> readDataSources(){ List<DataSource> dataSources=new ArrayList<DataSource>(); dataSources.add(readDataSourceO...

2019-05-09 17:53:25 2607

原创 @Qualifier 注解的一种用法 测试

@Qualifier()括号内可以跟bean对象的名称,@Qualifier("xxx")可以将bean对象当做参数传入方法中@Configurationpublic class Test { @Bean(name = "db1") public Integer db1 () { return 1; } @Bean(name =...

2019-05-09 16:24:24 927

原创 Spring AOP不能切入类内部调用的方法 分析测试

类中有两个方法都有切面,如果在一个有切面的方法中,用this.调用另一个有切面的方法,会使被调用方法aop失效.因为aop是基于接口或者是基于类创建代理,而不是基于方法创建代理this指的是当前对象,当前对象是类,而不是代理类.不想失效,就把类本身注入进类里,通过ioc容器调用类,这样就能生成代理类,就不会失效了因为事务是用aop动态代理实现的,我们就测试一下事务失效的例子....

2019-05-06 18:14:42 1916

空空如也

空空如也

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

TA关注的人

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