后端工程师
文章平均质量分 70
后端相关开发笔记
jackaroo2020
不积跬步无以至千里,不积小流无以成江海
展开
-
一个简单的转账场景示例带你了解并发安全?
本文转帐场景主要参考来自于极客时间 王老师的 《Java 并发编程实战》原创 2024-01-17 23:52:42 · 1258 阅读 · 0 评论 -
L01_Spring总览介绍
###导读1、What is Spring Framework?Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languag on the JVM原创 2021-05-16 23:38:35 · 220 阅读 · 0 评论 -
L05_spring依赖注入
spring 依赖注入1、依赖注入的模式和类型1.1、Setter 方法注入实现方法(1)手动模式XML 资源配置元信息<bean class="com.injection.UserHolder"> <property name="user" ref="user"></property></bean>Java 注解配置元信息API 配置元信息(2)自动模式#byName <bean class="injecti原创 2022-04-05 10:20:13 · 397 阅读 · 0 评论 -
L04_spring依赖查找
spring 依赖查找1、单一类型依赖查找单一类型依赖查找接口 - BeanFactory(1)根据 Bean 名称查找:getBean(String)(2)根据 Bean 类型查找 :getBean(Class)getBeanProvider(Class)( Spring 5.1 Bean 延迟查找)(3)根据 Bean 名称 和类型查找:getBean(String,Class)2、集合类型依赖查找集合类型依赖查找接口 - ListableBeanFactory(1)根据 Bean原创 2022-04-05 10:22:33 · 366 阅读 · 0 评论 -
L06_Spring 依赖来源
导读1、依赖查找的来源1.1、BeanDefinition元数据:BeanDefinition注册:BeanDefinitionRegistry#registerBeanDefinition类型:延迟和非延迟顺序:Bean 生命周期顺序按照注册顺序<bean id="user" class="com...User">@Bean public User user(){...}BeanDefinitionBuilder1.2、单例对象来源:外部普通 Java 对象(原创 2022-04-05 12:00:58 · 122 阅读 · 0 评论 -
L03_什么是 BeanDefinition
什么是 BeanDefinition?BeanDefinition 是SpringFreamwork 定义配置元信息的接口。包含:• Bean 的类名• Bean 行为配置元素,如作用域、自动绑定的模式,生命周期回调等• 其他 Bean 引用,又可称依赖• 配置设置,比如 Bean1、BeanDefinition 元信息属性说明ClassBean 全类名NameBean 名称或 IDScopeBean 作用域范围Constructor ArgsB原创 2022-03-25 09:03:58 · 252 阅读 · 0 评论 -
L07_Spring 生命周期
导读1、BeanFactory 是怎样处理 Bean 生命周期?BeanFactory 的默认实现为 DefaultListableBeanFactory,其中 Bean生命周期与方法映射如下:(1) BeanDefinition 注册阶段 - registerBeanDefinition(2) BeanDefinition 合并阶段 - getMergedBeanDefinition(3) Bean 实例化前阶段 - resolveBeforeInstantiation Instantiati原创 2022-04-05 20:38:38 · 131 阅读 · 0 评论 -
L02_什么是IoC容器?
导读Spring IoC 容器负责创建对象、管理对象,装配对象、配置对象、并且管理这些对象的生命周期。本文涉及代码均为部分代码,仅仅供个人学习记录参考。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hc0YzrMq-1647929291235)(./images/L02.png)]1、IoC 依赖查找根据 Bean 名称查找根据 Bean 类型查找根据 Bean 名称 + 类型查找根据Java 注解查//根据名称-实时查找User user = (Us原创 2022-03-22 14:09:28 · 127 阅读 · 0 评论 -
Bat多线程导数据实例
问题:运用bat 导数据库数据? 步骤(1) 连接数据库,导出表,运行java程序,分隔文件,运行bat文件多线程导入数据。1、java程序package splitsql;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.File原创 2018-01-26 16:45:25 · 1583 阅读 · 0 评论 -
SpagoBI 报表环境搭建
开发环境搭建 (1)SpagoBIStudio_5.2.0_win64 –用作开发工具;内存设置: -vmargs -Dosgi.requiredJavaVersion=1.7 -Xms256m -Xmx1024m -XX:MaxPermSize=256m (2)jdk7–开发工具所需环境(建议使用1.7); (3)All-In-One_SpagoBI-5.2.0–服务器原创 2018-01-26 12:30:35 · 2479 阅读 · 0 评论 -
报表数据源配置
jdbc连接 选择jdbc,注意导入jdbc的驱动jar包即可。script连接 open里代码设置importPackage(Packages.org.apache.http.client.methods)importPackage(Packages.org.apache.http.impl.client)importPackage(Packages.org.apache.h原创 2018-01-26 12:38:16 · 1602 阅读 · 0 评论 -
ELK日志框架搭建及实现笔记
logstash配置及启动 进入到安装目录logstash-6.0.0/bin下,测试是否安装成功./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'临时启动:./logstash -f ../config/logstash.conf永久启动:nohup ./logstash -f ../conf...原创 2018-09-05 16:00:50 · 1057 阅读 · 0 评论 -
Birt 开发笔记记录
常用视图 ** OutLine(表格等选项),DataExplorer(数据源,参数设置等),Palette(面板,包含talbe,corss table等)参数设置,在本地设置上传到服务器没反应? 参数设置只在本地起作用,还需要在服务器配置相应参数。如图所示。 注意:其中在开发完成如何转移到其它目录也是在服务器上选择相关文件目录,保存即可实现转移。DataSet撰取过滤参数设置原创 2018-01-26 12:40:17 · 341 阅读 · 0 评论 -
并发编程_SimpleDateFormat 线程安全问题
SimpleDateFormat 线程安全问题原创 2023-05-09 21:13:33 · 154 阅读 · 1 评论 -
思维导图之规范与重构
规范与重构原创 2022-11-29 22:02:53 · 210 阅读 · 0 评论 -
思维导图之设计原则
设计原则原创 2022-11-29 22:00:25 · 256 阅读 · 0 评论 -
Spring Bean 定义常见错误案例
Spring Bean 定义常见错误案例使用好 Spring,就一定要了解它的一些潜规则,例默认扫描 Bean 的范围、自动装配构造器等。通过本节案例的分析,我们也可以感受到 Spring 的很多实现是通过反射来完成的,了解了这点,对于理解它的源码实现会大有帮助。例如在案例 3 中,为什么定义了多个构造器就可能报错,因为使用反射方式来创建实例必须要明确使用的是哪一个构造器。案例 1:spring bean 隐式扫描问题案例描述:spring boot 开发项目时,构建一个简单的web 程序示例原创 2021-06-20 23:59:37 · 652 阅读 · 1 评论 -
Spring Freamwork IoC 容器概述
Spring IoC 容器概述1、Spring IoC 依赖查找根据 Bean 名称查找根据 Bean 类型查找根据 Bean 名称 + 类型查找根据Java 注解查找dependency-lookup-context.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://w原创 2021-05-30 15:38:43 · 106 阅读 · 0 评论 -
Kafka_基础概念(一)
一、Kubernetes入门1. kindkind 用来表明此资源类型的类型。# Pod 这种资源对象归属于V1这个核心API。# Kubernetes大部分常见的核心 资源对象都归属于v1这个核心API,比如Node、Pod、Service、 Endpoints、Namespace、RC、PersistentVolume等apiVersion: v1kind: Pod2. MasterKu原创 2021-04-11 21:22:32 · 423 阅读 · 1 评论 -
02_代码加锁,不要让“锁”事成为烦心事
I. 代码加锁1.加锁前要清楚锁和被保护的对象是不是一个层面的静态字段属于类,类级别的锁才能保护;而非静态字段属于类实例,实例级别的锁就可以保护。2.加锁要考虑锁的粒度和场景问题在方法上加 synchronized 关键字实现加锁确实简单,也因此我曾看到一些业务代码中几乎所有方法都加了 synchronized,但这种滥用 synchronized 的做法:一是,没必要。通常情况下 60% 的业务代码是三层架构,数据经过无状态的 Controller、Service、Repository 流转到数原创 2021-03-15 22:54:03 · 351 阅读 · 0 评论 -
01_使用并发工具类库,线程安全就高枕无忧了吗
I. 使用并发工具类库问题1.没有意识到线程重用导致用户信息错乱的 Bug一是,只知道使用并发工具,但并不清楚当前线程的来龙去脉,解决多线程问题却不了解线程。比如,使用 ThreadLocal 来缓存数据,以为 ThreadLocal 在线程之间做了隔离不会有线程安全问题,没想到线程重用导致数据串了。请务必记得,在业务逻辑结束之前清理 ThreadLocal 中的数据。2.使用了线程安全的并发工具,并不代表解决了所有线程安全问题二是,误以为使用了并发工具就可以解决一切线程安全问题,期望通过把线程不安原创 2021-03-13 23:35:31 · 282 阅读 · 0 评论 -
Linux_命令经验集
1. vi 使用技巧编辑在命令行中输入 vi +26 samp.txt 命令直接打开文件到达 26 行,在 vi 编辑器中也可以输入:set number 这个命令可是在编辑器左边显示行号。快速导航i 将工作方式从“命令模式”更改为“输入模式”,并在当前光标位置开始插入内容。a 除了是光标之后开始插入内容,与上面的效果是一样的。o 在光标的下一行位置开始插入内容。删除x 删除当前光标的字符。dd 删除当前行 (是的,整行内容!)下面看可怕的部分:30dd 从当前行开始删除以下 30原创 2020-11-24 13:59:59 · 172 阅读 · 0 评论 -
Kubectl_命令经验集
1.查看帮助kubectl --help2.查看镜像docker images |grep <sts_name>3.替换镜像版本号kubectl edit sts <sts_name>4.重启服务kubectl delete po <server_name>5.进入容器kubectl exec -it bash6.查看服务实时日志kubectl logs -f7.显示 pod 的详细信息kubectl describe pod ...原创 2020-11-24 13:54:43 · 974 阅读 · 0 评论 -
Git_命令经验集
1. git commit 修改最后一次提交的注释信息? git commit --amend2. git 合并多个 Commit?# 编辑n次提交记录git rebase -i HEAD~n# 撤销修改,回到没有开始操作合并之前的状态git rebase --abort原创 2020-11-24 13:52:31 · 102 阅读 · 0 评论 -
2020-11_技术经验集
1. 如何刷新本地的DNS缓存?# 管理员权限打开cmd命令窗口ipconfig /flushdns2. windons怎么快速打开hosts文件?快捷组合键win+r呼出“运行”程序在运行框中输入drivers,然后“确定”在弹出的文件夹中,打开etc文件夹etc文件夹内可见HOSTS文件,右键“打开”3. vi 使用技巧编辑在命令行中输入 vi +26 samp.txt 命令直接打开文件到达 26 行,在 vi 编辑器中也可以输入:set number 这个命令可是在编辑原创 2020-11-24 13:16:33 · 549 阅读 · 0 评论 -
2020-10_开发经验集
1. java 1.7 新规范, 可以在数值内加下划线,以增强可读性。不能在数值的前和后加下划线不能在小数点前后加下划线不能在多个连续非数值数字间加下划线2. 什么是 CAS 机制?CAS(Compare and Swap)比较并替换,CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。CAS的缺点:CPU开销过大在并发量比较高的情况下,如果许多线程反复尝原创 2020-10-24 18:01:53 · 182 阅读 · 0 评论 -
Java_后端面试题
1、HashSet 是如何保证不重复的?向 HashSet 中 add ()元素时,判断元素是否存在的依据,不仅要比较hash值,同时还要结合 equles 方法比较。HashSet 中的 add ()方法会使用 HashMap 的 add ()方法。以下是 HashSet 部分源码:private static final Object PRESENT = new Object(); private transient HashMap<E,Object> map; public Ha原创 2020-07-27 19:01:42 · 248 阅读 · 0 评论 -
2020-07_开发经验集
1、问题描述:生成报告到指定文件夹,没有则创建目录文件夹。// 文件目录String path = "D:/report";File f = new File(path);if (!f.exists()) { f.mkdirs();}2、问题描述:maven打包跳过单元测试。<build> <plugins> <plugin> <groupId>or原创 2020-07-14 14:00:46 · 207 阅读 · 0 评论 -
消息队列核心知识点_rocketmq
Part I1、如何选择消息队列?(1) 如果对消息队列功能和性能都没有很高的要求,只需一个开箱即用易维护的产品,建议使用RabbitMQ。有良好的运维界面,仅仅只是使用消息队列功能,用于异步和业务模块解耦,对性能要求不是很高。(2)如果系统使用消息队列的场景是处理在线业务,比如在交易系统中用消息队列传递订单,那么使用RocketMQ。阿里内部也是使用RocketMQ作为支撑其业务的消息队列,经历多次“双十一”考验,它的性能、稳定性和可靠性都是值得信赖的。有非常活跃的中文社区,大多数原创 2020-07-02 20:34:31 · 450 阅读 · 0 评论 -
软件使用说明书编写格式规范
页面设置页边距上下1.5厘米,左后2.5厘米,纸张大小A4,纸宽21厘米,高度29.7厘米,页眉页脚距边界距离1.5厘米。目录格式:目录仅仅显示前3级标题。一级标题:宋体,小四,加粗,左对齐,段前6磅,段后6磅,单倍行距。二级标题:宋体,小四,左对齐,左缩进0.37厘米,段前0行,段后0行,单倍行距。三级标题:宋体,五号,左对齐,左缩进0.74厘米,段前0行,段后0行,单倍行距。...原创 2019-12-05 15:12:38 · 6311 阅读 · 0 评论 -
redmine_开发环境搭建笔记
1、搭建虚拟环境,在虚拟机上安装centos7版本centos 7.0百度云下载链接提取码:c13pVBox下安装CentOS7详解2、一键安装部署官方最新网址3、安装步骤(假设已把下载文字放入服务器的/home目录下),以安装4.0.3版本为例,在centos6.5安装会报错,故选用centos7。赋予执行权限chmod +x bitnami-redmine-4.0.3-0-l...原创 2019-04-10 00:53:00 · 1601 阅读 · 0 评论 -
redis-windows压缩包如何配置后台启动脚本?
windows后台启动在响应目录下配置两个文件即可1、redis-startup.vbsset ws=wscript.createobject("wscript.shell")ws.run "start-redis.bat /start",02、start-redis.bat@echo offtitle redis-serverset ENV_HOME="D:\dev_config...原创 2019-06-02 09:07:28 · 403 阅读 · 0 评论 -
Java_实现身份证信息提取个人信息
1.身份证提起出生年月信息 注意:有15位和18位public String idCard2Birthday(String no) { String birthday = ""; if (no.length() == 15) { String tempYear = no.substring(6, 8); St...原创 2018-02-27 15:24:12 · 3304 阅读 · 0 评论 -
HikariCP连接池在springboot中的配置使用
HikariCP详细配置源码请访问# jdbc_config datasourcespring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/bi_test?useUnicode=true&useJDBCCompliant...原创 2019-04-02 09:44:40 · 2751 阅读 · 0 评论 -
Springboot后台框架搭建问题总结
IDEA 常见默认设置,提升开发效率,参阅:https://blog.csdn.net/m_m254282520/article/details/789002381、SpringBoot如何配置devtools实现热部署?spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring B...原创 2019-04-01 21:43:20 · 255 阅读 · 0 评论 -
跨域请求过滤器实现解决方案
什么是跨域当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),那么我们就可以认为它们是相同的域(协议,域名,端口都必须相同)。跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的(例如一般情况跨域的JavaScript无法交互,当然有很多解决跨域的方案)Access-Control-Allow-Origin是H...原创 2019-04-01 15:08:16 · 1024 阅读 · 0 评论 -
springboot+mybatis+logback日志配置及使用详解
1、application.properties#端口server.port=8082 # 项目路径server.servlet.context-path=/test#logback配置,与application.properties同一级目录logging.config=classpath:logback.xml#mybatis配置mybatis.config-location...原创 2019-04-01 11:41:54 · 10828 阅读 · 0 评论 -
Springboot实现角色验证拦截器
Springboot实现角色验证拦截器简易demo,仅供参考:UserRole枚举类,用户角色定义:public enum UserRole{ /** * 1,管理员 */ ADMIN("1","ADMIN","超级用户"), /** * 2,匿名访问 */ ANONYMOUS("2",&原创 2019-03-10 08:07:02 · 1095 阅读 · 0 评论 -
Springboot实现csrf拦截器
Springboot实现csrf拦截器,仅供参考:/*** csrf拦截器**/@Component(&quot;csrfInterceptor&quot;)public class CsrfInterceptor extends HandlerInterceptorAdapter{ @Autowired private Configuration configuration; ...原创 2019-03-10 08:11:52 · 6517 阅读 · 0 评论 -
SpringBoot实现xss拦截器
SpringBoot实现xss拦截器代码demo:@Component("xssInterceptor")public class XssInterceptor extends HandlerInterceptorAdapter{ @Override public boolean preHandle(HttpServletRequest request, HttpSer...原创 2019-03-10 08:16:48 · 2356 阅读 · 2 评论