自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot中@AutoWired注解的静态变量

SpringBoot中@AutoWired注解的静态变量

2022-08-22 19:03:13 44

原创 JPA之EntityManager两种group方法

一种方法是采用原生的SQL语句。但使用此种方法需要注意如下问题:就是当被选择项(select的项目)本身不在group里,且没有聚合函数时,会产生错误。另一种方法是使用Stream功能进行group。值得注意的是,Stream的group分组后,会生成一个Map。可以在Map里进行统计和执行操作。JPA对group的支持,其实并不太好。笔者选择了两种方法进行操作。...

2022-08-18 09:42:36 51

原创 也谈数据治理

从这个意义上来讲,任何有数据的组织,都会有数据治理,但数据治理的水平有高低之分。数据治理的水平,体现为数据使用的便利,以及数据使用的安全。

2022-07-26 15:00:53 469

原创 EntityManagerFactory和EntityManager的一个用法探究

EntityManager是具体的操作增删改查,但EntityManagerFactory才定义了持久化存储单元的环境

2022-07-20 17:32:05 213

原创 IDEA导出Springboot包(附加本地库)

IDEA导出Springboot库

2022-07-19 11:23:10 451

原创 Android APP息屏状态下收到通知解决方案

Android APP息屏接收通知解决方案

2022-06-29 15:20:37 617

原创 JAVA Stream原理和常见操作

1.Stream原理Stream是JAVA8开始的新的用法。Stream本意为流,Stream也确实如流一样,给操作带来了方便。Stream的表现是:1)提供一个特定类型的队列;2)提供一系列操作,让队列拥有类似于SQL语句的操作。Stream的原理或背后的基本支持是ForkJoinPool。ForkJoinPool主要用来使用分治法(Divide-and-Conquer Algorithm) 来解决问题,即把多个大任务分割为多个小型子任务。但该任务的缺点是:如果子任务没有完成,整个总任务也没法进行完成和归

2022-06-22 11:40:21 889

原创 SpringBoot解决跨域问题

Springboot解决跨域问题

2022-06-20 09:52:36 182

原创 C#的partial用法

最近,在用C#做程序。在做东西之前,发现原来的C#代码;看完之后,感觉头大;因为,代码实在太长了,一个功能类写几千行,而且,全都是这么写下来。笔者牢记一个原则:好的代码,不是给机器用的,而是给人用的。看到这个现象,不觉头大。就想起一个原则:对几千行代码进行拆分;正好,C#提供了一个partial关键字,可以对class、interface进行分割。如下所示:源文件A1.cs源文件A2.cs等同于一个源文件A.cs挺理解部分工程师把一大堆功能写到一个类里面的;因为C#始终是一种面向对象的语言

2022-06-08 18:11:59 2165 1

原创 Caused by: java.lang.ClassNotFoundException: yaml.config.sharding.YamlShardingRuleConfiguration

今天,碰到一个异常,“Caused by: java.lang.ClassNotFoundException: org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingRuleConfiguration”。找相关错误,Stack Overflow上给的错误解释,说是配置文件错误。并认为原因为原配置文件为“spring.shardingsphere.datasource.ds0.url” 应该改为“spring.shardingsph

2022-05-30 17:33:07 255

原创 Hibernate Connection Pool Validation Thread java.lang.OutOfMemoryError

近日,用Springboot做了一个网络服务器,原理很简单,网络访问以后,用数据库存储访问。代码如下:@RestController@RequestMapping("/test")public class ThirdParkController { private EntityManagerFactory mFactory = null; private EntityManager mEm = null; // <summary> /// 车辆入场

2022-05-07 18:27:25 443

原创 Caused by: java.lang.NoSuchMethodException: org.springframework.boot.context.config.ConfigDataEnviro

本文的题目其实应该是“Caused by: java.lang.NoSuchMethodException: org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.<init>()”和“Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframewo

2022-05-05 16:43:59 934

原创 大规模后台导出Excel无法并发

近日,完成一个功能。需要后台在数据库导出数据,然后,生成Excel发送给前端。原来的程序,是C#写的,采取简易原则,继续在原有工程上实现。碰到的第一个问题是,原有的ApiController不支持Response语法。于是,改为Controller实现。第二个问题,是Excel的导出库。最开始,试图用CSV作为Excel导出,发现部分数据会存在格式问题,于是,最终采用了Excel导出库。最后,综合以后,选用NPOI库。样例代码如下:public class FileDownContro

2022-04-29 13:58:19 1465

原创 IDEA进行Maven同步的时候显示“Cannot resolve ***”

在用IDEA进行Sync同步时(同步工具用Maven),发现总提示“Cannot resolve ***”相关操作。最开始,以为是相关库没有同步下来,最后发现原因为:不同库之间,相互依赖库存在版本冲突。解决方法:1)逐渐寻找无法同步的库;2)去除冲突的库。具体为,在pom.xml里添加exclusions和exclusion,保证依赖不冲突。样例如下:<dependency> <groupId>org.springframework.boot</

2022-04-06 14:24:48 260

原创 联合主键和索引

今天,看到一个表,是联合主键的。以前,确实也看到过联合主键,还建立过联合主键。今天,正好看到了,就对联合主键和索引的知识进行重新整理下。主键和索引的关系为:1)主键一定是索引;2)索引是可以自建的,非主键;3)索引是一种数据结构,方便查找。联合主键的本质,就是一个联合起来造成的索引,用来作为表的主键。但联合主键要想用起来,必须采用如下原则:“大哥不能丢,兄弟不能断”。如下所示:create table test( name varchar(21), id n

2022-03-30 11:28:38 2077

原创 ShardingSphere分库分表方案

最近,在研究后台数据库过大的时候,相关的分库分表解决方案。1.分库分表当一个数据库里的数据库和数据表足够大的时候,就面临很多问题。由于数据库大多采用B树存储,当数据量太大的时候,会发生资源访问过大,数据迟缓问题。面对这类问题,比较好的方案是分库分表。分库分表的方案有两种:垂直切分和水平切分。垂直切分一般为不同业务和不同字段分割到不同部分,水平切分一般为同一数据库或数据表根据一定规则分到不同的数据库和表里。一般来说,库一般采用垂直切分,优点是专库专用;表采用水平切分,避免数量过大。2.

2022-03-23 09:26:53 784

原创 支付宝DTS架构

最近,在忙着做一个任务,很奇怪发现后台的业务,付款和销账并不是在一个同一个事务里。按照我的理论,付款和销账这些属于数据库的业务,显然应该是在一个事务里,才能保证数据的一致性。与后台的负责人交流以后,告诉我付款和销账确实是两个过程。作为软件厂商,自己只能负责自己的事务一致性,但不能保证别的厂商提供的软件服务的一致性。这番陈述,似乎说服了我,但貌似并不是最好的解决方案。理论上,以上事务属于分布式事务。分布式事务,一般采用两阶段(2PC);即第一段提交完成,再进行第二段提交。但这种方式,会造成所有

2022-03-09 10:33:23 3405

原创 Android手机拍照APP闪退问题及应对措施

近日,在APP上进行手机拍照,发现很奇怪的问题:就是在进行拍照的时候,APP会闪退,然后功能不正常;而且,闪退是非必现的——也就是多次操作肯定会出现,但并不能确定出现的时间和原因。当时,找了各种原因,刚开始都以为是自己程序写的有问题,但由于是非必现,就可以基本上认为该结论不成立。又怀疑是高德地图的问题,但更换高德地图的SDK以后,发现问题依然存在。在随后的几天里,进行了多次试验和相关资料搜索,最终确定是拍照过程中造成的。并有如下基本资料:部分Android机型,如oppo(鄙人的手机不幸就是oppo

2022-02-17 11:46:05 1552

原创 java.lang.OutOfMemoryError

近日,用Bugly追踪到一个奇怪的崩溃:# OkHttp Dispatcher(1604)java.lang.OutOfMemoryErrorpthread_create (1040KB stack) failed: Out of memory很奇怪,这个错误貌似不正常。大致猜测该问题原因为创建线程时的错误。继续研究,发现该问题主要在华为手机上,找出资料为“在Android7.0及以上的华为手机(EmotionUI_5.0及以上),这些手机的线程数限制都很小(应该是华为rom特意修改

2022-02-10 18:30:00 1195

原创 CountDownLatch的用法

今日试图解决一个问题,就是在Android中实现多线程同步,但要求几个变量同时同步。当时,首先想的是,一定得用Android或JAVA的本身机制。发现有个叫CountDownLatch的机制。CountDownLatch多线程同步类,可以协调多个线程之间的同步。CountDownLatch的典型用法如下:1)创建一个CountDownLatch实例,并确定需要等待的线程或任务数;2)一个线程或任务完成,CountDownLatch计数器减一;3)使用CountDownLatch.

2022-02-10 16:24:34 1125

原创 Android中getActivity()为null

通过bugly,追踪到一个崩溃,发现问题为在Fragment里getActivity()为null后崩溃。于是,深层次找原因。发现根本原因为:JVM在内存不足的情况下,会把Activity回收;而Frament和Activity的声明周期不一致,此时Frament不一定会被回收;因此,才导致getActivity()为null的问题。Activity生命周期如下:Fragment的生命周期如下:因此,可以用的解决方法是:对Activity添加引用,保证Acitivit

2022-02-08 14:36:05 1265

原创 遇到了ANR错误

最近在解决一个Android问题。问题现象如下:手机进行上传的时候,任务太多,会报错误,甚至会提示“无响应,是否关闭”。显然,这是遇到了ANR错误,也就是Androdi手机无响应错误。这种错误的原因为:Android为了快速响应,把有关图形操作的相关任务,都放到了主线程;但如果主线程过分繁忙而没有响应,相关错误就会产生(When the UI thread of an Android app is blocked for too long, an "Application Not Respondin

2022-01-29 17:56:26 1345

原创 Android读取程序中文件

近日,需要完成一个程序,需要把相关文件放到Android程序中,并共Android读取。Android读写文件很简单,如果用JAVA语言的话,就是JAVA文件读写。真正的问题在于,在Android程序中,应该把文件放到哪里,才能保证能可以读取。继续查找相关资料,得出如下结论:1)Android中有raw和assets两个文件夹下的文件,可以不编译为二进制文件,把相关文件放到这两个文件即可。2)raw文件目录为res/raw,相关文件会被映射到R.java,访问时直接通过资源ID访问;

2022-01-17 18:40:02 2182

原创 android static变量陷阱

最近发现Android的APP一直出问题,一直找不到原因。于是,我装上了Bugly进行跟踪。果然,跟踪到一个奇怪的异常,异常显示一个static变量为一个非常奇异的值。第一眼感觉很奇怪,在笔者的印象中,static为静态变量,是一个全局数据,不应该为异常值,非常困惑。于是,继续学习相关资料,了多篇博客介绍android的static的变量存在陷阱的。文章链接如下:[1]安卓全局静态变量中的坑_三月的船长-CSDN博客[2]为何Android开发中不推荐使用static全局变量传参_修的专

2022-01-11 17:24:49 1536

原创 使用Bugly 作为APP异常上报工具

0.需求最近发布的APP,用户反馈遇到了一些稀奇古怪的崩溃。本地测试,一定程度上无法覆盖所有的case。加之用户使用场景和本地场景存在一定差异性。这难免会造成一些稀奇古怪的崩溃,且不易复现。突然想到,微软也在做一件事,就是每当程序崩溃以后,总要把一些崩溃上报。显然,APP也把崩溃进行上报,也是一个好思路。继续发现,好些大厂都已经提供了完整的APP上传工具和机制。但如果是站在工程师的角度,如果资源不够的话,重新设计一套工具,显然是不合适的。于是,想到了是否有公开的可以直接用APP异常上传工具和“轮

2022-01-07 16:38:28 3420 1

原创 Android界面点击无正确响应

最近,在解决一个Android问题,发现Android界面的点击使用无正确响应。分析可得:点击界面--->视图接收点击消息--->对应消息函数运行。首先想到的,是视图上有无新界面遮挡。经调试以后,发现并无该问题。继续研究,发现视图有点击过程和接收过程,但比较奇怪的是,没有对应的接收视图收到相关消息。继续研究,发现界面过程如下:1)界面自己制作了适配器(Adapter);2)每次会根据实际数据new新的适配器;3)视图和适配器绑定。而由于每次重新生成适配器且和视

2022-01-04 15:28:54 1520

原创 .NetCore Web改为单任务执行

以前,项目里有个.NetCore Web项目,为了效率,并没有采用单任务的方式。但经过测试以后,发现该功能存在如下问题:该任务可以接受多个响应,但假如会有多个需要串行化的任务,由于任务本身并不能保证任务得到串行化处理,从而造成任务处理状态错误。如果任务最终需要串行化处理,功能改为单任务,显然是必然的方法。于是,修改任务的步骤如下:1)添加[MethodImpl(MethodImplOptions.Synchronized)]方法2)增加互斥量作为同步方法。样例如下:public

2021-12-29 16:33:26 32

原创 Unable to build Hibernate SessionFactory和Caused by: org.hibernate.tool.schema.spi.SchemaManagementEx

近日,在使用Hibernate的时候,发现如下问题,即发现Hibernate出现如下问题,先出现如下Unable to build Hibernate SessionFactory错误,后出现Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [idarea] in table [areaobject]; f

2021-12-06 14:25:23 882

原创 BS客户端安全使用解决方案

一、 引言BS客户端是很多公司产品的重要载体,很多产品,都是基于浏览器客户端(BS客户端)的。BS客户端的优点是简洁高效,但会存在明文传播,无法防止复制等一系列问题。本文试图提供一系列解决方案,从而尽可能减少BS客户端的明文传播、直接进行复制的问题。二、 几个要点BS客户端安全使用,目前有几个要点:1) 网络传输用密文传播;2) 登录状态验证,防止登录过期;3) 网页界面使用防复制粘贴命令。同时,要说明的是,由于BS客户端(浏览器)自身的特点,本解决方案并不能保证安...

2021-11-26 14:18:47 608

原创 EntityManager使用原生查询createNativeQuery并把值映射到自定义实体

最近一直在用JPA,使用了EntityManager作为基本查询方法。EntityManager可以满足基本的增删改查,但实际上很多时候,是必须采用原生查询的。而且,原生查询的返回值必须和自定义实体相配。当自定义实体对应原生查询的返回值的时候,一般有2种方法。1)自定义实体类,可以直接运用createNativeQuery的方法。接口定义如下:public Query createNativeQuery(String sqlString, Class resultClass)class

2021-11-25 10:09:15 2153

原创 EntityManagerFactory单例、EntiyManager与连接池

最近在项目中使用JPA,用到了EntityManager,想用EntityManager的单例。然后,发现一个问题,EntityManager可以用单例,但EntityManager使用时都会使用上下文,即会进行操作。当多个进程使用一个EntityManager时,会造成程序使用错误,如空指针错误等异常。同时,EntityManager并非线程安全的;因此,EntityManager无法用单例。可以用的单例是EntityManagerFactory,EntityManagerFactory本身为

2021-11-22 15:21:02 683

原创 解决使用导出不同库的实体重名不符合JPA规范问题

一.导出库对应实体使用JPA,需要导出数据库对应实体,这样才可以在JPA中使用。JPA是Hibernate的目前标准,可以用于不同数据库,并可以让工程师脱离数据的实际结构,更专心于业务。二.导出过程:用Eclipse可以用IDEA导出JPA实体,但用IDEA导出实体会有shema和数据库标识符,故选择Eclipse作为导出工具。导出实体方法如下:创建JAVA项目,同时确保Eclipse里装上了JPA工具; 右键JAVA项目,选择Propeties。 选择JPA工具。...

2021-11-16 13:54:49 834

原创 SpringCloud

1.微服务 微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic)的API集相互通信。 微服务提供了单一职责、单一任务的服务,让服务得以小型化和独立化。微服务即提供这样的一种方案:对外提供一个服务服务接口,而内部提...

2021-11-04 16:30:03 289

原创 开发中碰到的问题:java.lang.IllegalArgumentException: quality must be 0..100

今天

2021-10-22 10:24:17 344

原创 java.lang.IndexOutOfBoundsException: Invalid index 2, size is 1

今天android程序发生了一个异常,查询日志后发现日志如下:java.lang.IndexOutOfBoundsException: Invalid index 2, size is 1at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)at java.util.ArrayList.get(ArrayList.java:308)at android.widget.HeaderViewListAdapt

2021-10-19 18:19:40 928

原创 由一段语句没有return论述try-catch语句中的return

最近在写一个判定程序,发现程序运行有异常,于是,就提供了一个try-catch捕捉异常。同时,发现该程序里return失效了。当时就发生了我乍一看非常诡异的现象:一个if判定语句里的return,不运行了。我当时很诧异,以为是编译器坏了,甚至以为是缓存没有清理,还多次rebuild和清理缓存。最后,认真想了下,应该是try-catch语句的问题。果然查到如下资料:[1]【java】try-catch-finally语句中return的执行顺序思考 | iTimeTraveler[2]

2021-10-15 10:52:10 32

原创 解决java.lang.IllegalStateException: FragmentManager is already executing transactions 问题

今日遇到一个问题,发现在点击APP过程中,程序崩溃了,并显示出如下问题。java.lang.IllegalStateException: FragmentManager is already executing transactionsat android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:2006)at android.support.v4.app.FragmentManagerImpl

2021-10-12 17:04:20 1418

原创 散记一篇:首页菜单有序化排列

Android的APP的首页一直有一个问题,问题为首页需要类似美团首页形式。如下图所示:最开始的做APP,采用RecycleView并使用GridView作为布局;但非常遗憾的是:该布局并不适合所有的手机;但手机屏幕分辨率不同时,会显示不同菜单个数,并造成翻页问题。笔者最开始的想法:使用RecycleView解决该问题。但试验了各种RecylcleView方法,发现目前的成熟的解决方案都其实有各种问题,至少并无直接可用的方案。然后,搜索美团界面,找到了如下样例:GitHub - Hey.

2021-10-11 15:44:22 29

原创 用爬虫抓取美联储演讲数据并分析金融政策

用python抓取美联储数据近日,笔者选择了一个任务,用爬虫抓取美联储演讲数据,并分析相关金融政策。首先必须做的,是抓取数据。打开美联储的网站Federal Reserve Board - Home。然后,找到美联储关键人物的演讲的网站:Federal Reserve Board - Speeches of Federal Reserve Officials。打开一个演讲,如Introductory remarks by Chair Powell at "Fed Listens: Perspe

2021-09-24 23:38:31 222

原创 Android中发送广播消息刷新Fragment

近日需要完成这样的功能:一个页面(Fragment)刷新以后,需要刷新多个页面的Fragment。我首先想到了,是观察者模式的升级版:发布-订阅模式。加之笔者用Otto做过发布-订阅功能(Android在另一个类中获得Http消息_wangzhezhilu001的专栏-CSDN博客),因此首先就想到这个模式。在确定该功能能完成通知的同时,在想能否用其他模式来完成。想到了Android四大组件之一的广播。继续研究,发现广播组件即为发布-订阅模式。首先第一个选择是:静态注册广播还是动态注册广

2021-09-16 09:52:25 305

软件项目管理:从瀑布到敏捷.pdf

讲述项目管理的定义、特定和过程,以及从瀑布到敏捷的过程。 项目是一个独特的任务或是系统化的流程;项目的目的是创造新的产品或服务,完成产 品或者服务的交付。 软件项目有其特点,并由瀑布发展到敏捷。

2020-09-04

软件项目管理:从瀑布到敏捷.pdf

项目:一个独特的任务或是系统化的流程;项目的目的是创造新的产品或服务,完成产 品或者服务的交付。 • 产品:项目产生的一系列可交付物件。

2020-03-30

空空如也

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

TA关注的人

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