java工程师零基础自学专栏
文章平均质量分 80
苍何从零基础到最后进阿里,现在将这份笔记整理成专栏,希望对入局者有帮助
程序员苍何
大厂程序员/技术leader,爱编程,喜分享。专注于互联网技术分享、AI提效工具分享、职场经验分享,欢迎共同见证苍何的成长\(^ ^)/
展开
-
面试官:如何保证缓存和数据库的一致性?
数据不一致的主要原因还是先写缓存还是先更新数据库的问题,不正确的方案我们就不阐述了,省的增加同学们的负担。那么 PmHub 采用的就是 Cache Aside 模式来保证缓存和数据库的一致性。Cache Aside 模式其实就是读取数据时先检查缓存,缓存未命中则从数据库读取并更新缓存。写入数据时先更新数据库,然后使缓存失效。原创 2024-08-03 21:35:23 · 807 阅读 · 0 评论 -
如何快速部署上线项目
快速部署上线自己的项目原创 2024-06-03 16:13:45 · 888 阅读 · 0 评论 -
微服务网关Gateway(下)
微服务网关gateway的前世今生原创 2024-06-03 16:09:27 · 937 阅读 · 2 评论 -
微服务网关Gateway(上)
微服务网关的前世今生原创 2024-06-03 16:06:43 · 954 阅读 · 0 评论 -
如何做好技术架构选型
如何做好技术架构选型,实践经验原创 2024-05-23 10:29:26 · 916 阅读 · 0 评论 -
微服务如何做好监控
如何做好微服务的服务监控原创 2024-05-20 08:05:23 · 1164 阅读 · 0 评论 -
微服务中的鉴权怎么做?
一文讲透如何做微服务鉴权原创 2024-05-16 09:24:19 · 670 阅读 · 0 评论 -
简历写上这个,HR 看了贼开心
在简历上写个人网站很加分,本文讲解如何快速搭建一个个人网站原创 2024-05-10 14:31:31 · 765 阅读 · 0 评论 -
Spring Boot项目中使用RedisTemplate.delete() 删除指定key失败 的解决办法
问题实际通过redisTemplate.delete删除了redis的key但是在判断redisTemplate.hasKey时候还是存在,导致缓存删除不了解决原因是在两个服务在引入RedisTemplate,引入的方式不对,一种是 @Autowired private RedisTemplate<String, String> redisTemplate;另外一种是: @Autowired private RedisTemplate redisTemplat原创 2020-07-06 16:12:45 · 10208 阅读 · 0 评论 -
企业微信开发(1)——整体说明
一、前言1、基于企业微信第三方应用开发API文档,做了一个企业微信开发说明文档,总结踩的坑以及对文档的一个补充。2、本文主要针对第三方应用开发,方便第三方服务商的云应用上架企业微信应用市场3、实现目标:服务商预先在第三方管理端注册登记应用信息。企业选择使用第三方应用时,通过授权流程来一键安装应用,我们将微信小程序放在企业微信应用市场二、区分几种token作为第三方服务商的开发者,在开始开发之前,需要先了解各种接口凭证的差别,以更好的理解第三方的开放体系1、应用授权的suite_access_to原创 2020-09-10 12:40:35 · 3156 阅读 · 0 评论 -
idea安装github copilot登录后状态无变化解决方案
确认https://github.com/settings/copilot已经处于绑定状态即可。原创 2023-03-26 13:08:38 · 2955 阅读 · 2 评论 -
解决idea始终无法导入jar包
问题描述类似无法导入,用Maven的刷新也没用发现jar包并未引入,解决找到本地Maven仓库的jar包手动引入这个时候就导入了原创 2020-09-10 12:31:37 · 3569 阅读 · 0 评论 -
springMVC知识重温
一、什么是Spring MVCSpring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。二、SpringMVC的流程?(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handl原创 2020-08-12 11:14:27 · 231 阅读 · 1 评论 -
Failed to load project configuration: cannot parse file xxx Message: 前言中不允许有内容。
一、问题描述在用idea启动刚导入的项目时,报错,错误信息如下:是说无法编译该文件二、解决方案1、设置idea的编码可以看到这里新导入项目的编码我这里设置的是with BOM,默认应该是with no bom,2、关闭idea3、将该项目的.idea文件干掉4、重新用idea打开项目,发现一切OK了...原创 2021-08-04 15:11:00 · 3980 阅读 · 1 评论 -
穿透内网将外部的请求转发到本地
在调试微信、支付宝、企业微信回调调时候,如何进行本地debug呢?这就需要用到一个工具:WeNAT能够将外部的请求转发到本地,下载后https://www.wezoz.com,直接按照说明配置本地服务端口号就可以得到域名不管在postman还是服务器回调都可以在本地测试了,相当于8把自己本地的服务提供给别人,是不是特别很方便呢?get新技能。...原创 2020-04-01 22:00:39 · 1175 阅读 · 0 评论 -
上传网络图片到微信临时素材换取mediaId
一、前提说明很多微信开发的场景需要传一个mediaId,即微信素材的媒体id,根据[微信开放平台接口文档],将已知网络图片URL上传到微信服务器,并换取媒体id,这个地方用到缓存。相关代码如下:(https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html)二、相关代码/** * 上传临时素材到微信换取mediaId * 1、临时素材media_id是可复原创 2021-03-16 13:51:30 · 1620 阅读 · 2 评论 -
IDEA中用maven生成的目录结构中没有src/test目录解决办法
一、前提如图,maven一般会生成完整的目录结构,因为某些原因可能没有生成src/test目录,这个时候不可能重新生成,如图:如果一直右键新建目录是会有问题的,是test源文件,而不是目录,这个时候需要怎么办呢?二、先新建两个目录注意观察,这里的Java并不是一个test将Java目录变成test就可以了这个时候test不再是一个文件夹了...原创 2021-03-16 15:57:08 · 9644 阅读 · 3 评论 -
错误java.lang.NoClassDefFoundError: org/jaxen/VariableContext
主要原因是:使用dom4j解析XML时,要需要以下两个包:dom4j-1.6.1.jarjaxen-1.1.2.jar我只导入了dom4j-1.6.1.jar后来重新导入 jaxen-1.1.2.jar问题就没有了总结:使用dom4j解析XML时,要需要以下两个包:dom4j-1.6.1.jarjaxen-1.1.2.jar...原创 2020-08-11 13:48:46 · 1147 阅读 · 0 评论 -
解决已经关掉idea中的程序还是显示端口号被占用问题
一、问题描述用idea启动springboot项目后,关闭启动,显示关闭,其实并未关闭,服务还是在后台启动的,查看端口号发现进程还是占用的,这种估计是idea问题了。很烦二、解决方案无脑操作,将该端口号强行关闭我在mac端直接用终端操作1、在mac终端查看端口号对应的进程lsof -i :80会出现类似COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmysqld 106 _mysql 43u原创 2020-08-20 17:40:38 · 3756 阅读 · 0 评论 -
springboot系列知识
前言Spring Boot都很熟悉了,再重新认识学习一遍。一、Spring Boot 入门Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and...原创 2019-08-11 22:59:00 · 867 阅读 · 1 评论 -
版本控制工具之SVN
前言很久没玩QQ,登录记不住密码了,点开问题,以前设置的问题是:你的梦想是什么?我输入:金钱、爱情、家庭、房子、车子、美女统统都错,究竟以前的梦想是什么?走着走着,或许就已经忘却最初的梦想了!可还是要坚持自己所爱,勇往直前!漫威的《惊奇队长》好想看,可是那个人已走远了,不想去电影院!爱情真是让人可望而不可即的东西。1、从个人开发到团队协作团队开发必须借助版本控制工具进行开发才能更...原创 2019-03-09 22:49:57 · 200 阅读 · 0 评论 -
Maven依赖管理
一、什么是Mavenmaven是一个管理依赖的工具,我们项目中常用maven来管理jar包,并且可以管理jar包的依赖,有了maven,无论是引用别人的jar包还是自己项目需要打 包都变得极其简单。maven仓库就是存放jar包的仓库,分为本地库、远程库和私有库。本地库是本地计算机存放jar包的地方,本地仓库需要到私有库去拉取jar包,私有库一般是公司自己存放jar的仓库,会有专门的人员进行...原创 2019-11-10 17:20:47 · 288 阅读 · 0 评论 -
01.Spring入门与常用配置
一、Spring概述1、什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选...原创 2019-02-19 12:31:02 · 223 阅读 · 3 评论 -
02 .Spring注解IOC&AOP
一、Spring的bean管理(注解方式)1、配置组件扫描扫描类下的注解,哪些包下的类需要使用IOC注解<!-- Spring 的注解开发:组件扫描(类上注解: 可以直接使用属性注入的注解) --><context:component-scan base-package="com.itheima.spring.demo1"/>2、在类上添加注解@Compon...原创 2019-02-19 16:57:07 · 254 阅读 · 0 评论 -
04 Struts2中的拦截器和标签库
一、写在前面的话现在是19年的二月17号,一个很好的日子,可是心情却不是很好。我已经失恋4天,可是我并没有忘记这些回忆。在一起的日子总是短暂的,没有人能命令别人做任何事,只有程序会按照你的想法走,这或许就是生活吧,希望各位均安好!二、Struts2中的拦截器1、什么是拦截器2、Struts2的执行流程客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法。在...原创 2019-02-17 18:26:40 · 191 阅读 · 0 评论 -
03 Struts2中的OGNL和值栈ValueStack
一、OGNL1、什么是OGNL是一种功能强大的表达式语言,通过他可以获取对象的任意属性和方法,同时能实现必要的类型转换,比EL表达式更加的强大,可以应用在页面,Action以及配置文件中2、OGNL的作用对象方法调用类静态方法调用赋值操作和表达式串联访问OGNL上下文操作集合对象3、OGNL的要素表达式跟对象rootcontext对象二、值栈的概述1、什么是值栈...原创 2019-02-08 17:12:12 · 201 阅读 · 0 评论 -
01 struts2入门&常见配置
一、Struts2的概述1、什么是Struts2是一个机遇MVC设计模式的web层框架2、常见的web层框架Struts2Struts1WebworkSpringMVC所有web层框架都有一个特点就是都是基于前端控制器实现的3、前端控制器模式传统的servlet开发,有一次请求就会对应一个servlet,这样会导致出现很多的servlet,而Struts2的请求都会先经过前端控...原创 2019-02-02 15:38:35 · 214 阅读 · 0 评论 -
02 Struts2中Servlet的API&Struts2数据封装
写在前面的话:励志要将JAVA所有的知识点都放在这个号上,不管有没有人看今天是大年初二,一堆同学聊起了互联网。其实并没有几个人真正能听懂我说的是啥,但是已经很开心了,这个职业越来越被长辈们所认可,以后是信息化社会,不会敲代码,不懂程序设计,那就是原始人。一、 Struts2的Servlet的API的访问1、完全解耦合的方式所谓完全解耦合的方式就是不能获得作用域的对象,不能调用对象的方法,...原创 2019-02-06 19:57:16 · 241 阅读 · 0 评论 -
Hibernate之进阶4——抓取策略
一、Hibernate优化处理1、缓存2、抓取策略前面已经整理过Hibernate的一级缓存,二级缓存实际开发中用Redis替代二、延迟加载的概述1、什么是延迟加载延迟加载:lazy(懒加载)。执行到该行代码的时候,不会发送语句去进行查询,在真正使用这个对象的属性的时候才会发送SQL语句进行查询2、延迟加载的分类抓取策略往往会和关联级别的延迟加载一起使用,优化语句。三、抓取策略...原创 2019-01-31 15:55:25 · 183 阅读 · 0 评论 -
hibernate框架之入门
一、什么是框架?框架是软件的半成品,已完成部分功能,调用相应的方法,可以简化开发,提高开发效率二、javaEE三层架构和对应的企业级框架客户端层:HTML+CSS+JS1、web层1)servlet+jsp2) SpringMVC3)Strute22、业务层1)javabean2)Spring3、持久层1)JDBC2)Hibernate3)Mybatis三、SSH和S...原创 2019-01-27 23:32:32 · 188 阅读 · 0 评论 -
Hibernate之进阶2——表操作和多对多配置
一、数据库表与表之间的关系1、一对多关系1)一个部门对应多个员工、客户和联系人、商品和分类2)建表原则在多的一方创建外键,指向一的一方的主键2、多对多关系1)学生和课程、用户和角色2)建表原则创建一个中间表,中间表至少有两个字段分别作为指向多对多双方的主键3、一对一关系1)公司和注册地址2)建表原则唯一外键对应:模拟一对多关系,在多的一方创建外键约束,并加唯一约束;主键对...原创 2019-01-30 14:37:58 · 184 阅读 · 0 评论 -
Hibernate之进阶1——主键生成策略和事务管理
一、持久化类的编写规则1、什么是持久化?将内存中的数据永久保存到关系型数据库中2、什么是持久化类?java中的类和数据库表建立了映射关系3、持久化类的编写规则无参构造方法属性需要私有,对私有属性提供公共的set和get方法属性精良使用包装类型(防止基本数据类型默认值为0造成的问题要有一个唯一标识OID与表的主键对应不能使用ffinal修饰(延迟加载代理对象继承了持久化类)...原创 2019-01-28 23:30:46 · 232 阅读 · 0 评论 -
Hibernate之进阶3——查询方式
一、数据库表与表之间的关系1、一对多关系1)一个部门对应多个员工、客户和联系人、商品和分类2)建表原则在多的一方创建外键,指向一的一方的主键2、多对多关系1)学生和课程、用户和角色2)建表原则创建一个中间表,中间表至少有两个字段分别作为指向多对多双方的主键3、一对一关系1)公司和注册地址2)建表原则唯一外键对应:模拟一对多关系,在多的一方创建外键约束,并加唯一约束;主键对...原创 2019-01-31 15:38:55 · 186 阅读 · 0 评论 -
java生成图片验证码
图片验证码java自动生成图片代码package top.canghe.CheckImgServlet;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import j...原创 2019-01-09 22:19:53 · 518 阅读 · 0 评论 -
利用cookie获取最近一次访问页面时间
package com.heima.cookie;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax....原创 2019-01-11 21:22:30 · 1380 阅读 · 2 评论 -
我和我的团队使用 Codeup后的体验
Codeup代码管理工具原创 2023-03-14 15:08:11 · 445 阅读 · 1 评论 -
让女朋友停止疯狂购物方法——屏蔽购物网站
一、找到对应文件夹二、将localhost改成www.baidu.com三、那么此时女朋友再本机访问京东就访问不到了是不是很有意思呢?原创 2019-01-09 22:10:40 · 338 阅读 · 0 评论 -
利用数组实现环形队列
package queue;import java.util.Scanner;public class CircleArrayQueueDemo { public static void main(String[] args) { //测试一把 System.out.println("测试数组模拟环形队列的案例~~~"); // 创建一个环形队列 CircleArr...原创 2020-02-05 15:44:59 · 219 阅读 · 0 评论 -
N个人站圈报数算法问题
import java.util.Scanner;public class Test1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n;// 人数 int m;// 报名数(报到的出列) System.out.print("请输入n:");...原创 2019-01-08 12:59:24 · 1339 阅读 · 0 评论 -
java将二维数组转为稀疏数组保存到本地并读取本地文件转为二维数组
package sparsearray;import java.io.*;public class SparseArray { public static void main(String[] args) { //创建一个原始的二维数组11*11 //0表示没有棋子,1表示黑棋,2表示白棋 int[][] chessArr1 = n...原创 2020-02-05 16:26:00 · 733 阅读 · 1 评论