avatar
文章
197
标签
94
分类
0

首页
书单
歌单
关于
LeFer
搜索
首页
书单
歌单
关于
Tess4J文字识别过程记录-未完成...
发表于2017-08-02
考虑到产品未来可能需要对图片中的文字进行识别分析,所以抽空我做了一点初步的尝试。暂且写下来做个记录吧。 选型经过一番寻找,锁定了tesseract。tesseract是一个开源的OCR引擎,支持中文识别。Tess4J提供了tesseract面向java的api封装。 安装 使用tess4j必须先安装tesseract,我的系统环境是centos,可以很方便的使用yum安装。为了识别中文还需要安装中文datafile。 sudo yum install tesseract sudo yum install tesseract-langpack-chi_sim.noarch //简体中文支持 其他操作系统,需要参考tesseract的说明安装。 然后在java项目中,通过maven引入tess4j。目前3.x版本里最新的是3.4 <dependency> <groupId>com.sun.media</groupId> <artifactId>jai_imageio</artifactId> < ...
解决 Spring Cloud Zuul 前端跨域请求问题
发表于2017-08-02
正在做的一个微服务架构的项目中,不出意料的在前端请求时遇到了跨域的问题 stats code: 401。以下就是我们采取的解决方案。 在zuul的入口类,即注解为@EnableZuulProxy的类中,增加以下代码: @Beanpublic CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); final CorsConfiguration config = new CorsConfiguration(); //允许跨域 config.setAllowCredentials(true); //允许向该服务器提交请求的URI,*表示全部 config.addAllowedOrigin("*"); //允许访问的头信息,*表示全部 config.addAllowedHeader("*"); //允许的method ...
ajax-post参数传递方式
发表于2017-08-02
今天在写一个测试的ajax请求的时候,突然忘记了怎么用request body 传参。借这个机会,总结一下。当从前端通过ajax向后台发起一个post请求时,一共有三种方式传递参数。 通过url传递参数 ajax:通常采用形如以下的js代码。这样实质上是拼成了这样一个url : http://lefer.cn/getUserInfo?username=lefer $.post({ url: "http://lefer.cn/getUserInfo", data: { username:"lefer", }, success: function( result ) { alert(result); }}), java:通常在controller中采用形如以下的代码来接受参数。 @RequestMapping("/getUserInfo")public void getUserInfo(@RequestParam String use ...
设计模式演绎-工厂方法模式
发表于2017-08-02
定义 Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory method lets a class defer instantiation to subclasses. 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其他类。 通用类图 Product 是抽象产品类,ConcreteProduct是对Product类的具体实现 Creator 是抽象创建类,也就是抽象工厂,ConcreteCreator是实现工厂,如何创建产品类就是在ConcreteCreator类中实现。 通用代码/* 抽象产品类 */public abstract class Product { // 产品类的公共方法 public void method1(){ //实现业务逻辑 } //抽象方法: 在实现类中必须实现 public abstract void met ...
赛门铁克CA不被信任后,我们用什么
发表于2017-08-01
今天(2017/8/1),cnbeta上报道Chrome计划在2018年取消对赛门铁克CA的信任。我的网站之前的ca证书是从阿里云和腾讯云申请的免费证书,都是从赛门铁克签发的。神仙打架,凡人遭殃。有了这档子事,我就开始着手更换一个可靠的证书。经过再三筛选,最终决定使用Let’s encrypt提供的证书(免费)。原因是这家机构是大学背景,而且谷歌参与出资。下面是具体的操作过程。 安装 ACME client按照官方推荐,采用Certbot作为ACME客户端。 访问Certbot网站,选择Http服务器和操作系统,会自动提示对应的Certbot客户端。我的服务器是Nginx+Centos 6,根据提示做以下操作 wget https://dl.eff.org/certbot-autochmod a+x certbot-auto 获取证书 第一次签发证书的命令很慢很慢,需要安装许多依赖包和python组件。如果长久没反应,杀掉重来。多试几次。 sudo ./certbot-auto --nginx certonly # 建议带上certonly参数,否则程序会 ...
Spring Boot添加静态资源目录
发表于2017-07-31
Hexo的好处很多,坏处之一就是图片的处理了。虽然可以在_post下创建静态资源目录,但我是把这个目录当作笔记目录,多了一些文件夹强迫症真的受不了。而第三方图床服务,总不能放心。刚好我的服务器上同时还有个jar在跑,目的是提供我的api,那么就通过这个去实现我自己的图床吧。 实现方式这个api.jar采用的是Spring Boot架构,虽然可以通过字节流去定义一个RESTful API提供图片服务,但觉得是高射炮打蚊子。还是直接增加一个外部资源目录,通过访问静态资源的方式去提供图片。本地通过ftp上传图片在这个目录。后续有必要的话,还可以建一个Git仓库,通过hooks转发到这个目录里去。 具体步骤增加一个配置类,继承WebMvcConfigurerAdapter类,并重写addResourceHandlers方法。 package com.lefer.bed;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annota ...
Spring AOP实现零侵入日志记录
发表于2017-07-31
软件系统的日志输出是必不可少的,目前在做的RESTful系统中,需要考虑比较复杂的日志处理,但又不想让开发人员在写每个API的时候都去考虑日志的处理,干扰正常的开发,于是决定采用AOP实现零侵入的日志处理。以下是核心思路。 引入AOP依赖在项目的pom.xml中引入AOP依赖,对于Spring Boot来说应如下。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 编写Aspect类package com.lefer.demo4doc.aspect;import com.fasterxml.jackson.databind.ObjectMapper;import com.lefer.demo4doc.common.Result;import io.swagger.annotat ...
Linux 常用命令记录
发表于2017-07-31
发现每次需要在Centos里干什么事的时候,都要搜索一把对应的命令是啥,一次又一次( ̄﹏ ̄;)。这次下决心把我用到的命令慢慢全记录下来。免得查来查去浪费时间。 查看端口被谁占用,然后干掉它。 lsof -i:4000 # 查看4000端口是由哪个进程占用,获取进程号PIDps -ef|grep 43254 # 查找进程号对应的程序kill -9 43254 # 干掉它 查看所有端口 netstat -ntlp 压缩 tar –czvf xxx.tar.gz xxxtar -xzvf xxx.tar.gz firewall # 列出规则sudo firewall-cmd --list-port# 添加规则sudo firewall-cmd --zone=public --add-port=6022/tcp --permanent# 移除规则sudo firewall-cmd --zone=public --remove-port=6022/tcp --permanent# 向指定网段开放指定端口sudo firewall-cmd --permanent --add ...
跨浏览器调用总结
发表于2017-07-31
在行业软件的环境中,客户方通常拥有很多套B/S软件系统,可能各自对浏览器有着特殊的要求,比如必须用chrome访问,必须用IE访问等。当去做一个集成类的B/S系统时,就出现了需要唤起特定的浏览器去打开特定的url的场景,笔者根据自己的经验对可以采取的方案进行了总结。 方案一、使用插件及引擎 IE->Chrome 通过安装google-chrome-frame框架,然后使用gcf://协议去指定IE调用google-chrome-frame去渲染。但需要注意的是,谷歌浏览器内嵌框架从2014年2月25日起已经停止维护更新。 Chrome->IE 通过安装Chrome扩展组件,如IETab,Open IE等,然后在js中调用。由于行软环境通常无法访问外网,而且谷歌应用商店在墙外,所以开发者需要直接提供.extension文件供客户安装。有一定的实施难度。 方案二、通过ActiveX控件 IE->Chrome 通过js的ActiveXObject对象来调用Chrome。需要注意的是这种方法需要修改浏览器的安全级别允 ...
设计模式演绎-单例模式
发表于2017-07-30
定义 Ensure a class has only one instance, and provide a global point of access to it. 确保某一个类只有一个实例,而且自行实例化并向整个系统提供整个实例。 通用类图 单例模式类的构造方法是一个私有构造方法 单例模式类的属性包含自身,并限制为private static final类型,默认调用自身的构造函数 单例模式类提供static的getSingleton()方法供外部引用 通用代码public class Singleton(){ private static final Singleton singleton = new Singleton(); //私有静态属性 private Singleton(){} //私有构造方法 public static Singleton getSingleton(){} //引用者必须通过该方法获得实例对象 public static void doSomething(){} ...
1…141516…20
avatar
LeFer
日拱一卒,功不唐捐
文章
197
标签
94
分类
0
公告
不见五陵豪杰墓,无花无酒锄作田!
最新文章
全球智能危机(第二部分:一场来自未来的金融史思想实验)2026-02-26
全球智能危机(第一部分:Agentic AI的兴起)2026-02-25
技术组织重构——基于 Multi-Agent 的研发新范式2026-02-16
警惕!AI时代的马车误区2026-02-08
代码之外:AI浪潮下,开发者的“变”与“不变”2026-02-06
最新评论
正在加载中...
标签
spring boot starter spring cloud jib ocr 软件工程 cdh ibus spring security spring modulith sse vmware websocket jointjs vscode mysql docker 架构 gitbook 可信数据空间 postgresql gitlab 项目 机器学习 disruptor 干货 xfce DDD emby nodejs spring boot mdm webservice 数据仓库 nas drools ubuntu AI 常识 pdf his
网站资讯
文章数目 :
197
已运行时间 :
本站总字数 :
180.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2015 - 2026 By LeFer
沪ICP备2024075747号沪公网安备31011502401302号
搜索
数据库加载中