自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java 日期按月拆分周

1.严格按照所在月份拆分 /** *严格按照所在月份拆分 * @param startDate 2021-12 * @return */ public static List<String> getWeekDay(String startDate) { LocalDate date = LocalDate.parse(startDate+"-01"); // 该月第一天 ..

2021-12-27 12:41:04 962

原创 list分批

<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version></dependency&gt.

2021-11-11 17:34:12 410

原创 Java 递归树结构

​ public class TreeUtil { /** * 两层循环实现建树 * * @param treeNodes 传入的树节点列表 * @return */ public <T extends TreeNode> List<T> bulid(List<T> treeNodes, Object root) { List<T> trees .

2020-10-27 13:59:39 254

原创 mysql 别人无法连接问题

use mysql;update user set host = '%' where user = 'root'; flush privileges;# 这里还是将密码设置为之前的设置的123456alter user 'root'@'localhost' identified with mysql_native_password by '123456';use mysql;

2020-09-24 09:47:01 448

原创 解决 线程无法使用注入的service类

import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotyp...

2019-06-06 13:40:23 1195

原创 数据分批 mysql批量插入

import java.util.ArrayList;import java.util.List;public class SplitBatch { public static <T> List<List<T>> split(List<T> resList, int count) { if (resList...

2019-06-06 13:34:23 2026

原创 spring boot 静态方法使用 读取配置文件的内容

import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.core.env.Environment;import org.springframework.stereotype.Component;...

2019-06-06 13:29:16 4704 2

原创 js 正则表达式 以字母开头,英文、数字、下划线和减号 6-20位

function checkWechatAccount(v){ var reg = /^[a-zA-Z]([-_a-zA-Z0-9]{6,20})$/; if(!reg.test(v)){ document.getElementById("wechatAccount").value=""; $("#wechatAccountError").show()...

2018-05-16 16:19:17 33438 1

转载 SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存

   原文:https://blog.csdn.net/aqsunkai/article/details/69757017(一)在pom.xml中添加依赖:[html] view plain copy&lt;properties&gt;      &lt;shiro.version&gt;1.3.2&lt;/shiro.version&gt;  &lt;/properties&gt;  [html...

2018-05-07 17:24:16 285

原创 二维码+logo+base64

package com.info.utils.qrCode;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.File;...

2018-05-07 14:24:38 390

转载 MySQL关联关系association:1对1关联的三种方法

原文出自:http://blog.csdn.net/soonfly/article/details/63688288 本篇主要讲关联关系:一对一关系与一对多关系。 先建5个表: DROP TABLE IF EXISTS `category`;CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `...

2018-05-07 11:04:26 7029

jacob-1.18工具包.zip

jacob-1.18 包含jacob-1.18-x64.dll jacob-1.18-x86.dll 亲测可用: 下面为转pdf使用方法 package com.pdf.doctopdf.pdf; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; import java.io.File; public class TestJacob { public static void main(String args[]) { ActiveXComponent app = null; String wordFile = "C:\\Users\\admin\\Desktop\\jar\\年会系统优化_20210820_V0.2.docx"; String pdfFile = "C:\\Users\\admin\\Desktop\\jar\\测试pdf.pdf"; System.out.println("开始转换..."); // 开始时间 long start = System.currentTimeMillis(); try { // 打开word app = new ActiveXComponent("Word.Application"); // 获得word中所有打开的文档 Dispatch documents = app.getProperty("Documents").toDispatch(); System.out.println("打开文件: " + wordFile); // 打开文档 Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch(); // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在 File target = new File(pdfFile); if (target.exists()) { target.delete(); } System.out.println("另存为: " + pdfFile); // 另存为,将文档报错为pdf,其中word保存为pdf的格式宏的值是17 Dispatch.call(document, "SaveAs", pdfFile, 17); // 关闭文档 Dispatch.call(document, "Close", false); // 结束时间 long end = System.currentTimeMillis(); System.out.println("转换成功,用时:" + (end - start) + "ms"); }catch(Exception e) { e.getMessage(); System.out.println("转换失败"+e.getMessage()); }finally { // 关闭office app.invoke("Quit", 0); } } }

2021-11-30

finalShell

个人感觉比xshell使用方便,免费,上传文件时直接上传至下面所选文件目录

2018-11-14

xshell6+xftp6

xshell校园版 里面包含xshell和xftp 校园版和付费版的差别是 一次支持打开的窗口数量不同,一般校园版的就够用了

2018-08-30

java反编译工具

java反编译工具 解压得到.exe 直接将jar拉到里面即可查看

2018-08-20

winRar解压

Winrar解压工具 便宜实用,买不了吃亏 买不了上当

2018-08-20

xshell6-plus破解版

xshell6全家桶 集成xftp6 破解版 方便快捷亲测可用.........................................................

2018-08-16

EDAS-HSF-BOOT

EDAS 生产者 消费者 api 齐全 环境配好既可以使用................................................................

2018-08-15

年终总结ppt

年终总结ppt模板,完美解决............................................................................................................

2018-08-10

springCloud

一 服务启动 此项目集成了:Feign,Spring Cloud Bus,hystrix,swagger-ui,zuul-filter,配置中心功能 1)安装rabbitMQ 2)启动cloud—eureka :此时可访问 localhost:8761 3)启动 cloud-config 此处为配置中心 项目使用了配置中心 配置中心的文件内容为:https://gitee.com/baidu_zhu/spring-cloud-config-master 注意 :自动刷新需配置 (https://gitee.com/uploads/images/2018/0604/171503_012913a2_1940446.jpeg "1528103642(1).jpg") (https://gitee.com/uploads/images/2018/0604/171519_4eed2756_1940446.jpeg "1528103642(1).jpg") 4)启动 cloud-provide 此处swagger-ui,定时器,自定义拦截器 功能 5)启动 cloud-consumber 此处有Feign,hystrix功能 此时访问http://127.0.0.1:9000/hello 可获取到结果 6)启动 cloud-getaway 此处有zuul拦截器效果 访问http://127.0.0.1:9001/hello?token=token-uuid&password=123456 可获取到结果 二:服务介绍: 1) 服务的注册与发现 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud简介 Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud0 CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。 微服务架构 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 微服务的概念源于2014年3月Martin Fowler所写的章“Microservices”http://martinfowler.com/articles/microservices.html 微服务架构(Microservices Architecture) 微服务架构的核心思想是,一个应用是由多个小的、相互独立的、微服务组成,这些服务运行在自己的进程中,开发和发布都没有依赖。不同服务通过一些轻量级交互机制来通信,例如 RPC、HTTP 等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。简单的来说,一个系统的不同模块转变成不同的服务!而且服务可以使用不同的技术加以实现! 微服务设计 那我们在微服务中应该怎样设计呢。以下是微服务的设计指南: 职责单一原则(Single Responsibility Principle):把某一个微服务的功能聚焦在特定业务或者有限的范围内会有助于敏捷开发和服务的发布。 设计阶段就需要把业务范围进行界定。 需要关心微服务的业务范围,而不是服务的数量和规模尽量小。数量和规模需要依照业务功能而定。 于SOA不同,某个微服务的功能、操作和消息协议尽量简单。 项目初期把服务的范围制定相对宽泛,随着深入,进一步重构服务,细分微服务是个很好的做法。 关于微服务架构的取舍 在合适的项目,合适的团队,采用微服务架构收益会大于成本。 微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。 需要避免为了“微服务”而“微服务”。 微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。 更多关于微服务架构内容-请参考我的另一篇文章:《什什么是微服务架构?》 服务治理 由于Spring Cloud为服务治理做了一层抽象接口,所以在Spring Cloud应用中可以支持多种不同的服务治理框架,比如:Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,我们可以无缝地切换服务治理实现,并且不影响任何其他的服务注册、服务发现、服务调用等逻辑。 Spring Cloud Eureka Spring Cloud Eureka来实现服务治理。 Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。 2)Feign Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。 使用Feign,只需要创建一个接口并注解,它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解,Feign支持可插拔的编码器和解码器,Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 Feign 具有如下特性: 可插拔的注解支持,包括Feign注解和JAX-RS注解 支持可插拔的HTTP编码器和解码器 支持Hystrix和它的Fallback 支持Ribbon的负载均衡 支持HTTP请求和响应的压缩Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单。它整合了Ribbon和Hystrix,从而不再需要显式地使用这两个组件。Feign还提供了HTTP请求的模板,通过编写简单的接口和注解,就可以定义好HTTP请求的参数、格式、地址等信息。接下来,Feign会完全代理HTTP的请求,我们只需要像调用方法一样调用它就可以完成服务请求。 简而言之:Feign能干Ribbon和Hystrix的事情,但是要用Ribbon和Hystrix自带的注解必须要引入相应的jar包才可以。 3)Spring Cloud Bus Spring Cloud Bus 将分布式系统的节点通过轻量级消息代理连接起来。用于在集群中传播状态更改(例如配置更改事件)或其他管理指令。Spring Cloud Bus 的一个核心思想是通过分布式的启动器对 Spring Boot 应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用 AMQP 消息代理作为通道,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上 消息总线 消息总线是一种通信工具,可以在机器之间互相传输消息、文件等。消息总线扮演着一种消息路由的角色,拥有一套完备的路由机制来决定消息传输方向。发送段只需要向消息总线发出消息而不用管消息被如何转发。 Spring cloud bus 通过轻量消息代理连接各个分布的节点。管理和传播所有分布式项目中的消息,本质是利用了MQ的广播机制在分布式的系统中传播消息,目前常用的有Kafka和RabbitMQ 。 下面是一个配置中心刷新配置的例子 1、提交代码触发post请求给bus/refresh 2、server端接收到请求并发送给Spring Cloud Bus 3、Spring Cloud bus接到消息并通知给其它客户端 4、其它客户端接收到通知,请求Server端获取最新配置 5、全部客户端均获取到最新的配置 消息代理 消息代理(Message Broker)是一种消息验证、传输、路由的架构模式。消息代理是一个中间件产品,它的核心是一个消息的路由程序,用来实现接收和分发消息,并根据设定好的消息处理流来转发给正确的应用。它包括独立的通信和消息传递协议,能够实现组织内部和组织间的网络通信。设计代理的目的就是为了能够从应用程序中传入消息,并执行一些特别的操作。 和组织间的网络通信。设计代理的目的就是为了能够从应用程序中传入消息,并执行一些特别的操作。 现有的消息代理开源产品: ActiveMQ Kafka RabbitMQ RocketMQ 目前Spring Cloud Bus 支持 RabbitMQ 和 Kafka,spring-cloud-starter-bus-amqp 、spring-cloud-starter-bus-kafka RabbitMQ简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 Github:https://github.com/rabbitmq 官网地址:http://www.rabbitmq.com 安装RabbitMQ 安装RabbitMQ 可以参考之前的文章 CentOs7.3 搭建 RabbitMQ 3.6 单机服务: https://segmentfault.com/a/1190000010693696 CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集群服务: https://segmentfault.com/a/1190000010702020 Spring Boot 中使用 RabbitMQ: https://segmentfault.com/a/1190000011577243 4)断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果。 在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。 断路器示意图 SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多个层次的服务调用. 下面是微服架构下, 浏览器端通过API访问后台微服务的一个示意图: hystrix 1 一个微服务的超时失败可能导致瀑布式连锁反映,下图中,Hystrix通过自主反馈实现的断路器, 防止了这种情况发生。 hystrix 2 图中的服务B因为某些原因失败,变得不可用,所有对服务B的调用都会超时。当对B的调用失败达到一个特定的阀值(5秒之内发生20次失败是Hystrix定义的缺省值), 链路就会被处于open状态, 之后所有所有对服务B的调用都不会被执行, 取而代之的是由断路器提供的一个表示链路open的Fallback消息. Hystrix提供了相应机制,可以让开发者定义这个Fallbak消息. open的链路阻断了瀑布式错误, 可以让被淹没或者错误的服务有时间进行修复。这个fallback可以是另外一个Hystrix保护的调用, 静态数据,或者合法的空值. Fallbacks可以组成链式结构,所以,最底层调用其它业务服务的第一个Fallback返回静态数据.

2018-08-09

springboot-cxf-webservice

springBoot +webservice 的接口创建及调用 适合初学者

2018-08-09

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

TA关注的人

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