JAVA
文章平均质量分 64
明明说JAVA
每一位工程师都有着年薪百万的梦想,那我们就一起努力为这个梦想而奋斗!!!
展开
-
JAVA导出CSV文件出现中文乱码
今天公司项目出现一个csv文件导出乱码问题,各种编码都试过了,就是不行但是输出流设置一下BM标识就可以了上代码 oOutput = oResponse.getOutputStream(); oOutput.write(0xef);//设置这个 oOutput.write(0xbb);//设置这个 oOutput.write(0xbf);//设置这个 oOutput.write(outData);原创 2022-03-09 20:08:38 · 1780 阅读 · 0 评论 -
JAVA基础学习之常量与变量
一、首先先认识标识符1.什么标识符标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。2.标识符的命名规则• 标识符可以由字母、数字、下划线(_)和美元符($)组成,不 能以数字开头• 标识符严格区分大小写• 标识符不能是Java关键字和保留字(后续讲解)• 标识符的命名最好能反映出原创 2022-02-25 14:54:24 · 223 阅读 · 0 评论 -
remote: invalid credentials fatal: Authentication failed
解决办法:执行如下命令,重置权限验证信息git config --system --unset credential.helper可以了原创 2021-11-23 11:04:24 · 1847 阅读 · 0 评论 -
Java使用aop+反射实现自定义注解
什么是注解注解用来给类声明附加额外信息,可以标注在类、字段、方法等上面,编译器、JVM以及开发人员等都可以通过反射拿到注解信息,进而做一些相关处理常用注解@Override 只能标注在子类覆盖父类的方法上面,有提示的作用@Deprecated 标注在过时的方法或类上面,有提示的作用@SuppressWarnings(“unchecked”) 标注在编译器认为有问题的类、方法等上面,用来取消编译器的警告提示,警告类型有serial、unchecked、unused、all原创 2021-07-14 17:31:07 · 642 阅读 · 0 评论 -
Kafka海量日志收集
一、安装Kafkakafka下载地址:http://kafka.apache.org/downloads.htmlkafka需要zk,此处省略zk安装kafka安装步骤1.解压kafka2.进入kafak解压文件的conf目录修改配置文件 server.propertieslisteners=PLAINTEXT://172.17.0.15:9092 #本机ip地址zookeeper.connect=172.17.0.15:2181 #zk的地址3.如果是云服务器有内网外网ip的情况,修改原创 2021-07-13 16:23:59 · 338 阅读 · 0 评论 -
java反射常用操作
什么是反射Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁使用反射机制可以动态获取当前class的信息 比如方法的信原创 2021-07-13 16:22:58 · 137 阅读 · 0 评论 -
Docker安装步骤 基于Docker搭建Maven私服 Docker部署GitLab环境搭建
介绍Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到安装步骤Docker 要求 CentOS 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本uname -r使用 root 权限登录 Centos。确保 yum 包更原创 2021-05-29 00:52:40 · 98 阅读 · 0 评论 -
spring框架基础学习之路
一、IoC控制反转IoC控制反转,全称Inverse of Control,是一种设计理念由代理人来创建与管理对象,消费者通过代理人来获取对象IoC的目的是降低程序与程序之间直接耦合加入IoC容器将对象统一管理,让对象关联变为弱耦合二、DI依赖注入IoC是设计理念,是现代程序设计遵循的标准,是宏观目标DI(Dependency Injection)是具体技术实现,是微观实现DI在Java中利用反射技术实现对象注入(Injection)三、Spring的含义Spring可从狭义与原创 2021-05-22 16:11:52 · 160 阅读 · 0 评论 -
SpringCloud微服务学习之Feign-服务间通信与调用
服务间的调用现有的服务调用方式Erueka:http://ip:port/pathRibbon:http://serviceName/pathFeign解决了什么问题:简化远程调用Feign的调用方式:@FeignClient(“service-name”)创建Feign的消费实列1.创建项目feign-consumer修改pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="ht原创 2021-05-22 16:10:13 · 353 阅读 · 0 评论 -
SpringCloud微服务学习之Ribbon-负载均衡
什么是负载均衡学微服务了,应该都知道吧,我这不解释了!走进Ribbon一个HttpRequest发过来,先被转发到Eureka上。此时Eureka仍然通过服务发现获取了所有服务节点的物理地址,但问题是他不知道该调用哪一个,只好把请求转到了Ribbon手里。 IPing IPing是Ribbon的一套healthcheck机制,故名思议,就是要Ping一下目标机器看是否还在线,一般情况下IPing并不会主动向服务节点发起healthcheck请求,Ribbon后台通过静默处理返回true默认表原创 2021-05-21 15:22:53 · 82 阅读 · 0 评论 -
MyBatis学习之MyBatis进阶
一、MyBatis日志管理什么是日志a. 日志文件是用于记录系统操作事件的记录文件或文件集合b. 日志保存历史数据,是诊断问题以及理解系统活动的重要依据实现 1. 首先引入依赖 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId>原创 2021-03-29 22:11:50 · 98 阅读 · 0 评论 -
Mybatis学习之Mybatis基础入门学习
一、什么是MyBatisMyBatis是优秀的持久层框架MyBatis使用XML将SQL与程序解耦,便于维护MyBatis学习简单,执行高效,是JDBC的延伸二、MyBatis开发流程引入MyBatis依赖创建核心配置文件创建实体(Entity)类创建Mapper映射文件初始化SessionFactory利用SqlSession对象操作数据...原创 2021-03-27 17:58:02 · 116 阅读 · 0 评论 -
JS使用Base64加密算法对密码进行加密传输到后台JAVA进行解密 前端密码加密传输
1.需要jquery.base64.js文件,如需文件请私聊或者自己下载2.JS代码 <script type="text/javascript"> /* 加密方法。没有过滤首尾空格,即没有trim. 加密可以加密N次,对应解密N次就可以获取明文 */ function encodeBase64(mingwen,times){ var code=""; var num=1; if(typeof times=='undefined'||t原创 2021-01-26 20:21:21 · 1494 阅读 · 1 评论 -
如何实现分布式锁 分布式锁的解决方案
一、什么是超卖举例:某件商品库存数量10件,结果卖出了15件二、超卖现象一系统中库存为1,但是产生了两笔订单解决方法扣减库存不在程序中进行,而是通过数据库向数据库传递库存增量,扣减1个库存,增量为-1xian - 在数据库update语句计算库存,通过update行锁解决并发三、超卖现象二系统中库存变为 -1产生原因:并发检验库存,造成库存充足的假象,update更新库存,导致库存为负数解决方法:校验库存、扣减库存统一加锁,使之成为原子性的操作,并发时只有获得锁的原创 2020-09-24 18:08:25 · 208 阅读 · 0 评论 -
Redis实现分布式会话 使用Token实现登录注册 分布式会话拦截器 Token实现请求拦截 SpringBoot整合拦截器
1.用户注册时生成Token@ApiOperation(value = "用户注册", notes = "用户注册", httpMethod = "POST") @PostMapping("/regist") public IMOOCJSONResult regist(@RequestBody UserBO userBO, HttpServletRequest request,原创 2020-09-17 10:06:01 · 602 阅读 · 0 评论 -
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempt
1.maven引入的驱动jar包版本的问题,因为我本来安装的数据库版本高报错时引入的jar <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.41</version> </dependency>原创 2020-09-16 21:46:06 · 387 阅读 · 0 评论 -
SpringBoot整合Redis及Redis如何实现缓存功能 SpringBoot整合Redis哨兵 Redis缓存穿透的解决方案 缓存雪崩
一、修改pom文件 <!-- 引入 redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>二、修改yml文件spring: redis: # Redis原创 2020-09-14 10:40:15 · 194 阅读 · 0 评论 -
redis主从架构 哨兵模式
一、主从复制1.主从架构就是读写分离2.主从原理:就是全量的数据复制,主节点的RDB文件从内网传输,传给从节点,从节点下载然后写入3.修改redis.conf文件配置主从复制# replicaof <masterip> <masterport>行下加入replicaof 192.168.152.138 6379# masterauth <master-password>行下加入masterauth 123456注释:192.168.152.138为主节原创 2020-09-11 16:58:39 · 61 阅读 · 0 评论 -
Redis的安装 什么是分布式架构 分布式架构优点 分布式架构缺点
一、什么是分布式架构1.不同的业务(功能模块)分散部署在不同的服务器2.每个子系统负责一个或者多个不同的业务模块3.服务之间可以相互交互与通信4.分布式设计对用户透明5.可以发展为集群分布式系统架构(微服务架构是分布式系统中的一种)二、分布式架构优点1.业务解耦2.系统模块化,可重用化3.提升系统并发量4.优化运维部署效率三、分布式架构缺点1.架构复杂2.部署多个子系统复杂3.系统之间通信耗时4.新人融入团队缓慢5.调试复杂四、设计原则1.异步解耦2.幂等一致性3.拆原创 2020-09-09 11:28:09 · 296 阅读 · 0 评论 -
Nginx实现高可用之Nginx集群负载均衡 Nginx构建Tomcat集群 upstream 指令参数
一、四层负载均衡1.F5硬负载均衡2.LVS四层负载均衡3.Haproxy四层负载均衡4.Nginx四层负载均衡二、七层负载均衡1.Nginx七层负载均衡2.Haproxy七层负载均衡3.apache七层负载均衡七层负载均衡基本处理http协议的用于web服务器如tomcat,四层负载均衡主要处理tcp,udp协议。三、DNS地域负载均衡根据服务器ip,就近原则,提高访问速度...原创 2020-09-03 18:29:07 · 275 阅读 · 0 评论 -
Nginx实现高可用之Nginx安装与运行 Linux环境下安装并运行Nginx详细步骤
一、安装Nginx1.去官网http://nginx.org/下载对应的nginx包也可以使用我的:2.上传nginx到Linux系统3.安装环境依赖a.安装gcc环境yum install gcc-c++b.安装PCRE库,用于解析正则表达式yum install -y pcre pcre-develc. zlib压缩和解压缩依赖,yum install -y zlib zlib-develd.SSL安全的加密的套接字协议层,用于HTTP安全传输,也就是httpsyum i原创 2020-07-15 17:45:45 · 1799 阅读 · 2 评论 -
SpringBoot部署项目到服务器之SpirngBoot项目多环境部署
一、环境1.开发环境 dev2.测试环境 test3.生产环境 prod二、profile 提供多环境支持1.application.yml -> 主环境2.application-{name}.yml -> 环境配置(挂件)3.激活多环境 -> spring.profiles.active:{name}三、如何使用1.在application.yml 放入以下代码spring: profiles: active: dev 2.创建a原创 2020-07-14 14:56:36 · 273 阅读 · 0 评论