![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
开 端
所有的知识、你能吸收多少,更取决于自己,自律性!(好比一座山,能搬有多少看自己的努力)
展开
-
Thread守护线程判断每位员工是否可以下班,要求员工时间大于或等于8小时才能够下班
设置守护线程判断每位员工是否可以下班,要求员工时间大于或等于8小时才能够下班package com.tw.thread;import lombok.SneakyThrows;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Random;import java.util.concurrent.TimeUnit;/** * @title: W原创 2022-02-24 10:33:56 · 329 阅读 · 0 评论 -
Java Web实现 使用浏览器从服务器下载文件
Java Web实现 使用浏览器从服务器下载文件。代码实现:package com.juneyaoair.util;import lombok.SneakyThrows;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileInputStream;import java.io.IOEx原创 2022-02-23 08:36:08 · 2611 阅读 · 1 评论 -
系统安全相关知识学习
系统安全相关知识学习1. 系统安全是什么一般人只有当系统被侵入之后才会意识到网络安全非常重要,往往看到问题的时候都只是表面现象,是否能够找到根本原因并进行修复,才是安全投入的关键安全的本质就是保护数据被合法地使用,怎么才叫做被合法的使用呢?我们可以从机密性、完整性、可用性这三个方面具体来看,这三个方面也是安全领域最为基础的3个安全原则安全原则:机密性、完整性、可用性,我们可以简称为CIA三元组,是安全的基本原则1.1. 机密性机密性用一句话来说就是,确保数据只被授权的主体访问,不被任何为授权的原创 2022-01-06 08:00:00 · 5164 阅读 · 0 评论 -
SpringCloud服务网关
1. 对外服务的难题微服务架构的应用系统的体系非常庞大的,光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪和链路聚合,还用kafka和MQ之类的消息中间件,加上按照业务域拆分的微服务组件和模块,一个小的系统非常轻松的就能弄出20多个module,会有这么多的部署包。我们前面都是采用localhost加端口的方式直接访问,如果这些服务一并都要提供给外部用户访问那该怎么处理?开发在各个页面给不同的请求配置URL和端口号,但是一大堆的URL在我们的前端进原创 2021-12-29 08:00:00 · 194 阅读 · 0 评论 -
Failed to introspect Class [org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyC
今天碰到一个版本的问题,搭建gateway、idea运行。maven工程来的。起初运行一直卡在这,无法进入SpringBoot启动的界面java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.gateway.config.GatewayAutoConfiguration.propertiesRouteDefinitionLocator at org.springframework.原创 2021-12-27 12:00:30 · 3832 阅读 · 0 评论 -
什么是线程安全
一个无状态Select@NotThreadSafepublic class StatelessFactoreizer implements Servlet { private Long count = 0L; public Long getCount() { return count; } @Override public void service(ServletRequest servletRequest, ServletResponse s原创 2021-12-17 14:36:44 · 195 阅读 · 0 评论 -
DatagramChannel 数据传输
在java中使用UDP传输数据比TCP更加简单。和socket的TCP不同,UDP不是面向连接的协议。使用UDP时,只要知道服务器IP和端口就可以直接向对方发送数据。在java中使用DatagramChannel来处理UDP的数据传输。public class UDPClient { public static void main(String[] args) { new UDPClient().send(); } @SneakyThrows public原创 2021-12-08 10:44:43 · 604 阅读 · 0 评论 -
FileChannel 文件通道
FileChannel是专门操作文件通道,通过FileChannel,即可以从一个文件读取数据,也可以将数据写入文件中。 FileChannel为阻塞模式,不能设置为非阻塞模式FileChannel文成文件复制的实战案例。具体的功能使用FileChannel将原文件 复制一份,把原文件的数据都复制到目标文件中: /** * NIO FileChannel 复制文件 * * @param srcPath * @param destPath */原创 2021-12-07 15:02:24 · 351 阅读 · 0 评论 -
Spring AOP 概念
连接点(join point):对应的是具体被拦截的对象,因为spring只能支持方法,所以被拦截的对象往往就是指特定的方法,例如我们提到UserServiceImpl 的 printUser方法就是一个连接点,AOP将通过动态代理几十把它织入对应的流程中。切点(point cut):有时候,我们的切面不单单应用于单个方法,也可能是多个类的不同方法,这时...原创 2021-11-22 10:13:34 · 486 阅读 · 0 评论 -
Spring Boot 开发自己的拦截器
/** * -- Created with IntelliJ IDEA. * -- @REMARK: * -- @Author: tanwei * -- @Date: 2021/11/16/1:31 下午 * -- @Description: */public interface HelloService { public void sayHello(String name);}/** * -- Created with IntelliJ IDEA. * -- @REMARK:原创 2021-11-16 17:13:11 · 384 阅读 · 0 评论 -
Spring 初始化 生命周期
生命周期我们在项目使用过程中很常见的要求。为了解决这些问题,我们有必要了解Spring IoC初始化和销毁Bean的过程,这便是Bean的生命周期的过程,它大致分为Bean定义、Bean初始化、Bean的生存期和Bean的销毁4个部分。 Spring 通过我们的配置,如@ComponentScan定义的扫描路径去找到带有@Componet的类,这个过程就是一个资源定位的过程。 一旦找到了资源,那么它就开始解析,并且将定义的信息保存起来。注意,此时还没有初始化Bean,也就没有Bean的实例,它的仅仅是原创 2021-11-14 09:26:36 · 261 阅读 · 0 评论 -
SpringBootJPA 原生《upate、select 》sql写法
@Resource EntityManager entityManager; @Transactional @Override public Long addRemark(AddRemarkDTO req) { RemarkInfoPO remarkInfoPO = new RemarkInfoPO(); DCBeanUtils.copy(req, remarkInfoPO); RemarkInfoPO po = re...原创 2021-04-28 15:50:21 · 213 阅读 · 0 评论 -
SpringBootJpa 实现多条件复杂查询and (xx ord xx)
首先定义一个接口继承JpaRepository 和JpaSpecificationExecutor。package com.yaoyanshe.crf.dao;import com.yaoyanshe.crf.model.CrfMo;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;原创 2021-03-30 16:54:18 · 607 阅读 · 4 评论 -
SpringJPA-自动生成实体类
安装步骤:import com.intellij.database.model.DasTableimport com.intellij.database.model.ObjectKindimport com.intellij.database.util.Caseimport com.intellij.database.util.DasUtilimport java.io.*import java.text.SimpleDateFormat/*Available context bindi原创 2021-03-29 16:11:45 · 416 阅读 · 0 评论 -
SpringCloud服务网关
1.1. 对外服务的难题微服务架构的应用系统的体系非常庞大的,光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪和链路聚合,还用kafka和MQ之类的消息中间件,加上按照业务域拆分的微服务组件和模块,一个小的系统非常轻松的就能弄出20多个module,会有这么多的部署包。我们前面都是采用localhost加端口的方式直接访问,如果这些服务一并都要提供给外部用户访问那该怎么处理?开发在各个页面给不同的请求配置URL和端口号,但是一大堆的URL在我们的前原创 2021-02-23 15:35:32 · 381 阅读 · 0 评论 -
Spring Boot 自定义Controller切面日记拦截
@Retention(RetentionPolicy.RUNTIME)//注解会在class中存在,运行时可通过反射获取@Target(ElementType.METHOD)//目标是方法@Documented//文档生成时,该注解将被包含在javadoc中,可去掉public @interface Logger { /** * 模块名字 */ String name() default ""; /** *方法 */ Stri原创 2021-01-25 14:28:55 · 530 阅读 · 0 评论 -
controller拦截请求报文统一输出报文
package com.yaoyanshe.masterdata.framework.filter;import com.alibaba.fastjson.JSONObject;import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import原创 2020-12-21 13:29:06 · 304 阅读 · 0 评论 -
集合分割算法
```javapackage com.example.springsouress.com.utils;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;/** * -- Created by IntelliJ IDEA. * -- REMARK: * -- User: jerry * -- Date: 2.原创 2020-12-10 14:33:52 · 297 阅读 · 0 评论 -
比较同对象属性值、取出不同属性
public static <T> Object compare(T obj1, T Obj2) throws Exception { HospitalBaseInfo unOfficialDto = new HospitalBaseInfo(); Field[] fs = obj1.getClass().getDeclaredFields(); Field[] fields = Obj2.getClass().getDeclaredFields(); Field原创 2020-12-04 18:38:59 · 314 阅读 · 0 评论 -
分页多线程执行ThreadPoolTaskExecutor
public class ScheduleConfig implements SchedulingConfigurer { @Bean(name = "initTaskExecutor") public ThreadPoolTaskExecutor initTaskExecutor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setCorePoolSize(原创 2020-12-03 13:26:24 · 312 阅读 · 0 评论 -
DateUtil封装高效实践
public class DateUtil { private DateUtil() { } public static final String yyyyMMdd = "yyyyMMdd"; /** * 英文简写(默认)如:2010-12-01 */ public static final String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 如:2010-12-01 23:15:原创 2020-11-20 17:17:48 · 121 阅读 · 0 评论 -
StringUtils封装重复利用
public class StringUtils { private static final AtomicInteger incUnique = new AtomicInteger(); private StringUtils() { } public static String nameMask(final String name) { if (isBlank(name)) { return name;原创 2020-11-20 17:16:24 · 228 阅读 · 0 评论 -
XxJobConfig调度任务配置
@Slf4j@Data@Configuration@ComponentScan(basePackages = "cn.edc.wechat.edcwechatpublic.config")public class XxlJobConfig { @Value("${xxl.job.admin.addresses}") private String adminAddresses; @Value("${xxl.job.executor.appname}") priva原创 2020-11-20 17:03:48 · 983 阅读 · 0 评论 -
微信公众号开发者模式
@ApiOperation(value = "验证") @RequestMapping(value = "/verify_wx_token") public void verifyWXToken(HttpServletRequest request, HttpServletResponse response) throws Exception { coreServlet.doGet(request, response); coreServlet.doP...原创 2020-11-20 17:01:56 · 119 阅读 · 0 评论 -
钉钉自定义关键字实现
DingTalkClient client = new DefaultDingTalkClient(didiUrl); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("text"); OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text(); tex...原创 2020-11-20 16:52:47 · 542 阅读 · 0 评论 -
mvn install 配置文件自动切换命令
mvn clean package -Pdev<build> <!-- 包名 --> <finalName>SE-Monitor-Svc-web</finalName> <extensions> <extension> <groupId>org.apache.maven.archetype</groupId&g原创 2020-11-20 16:49:32 · 307 阅读 · 0 评论 -
elasticsearch配置注入索引
@Data@AllArgsConstructor@NoArgsConstructor@Document(indexName = “#{appConfig.trial}”, type = “trialData”)public class EsTrialData {@IdString id;@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")Date updateTime;}@Data@Configuration原创 2020-11-20 16:45:56 · 304 阅读 · 0 评论 -
分布式事务
分布式事务在传统的数据操作中,数据库本身就是提供了ACID的相关特性操作,但是由于业务数据增大数据眼里导致我们不是得不将数据分到多个表中,如果还在一个库里还可以使用CID原则,只要两个分在不同的数据库上ACID原则不能实现,数据就会出现不一致。特性:原子性、一致性、隔离性、持久性要掌握分布式需要了了解一下的概念CAP原理ACID原理与BASE原理基于XA协议的两个阶段提交:在实际应用中因为提交过程比较复杂、如果提交中出现失败就会导致数据挂起状态书屋补偿机制 理解起来非常简单,实现比较复杂原创 2020-07-29 06:44:29 · 91 阅读 · 0 评论 -
使用Nacos作为注册/配置中心
一个更易于构建云原生的动态服务发现、配置管理、服务管理平台 Naming&Configuration&service = Nacos功能: 动态的服务配置 服务发现和管理 动态的DNS服务SpringCloud Neffix全家桶如何对比 相当于:Eureka_confing+Bus(Nacos)https://github.com/alibaba/nacos/tags2. 安装Tar -zxvf单机模式启动./startup.sh -m standal.原创 2020-07-10 17:54:41 · 723 阅读 · 0 评论 -
GC详解
分代收集算法Yuans: GC频繁区域old:GC次数少Perm代:不会生产GCGC四大算法一、引用计数法: 计算器维护麻烦、 循环引用无法处理二、复制算法:每次存回的对象,都会被从form区和enden区等复制到to区Form和to会放生一次交换;优点:没有标记和清除算法过程!效率高!没有内存碎片缺点: 需要浪费双倍的空间Eden区,对象存活效率极低! 推荐使用复制算法。三、标记清除算法老年代推荐使用优点:不需要额外空间!缺点:两次扫描,耗时较为严重,会产生内存原创 2020-07-08 10:41:27 · 237 阅读 · 0 评论 -
springBoot自动配置原理分析
// 表示只是一个配置类、和以前编写的配置文件一样@Configuration(proxyBeanMethods = false)// 指定配置文件,httpProperties 对应我们编程配置文件,假设配置文件中有就有配置文件,没有就用默认值@EnableConfigurationProperties(ServerProperties.class)//ConditionalOnXX Spring底层注解@ConditionalOnWebApplication(type = Conditiona原创 2020-07-02 09:51:50 · 132 阅读 · 0 评论 -
JAVA单例模式讲解
public class Hungry { private Hungry(){} private final static Hungry HUNGRY = new Hungry(); public static Hungry getHUNGRY() { return HUNGRY; }}public class LazyMan { private static boolean asasasas= false; priv原创 2020-06-27 11:58:30 · 82 阅读 · 0 评论 -
Volatile三种状态
Volatile1.保证可见性(JMM)2.不保证原子性(原子性)3.禁止指令重排(单列模式、 CAS )public class Demo01 { // private static int num = 0; private volatile static int num = 0;// volatile 保证可见性 public static void main(String[] args) throws InterruptedException {原创 2020-06-27 10:54:03 · 143 阅读 · 0 评论 -
Thread辅助方法
public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { //CountDownLatch 默认的初始化 CountDownLatch countDownLatch = new CountDownLatch(6); for (int i = 0; i < 6; i++) { n原创 2020-06-27 09:34:52 · 153 阅读 · 0 评论 -
数据切分的设计方案
1. 数据的切分实现方式简单来讲,就是讲存放在一台数据库上的数据分布到多台数据库上,形成了一个分布式数据库,大致我们数据的拆分方式分为两种1.1. 垂直切分常用于我们的微服务设计中,不同的业务领域存放不同的表,比如用户模块存放我们用户相关表,外部调用通过服务访问用户模块,用户模块再去访问对应的数据库跨库来实现我们数据的join连接,就会导致查询性能极大的下降垂直切分的优缺点优点拆分后业务更清晰,规则明确系统之间耦合降低,便于扩展数据维护简单缺点部分业务表无法join,只能通过接口原创 2020-06-27 08:16:38 · 594 阅读 · 0 评论 -
服务发现、负载均衡
一、ServiceKubernetes 中 Pod 是随时可以消亡的(节点故障、容器内应用程序错误等原因) ,重新拉起以后容易发生IP变化。作为后台服务集群的话很不稳定,我们需要一个稳定的接口,ip来访问,这个就是Service。Service 是 Kubernetes 中的一种服务发现机制:Pod 有自己的 IP 地址Service 被赋予一个唯一的 dns nameService 通过 label selector 选定一组 PodService 实现负载均衡,可将请求均衡分发到选定这一组原创 2020-06-27 08:14:53 · 1598 阅读 · 0 评论 -
k8s-进阶-存储
一、总览Kubernetes 目前支持多达 28 种数据卷类型(其中大部分特定于具体的云环境如 GCE/AWS/Azure 等),如需查阅所有的数据卷类型,请查阅 Kubernetes 官方文档 Volumes二、Secret-实战secret 数据卷可以用来注入敏感信息(例如密码)到容器组。可以将敏感信息存入 kubernetes secret 对象,并通过 Volume(数据卷)以文件的形式挂载到容器组(或容器)。secret 数据卷使用 tmpfs(基于 RAM 的文件系统)挂载。mysqp原创 2020-06-27 08:11:25 · 1146 阅读 · 0 评论 -
DevOps&Jenkins
一、DevOps1、什么是DevOpsDevelopment和Operations的组合词;DevOps: Development 和 Operations 的组合DevOps 看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、 发布更加快捷、频繁和可靠。DevOps 希望做到的是软件产品交付过程中 IT 工具链的打通,使得各个团队减少时间损 耗,更加高效地协同工作。专家们总结出了下面这个 DevOps原创 2020-06-27 08:05:32 · 1521 阅读 · 0 评论 -
k8s-进阶-工作负载
<center> <h1> k8s-进阶-工作负载 </h1> </center># 一、控制器 Pod(容器组)是 Kubernetes 中最小的调度单元,您可以通过 kubectl 直接创建一个 Pod。**Pod 本身并不能自愈(self-healing)**。如果一个 Pod 所在的 Node (节点)出现故障,或者调度程序自身出现故障,Pod 将被删除;同理,当因为节点资源不够或节点维护而驱逐 Pod 时,P原创 2020-06-27 08:02:03 · 2445 阅读 · 0 评论 -
数据架构切分的设计方案
1. 数据的切分实现方式简单来讲,就是讲存放在一台数据库上的数据分布到多台数据库上,形成了一个分布式数据库,大致我们数据的拆分方式分为两种1.1. 垂直切分常用于我们的微服务设计中,不同的业务领域存放不同的表,比如用户模块存放我们用户相关表,外部调用通过服务访问用户模块,用户模块再去访问对应的数据库跨库来实现我们数据的join连接,就会导致查询性能极大的下降垂直切分的优缺点优点拆分后业务更清晰,规则明确系统之间耦合降低,便于扩展数据维护简单缺点部分业务表无法join,只能通过接口原创 2020-06-27 07:59:08 · 370 阅读 · 0 评论