
java及javaweb
文章平均质量分 68
IManiy
即使在搬砖,也要仰望大厦。
展开
-
Java/Kotlin双语革命性ORM框架Jimmer(一)——介绍与简单使用
Jimmer是一个Java/Kotlin双语框架包含一个革命性的ORM原创 2025-02-06 17:29:46 · 1773 阅读 · 0 评论 -
自动生成RESTful API——Spring Data Rest
○ 虽然 Spring Data REST 可以自动暴露仓库方法,但你仍然可以添加自定义控制器来处理特定的业务逻辑。你可以通过 @RepositoryRestResource 注解来自定义仓库的暴露方式。创建一个自定义的认证提供者,用于处理认证逻辑。原创 2025-01-03 17:32:49 · 851 阅读 · 0 评论 -
总结之java代码规范(一)——注释规范、IDEA类和方法注释模板设置
最近新团队需要需要整一套适合java代码规范,基于阿里java开发手册规范一下代码规范。原创 2022-06-15 11:26:16 · 2801 阅读 · 1 评论 -
总结之通过微信公众平台实现h5微信客户端自定义分享标题、描述和图标(前后端实现)
前置动作(后端开发)步骤一:绑定域名js安全域名配置很重要,前端的服务的域名,非常重要!1、先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。JS接口安全域名需要和示例格式一模一样,不需要带http/https备注:登录后可在“开发者中心”查看对应的接口权限。2、需要开启开发者密钥,配置ip白名单(后端服务器ip,获取access_token等白名单不拦截)。注意:ip白名单每天都在变化,可以参考官方获取ip方式https://developers.weixin.原创 2022-05-27 00:11:01 · 4978 阅读 · 0 评论 -
总结之Java项目中扩展依赖jar包中的类的方法
一、继承你想要扩展的类,重写想要扩展的方法但如何依赖包中有强的互相依赖,这方法是不可行的二、直接复制一份想要扩展的类,在项目中创建同包同名的类利用了类加载的优先性,本地包比依赖包的优先级高,说的是WEB-INF目录下的类加载的优先级要比lib中jar包类的优先级要高。如在本地写activiti的ConditionUtil,那就会替换掉源码中的ConditionUtil,这可以实现代码级AOP注入。...原创 2021-11-15 20:25:14 · 1345 阅读 · 0 评论 -
总结之java使用不同包下protected方法
不同包下的protected方法是不能被调用的我们可以通过内部类继承protected方法的类,然后写方法调用父类protected方法,再使用内部类的方法就可以调用到protected方法。如下:public class RedisRepository { protected static RedisSerializer<String> getRedisSerializer() { return this.redisTemplate.getStringSerializ原创 2021-11-13 21:59:36 · 2172 阅读 · 0 评论 -
总结之springboot中通过策略和工厂模式来处理if-else
意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。关键代码:实现同一个接口。优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。要点:spring两种方式可以将实现了同一接口的所有实现类注入map原创 2021-11-01 21:55:45 · 563 阅读 · 0 评论 -
总结之多线程控制三大将CountDownLatch、CyclicBarrier、Semaphore
CountDownLatchcountDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。 是通过一个计数器来实现的,计数器的初始值是线程的数量。CountDownLatch的用法CountDownLatch典型用法:1、某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为new CountDownLatch(n),每当一个任务线程执行完毕,就将计数器减1 countdownLatch.countDown(),当计数器的值变为0时,在CountDow原创 2021-10-23 17:59:54 · 333 阅读 · 0 评论 -
总结之Function、Consumer等接口使用
使用一:java可以通过Function、Consumer等接口的lambda表单式形式,提提取公共方法,把变化的部分的代码 放入lambda中,如下:xxxxxxaaaaaaxxxxxxxxxxxxbbbbbbxxxxxx代码提取public Result<User> loadRecords(Function<BpmInst,Boolean> function,List<Product>> query) { xxxx getxx(原创 2021-07-31 09:37:16 · 1101 阅读 · 0 评论 -
总结之使用lowagie.text添加PDF水印
引入依赖<!-- pdf水印 --> <dependency> <groupId>com.lowagie.text</groupId> <artifactId>com.springsource.com.lowagie.text</artifactId> <version>${com.lowagie.text.version}</version> </dependency原创 2020-08-27 18:04:35 · 3838 阅读 · 0 评论 -
总结之lowagie.text合并PDF文件
通过itext合并PDF引入依赖<dependency><groupId>com.lowagie.text</groupId> <artifactId>com.springsource.com.lowagie.text</artifactId> <version>${com.lowagie.text.version}</version></dependency>工具类public class原创 2020-08-27 18:00:05 · 1577 阅读 · 0 评论 -
总结之html字符串生成html页面
通过StringBuilder来生HTML页面private static void autoToHTML(String destDir, String destFileName, String templateString) { //用于存储html字符串 StringBuilder stringHtml = new StringBuilder(); try { //打开文件 PrintStream printStr原创 2020-08-27 17:56:27 · 1255 阅读 · 0 评论 -
总结之两种方式生成二维码(前端和后端生成)
后端方法通过com.google.zxing生成二维码1、引入依赖<com.google.zxing>3.1.0</com.google.zxing><!--二维码--> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>${com.goo原创 2020-07-29 22:50:52 · 5207 阅读 · 1 评论 -
Freemarker生成HTML页面及字符串,HTML页面生成PDF文件
Freemarker生成生成HTML三种情况1、通过.flt模板生成file2、根据模板字符串生成file3、根据模板字符串生成HTML文件字符串开始模板数据准备 private static void autoGenHTMLTest() { //给模板文件组装数据 Map<String, Object> dataMap = new HashMap<String, Object>(); SpecialInfo spe原创 2020-07-14 10:44:49 · 1809 阅读 · 0 评论 -
总结之数据导出到word模板——使用poi导出
我们先看看需求:我们要在模板标题插入内容,在多个表格中填充数据先看东西这里我写了个poi工具类方便操作import java.io.IOException;import java.io.InputStream;import java.math.BigInteger;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apa原创 2020-06-30 19:51:42 · 829 阅读 · 0 评论 -
通过HttpURLConnection发送GET和POST请求(解决转义码问题)
通过HttpURLConnection发送GET和POST请求public class HttpURLConnectionDemo { /** * get * @param httpUrl 请求 * @param encode 编码 * @return */ public static String deGet(String httpUrl,String encode){ if(encode == "" || encode ==原创 2020-05-12 17:03:00 · 2155 阅读 · 0 评论 -
java之注解——我知道的java注解知识全都告诉你
什么是注解网上java注解描述:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。当然它也支持自定义 Jav...原创 2020-05-01 00:01:47 · 351 阅读 · 0 评论 -
总结之Swagger——SpringBoot集成 Swagger 管理 API 文档
swagger介绍官网介绍https://swagger.io/docs/specification/about/Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swa...原创 2020-04-25 22:11:26 · 388 阅读 · 0 评论 -
总结之JVM调优(二)——垃圾的回收
JVM常见垃圾回收算法摘取:对象是否“已死”算法——引用计数器算法对象中添加一个引用计数器,如果引用计数器为0则表示没有其它地方在引用它。如果有一个地方引用就+1,引用失效时就-1。看似搞笑且简单的一个算法,实际上在大部分Java虚拟机中并没有采用这种算法,因为它会带来一个致命的问题——对象循环引用。对象A指向B,对象B反过来指向A,此时它们的引用计数器都不为0,但它们俩实际上已经没有意义因...原创 2020-04-21 23:00:01 · 218 阅读 · 0 评论 -
总结之Docker(三)——java常用环境部署、Dockerfile使用
Tomcat部署拉取镜像docker pull tomcat运行容器指定ip ,目录挂载docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcatNginx部署拉取镜像docker pull nginx运行容器指定ipdocker ...原创 2020-04-19 19:44:00 · 321 阅读 · 0 评论 -
总结之Docker(二)——镜像与容器
查看镜像docker images搜索镜像docker search redis来取镜像docker pull redis删除镜像docker rmi 镜像ID删除所有镜像docker rmi `docker images -q`容器CONTAINER ID:容器 diIMAGE:镜像名称:TagCOMMAND:命令CREATES:容器创建的时刻S...原创 2020-04-19 15:19:08 · 340 阅读 · 0 评论 -
总结之三级或以上指标多变报表编码设计
linux目录结构/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc 存放系统管理和配置文件/home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/usr 用于存放系统应用程序,比较重要的目录/usr/local本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目...原创 2019-11-30 21:53:02 · 1022 阅读 · 0 评论 -
总结之全文检索ElasticSearch(二)——集群管理
ES通常以集群方式工作,这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力,同时也增加了系统的 容错能力及高可用,ES可以实现PB级数据的搜索。 下图是ES集群结构的示意图:从上图总结以下概念:1、结点ES集群由多个服务器组成,每个服务器即为一个Node结点(该服务只部署了一个ES进程)。2、分片当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能...原创 2020-04-18 15:09:24 · 306 阅读 · 0 评论 -
总结之全文检索ElasticSearch(一)——解析与使用
简介1、elasticsearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。2、elasticsearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。优点:1.扩展性好,可部署上百台服务器集群,处理PB级数据。2.近实时的去索引数据、搜索数据。ElasticSearch vs Solr(1)es基本是开箱即用,非常简单。Solr安装...原创 2020-04-18 14:12:18 · 607 阅读 · 0 评论 -
总结之Tomcat、Nginx搭建集群
Tomcat集群能带来什么提供服务的性能,并发能力,以及高可用性。提供项目架构的横向扩展能力。Tomcat集群实现原理通过nginx负载均衡进行请求转发相对而言Tomcat集群带来了什么问题Session登录信息存储及读取的问题采用nginx ip hash policy -基本不用优点:可以不改变现有技术架构,直接实现横向扩展(省事)缺点:1、导致服务器请求(负载)不平均...原创 2020-04-17 23:06:24 · 282 阅读 · 0 评论 -
数据库查询的Map集合转换成实体类对象(并驼峰处理)
工具类import org.springframework.cglib.beans.BeanMap;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author liuzonghua * @Pack...原创 2020-04-16 18:17:11 · 1341 阅读 · 0 评论 -
总结之WebSocket(一)——日常应用
基于springboot2.+的webSocket应用springboot内容本章不详细描述maven依赖websocket<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</ar...原创 2020-04-07 10:45:23 · 261 阅读 · 0 评论 -
总结之maven思想、jar冲突解决
jar冲突解决方式一:第一声明优先原则:哪个jar依赖在前面就优先方式二:maven导入jar包概念直接依赖:项目直接依赖包优先传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。优先直接依赖方式三:直接排除法排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号,因此依赖包使用的版本和默认和本jar包一样pom个别标签...原创 2020-04-06 22:05:51 · 202 阅读 · 0 评论 -
总结之tag标签文件使用
所谓标记库(tag library),是指由在JSP页面中使用的标记所组成的库。JSP容器推出时带有一个小型的、默认的标记库。当JSP 标准标记库(Standard Tag Library,JSTL)还未满足到项目需要时,就要自已封装自己的taglib而自定义标记库是人们为了某种特定的用途或者目的,将一些标记放到一起而形成的一种库。tag文件是以tag为后缀名的文本文件。作为自定义的标记...原创 2020-01-16 10:44:25 · 2181 阅读 · 0 评论 -
设计模式之命令模式
命令模式:适用于命令型操作并命令内容以后不会修改如:文件操作密命令增删改等响应式操作。其定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。其缺点是命令如果很多,开发起来就要头疼了。特别是很多简单的命令,实现起来就几行代码的事,而使用命令模式的话,不用管命令多简单,都需要写一个命令类来封装。一般来说,我们会把对...原创 2019-12-18 21:33:28 · 221 阅读 · 0 评论 -
总结之单表简单实现流程审批功能
简单流程审批需求:项目流程化有开始于结束、有若干个办理节点、每个节点可以有待办和已办。审批实体设计主要:流程状态、启动状态、审核状态、有这三要素可以轻松查询审核人、待办、已办、流程当前节点、办理人等信息。实体:public class PerformanceTargetsAudit { /** * 未审核 */ public static final int AUDIT_...原创 2019-12-07 13:18:54 · 1114 阅读 · 0 评论 -
总结之常用的JSTL标签(c标签)及freemarker标签
开发jsp页面往往离不开JSTL标签,平常使用时容易忘记某些标签的使用,在此总结一下。JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!if标签if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么...原创 2019-04-15 16:50:46 · 1669 阅读 · 0 评论 -
eclipse通过离线包安装jrebel插件
网上全部都是通过eclipse来安装jrebel插件,但如此安装没有效果怎么办需要通过离线包安装jrebel下载地址:安装步骤清空eclipse中的以前的jrebel文件,在eclipse中的plugins文件夹中搜索zero并删除相关文件再把离线拷贝进plugins文件夹中打开eclipse,配置jrebel调整反映时间添加tomcat添加项目设置tomcat...原创 2019-03-26 14:37:43 · 3051 阅读 · 0 评论 -
总结之eclipse、InteliJIDEA需要知道的快捷键,极大加快编码速度
这些快捷键可能不是常用的,但一定是好用的eclipse快捷键【Ctrl+M】 窗口最大化和还原,编码窗口有时候需要调小来显示其他窗口,但编码是要调大,是不是很麻烦,一个快捷键搞定【Ct rl+D】 删除当前行,不用为删除一行而按那么多次的删除键。【Ctrl+Shift +G】 查找类、方法和属性的引用。这是一个非常实用的快捷键,例如要修改引用某个方法的代码,可以通过快捷键迅速定位所有引用此...原创 2019-02-28 22:22:36 · 245 阅读 · 0 评论 -
总结之java中File类和IO流(三)——IO文件字符流介绍与使用
FileReader父类:FileReader extends–> InputStreamReader extends–> ReaderFileReader:文件字符输入流 作用:把硬盘文件中的数据以字符的方式读取到内存中构造方法FileReader(String fileName)FileReader(File file)参数:读取文件的数据源 String fileNa...原创 2019-02-28 22:09:51 · 224 阅读 · 0 评论 -
总结之java中File类和IO流(二)——IO文件字节流介绍与使用
FileOutputStreamFileOutputStream 文件输出流,作用:把内存中的数据写入到硬盘的文件中.写入数据的原理(内存–>硬盘)java程序 -->JVM虚拟机–>os(操作系统)–>os调用写数据的方法 --> 把数据写入到文件中构造方法:FileOutputStream(String name) 创建一个向具有指定名称的文件中写入...原创 2019-02-24 22:36:52 · 210 阅读 · 1 评论 -
总结之Web两种用户登录方式及JS信息验证操作——表单提交、ajax提交
登录大体有两种方法一个是表单提交另一个就是ajax提交1.表单提交表单提交如果前端JS没有验证十分简单,不详述。JS验证用户名、密码是否为空其中非submit和button按钮submit有一些主要事项form中要onsubmit=“return login()” 其中“return”一定要写return false;//因为这是submit表单提交 返回false 不进行请...原创 2018-09-24 17:30:32 · 3144 阅读 · 0 评论 -
使用SaveAsPDFandXPS + jacob实现Java word转pdf
简介SaveAsPDFandXPS,微软官方提供的插件。必须是windows系统并且安装了office。下载和配置SaveAsPDFandXPS 下载地址 : http://www.microsoft.com/zh-cn/download/details.aspx?id=7Jacob 的jar包 下载地址 :https://sourceforge.net/projects/jacob...原创 2019-06-10 21:19:40 · 2320 阅读 · 1 评论 -
调用OpenOffice将word格式文件转换为pdf格式
简介OpenOffice 是一套跨平台的办公室软件套件,能在windows、Linux、MacOS X (X11)和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice.org 是自由软件,任何人都可以免费下载、使用及推广它。注意:JodConverter在maven中央仓库里只有2.2.1版本,2.2.1比较老,不支持office07以后的版本,而2....原创 2019-06-10 21:22:48 · 1267 阅读 · 0 评论 -
com.microsoft.sqlserver.jdbc.SQLServerException: 没有为参数号 3 设置值——解决方法
问题描述如下解决方法sql语句中用了?,执行该语句之前第3个?没有调用setXXX()方法设置值原创 2019-09-25 09:21:51 · 3960 阅读 · 2 评论