Java EE
文章平均质量分 61
智能体格
一线大厂14年IT老兵,擅长互联网技术开发与项目管理,企业人工智能整体架构设计与应用落地,大模型训练/微调/推理,智能体开发。
展开
-
com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 20, maxActive 20
从异常现象中 com.alibaba.druid.pool.GetConnectionTimeoutException 可以看到错误信息提示是阿里巴巴Druid数据库连接池的数据库获取连接超时异常原因,具体为 active 20,活动的连接数为20, maxActive 20, 最大的连接数为20, 意思很明显,活动的连接数与最大连接数相同,连接用完了,在等待(我写的配置是60000毫秒即60秒)新的连接,却没有新连接可用,然后超时了。......原创 2022-08-19 09:12:10 · 5169 阅读 · 0 评论 -
SpringBoot整合RocketMQ事务/广播/顺序消息
rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是順序消费消息的;有時候,我们需要顺序消费一批消息,比如电商系统 订单创建、支付、完成操作,需要順序执行;RocketMQTemplate给我们提供了SendOrderly方法(有多個重载),来实现发送顺序消息;包括以下:syncSendOrderly,发送同步顺序消息;asyncSendOrderly,发送异步顺序消息;sendOneWayOrderly,发送单向顺序消息;一般我们用syncSe原创 2022-07-27 10:56:25 · 576 阅读 · 0 评论 -
SpringBoot 2.x Security security.basic.enabled=false 失效问题解决
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于 Spring 的应用程序的实际标准。Spring Security致力于为 Java 应用程序提供身份验证和授权。与所有 Spring 项目一样,Spring Security 的真正强大之处在于可以轻松扩展以满足自定义要求。...原创 2022-07-26 15:35:09 · 1415 阅读 · 0 评论 -
springboot自带缓存caffeine使用
轻松搞定springboot缓存缓存使用步骤:@Cacheable这个注解,用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤:开启基于注解的缓存,使用 @EnableCaching 标识在 SpringBoot 的主启动类上。...原创 2022-07-22 17:43:44 · 734 阅读 · 0 评论 -
Spring session 浏览器sessionId与服务器不一致解决方案
项目情况:spring boot 和spring session 版本都是2.0.2.RELEASE问题描述:请求项目接口后浏览器保存的sessionId与服务器不一致,拿Postman测试如下图,网上找了很久都没发现有人发过这个问题,只能自己去找了spring session的深入分析一系列文章以及阅读源码,最后结合到今天找到的一个帖子,不过他里面处...原创 2019-12-12 15:29:36 · 2223 阅读 · 0 评论 -
Springboot加密配置文件中的敏感信息(ps:数据库密码)的方法
SpringBoot配置文件中的内容通常情况下是明文显示,安全性就比较低一些。打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余。1.这里介绍一个加解密组件,提高一些属性配置的安全性。jasypt是一个Springboot下的工具包以数据库用户名和数据库密码加密为例步骤如下:(1)引入...原创 2019-12-10 14:29:06 · 761 阅读 · 0 评论 -
git实验之代码提交
代码提交代码提交一般有五个步骤:1.查看目前代码的修改状态2.查看代码修改内容3.暂存需要提交的文件4.提交已暂存的文件5.同步到服务器1. 查看目前代码的修改状态提交代码之前,首先应该检查目前所做的修改,运行git status命令a) 已暂存 (changes to be committed)new fi转载 2015-05-13 11:55:40 · 1062 阅读 · 0 评论 -
Struts2(多)文件上传和下载使用示例
/** * Struts2Test * 使用Struts2上传文件 */package com.labci.struts2.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.ArrayList;import java.转载 2014-06-14 20:01:07 · 846 阅读 · 0 评论 -
利用Spring Hibernate注解packagesToScan的简化自动扫描方式
发现一种Spring Hibernate 注解的简化方式原始方式原创 2014-06-03 13:49:49 · 8363 阅读 · 0 评论 -
注意Hibernate4在开发当中的一些改变
Hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这里简单介绍了hibernate4相对于hibernate3配置时出现的错误,只列举了问题和解决方法,详细原理如果大家感兴趣还是去自己搜吧,网上很多。Spring3.1去掉了Hi转载 2014-06-01 09:29:33 · 639 阅读 · 0 评论 -
Struts2防止表单刷新重复提交
防止表单重复提交主要用的到标签是,拦截器 interceptor-refname="token"/>,还有一个默认的返回值resultname="invalid.token">/input.jspresult> 在页面加载时,产生一个GUID(Globally Unique Identifier,全局唯一标识符)值的隐藏输入框如:同时,将GUID放到会话(ses原创 2014-06-15 11:52:31 · 1902 阅读 · 0 评论 -
xmpp
关于xmpp协议可以参考:http://www.jabbercn.org什么是OpenFireOpenfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。 您可以使用它轻易的构建高效率的即时通信服务器。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。由于是采用开放的XMPP协议,您可以使用各原创 2014-06-18 09:32:38 · 1081 阅读 · 0 评论 -
getSession().createCriteria()查询
@Override public List findByMap(Map map) { String page = map.get("page"); String rows = map.get("rows"); String sort = map.get("sort"); String order = map.get("order"); String startDate = m原创 2014-06-12 22:13:25 · 2889 阅读 · 0 评论 -
Hibernate SQLQuery 返回结果转成Map
Hibernate 涉及到执行存储过程的话返回的一般是个List,而list里面存储的都是Object,一般需要遍历list再把里面的Object 转成自己想要的数据结构。其实我们可以在 SQLQuery之前设置返回结果集的数据结果,代码如下:String callSQL = "{Call bp_business_stat(?,?,?,?,?,?,?)}";SQLQuery query原创 2014-05-29 09:56:55 · 8053 阅读 · 0 评论 -
Hibernate中createCriteria即QBC查询的详细用法
现在假设有一个Student类,内有id,name,age属性 String hql = "from Student s"; 按照以前的做法,我们通常是 Query query = session.createQuery(hql); 或者要按照条件检索的话. String hql = "from Student s where s.name like '王%'"Quer原创 2014-06-11 09:04:06 · 746 阅读 · 0 评论 -
struts2完全捕获404错误的方法
目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是tomcat。希望用户在IE地址栏乱敲的时候,所敲入的所有未定义的URL都能被程序捕捉到,然后转到一个自制的404错误处理页面。首先查阅网上的资料,得知可以在web.xml中加入这么一段: 404 /error/404.jsp这样,所以未找到的404错误都会转到/error/4原创 2014-06-11 15:05:38 · 2334 阅读 · 0 评论 -
expression="execution(*service..*.*(..))"
(* com.evan.crm.service.*.*(..))中几个通配符的含义: |第一个 * —— 通配 随便率性返回值类型| |第二个 * —— 通配包com.evan.crm.service下的随便率性class| |第三个 * —— 通配包com.evan.crm.service下的随便率性class的随便率性办法| |第四个 .. —— 通配 办法可以有0个或原创 2014-06-05 15:35:02 · 5872 阅读 · 0 评论 -
如何应用JsonConfig解决There is a cycle in the hierarchy!
Web项目中数据库表很多时,往往会出现表Set集合与表Set集合的互相嵌套,在将这些数据进行JSON转换时很可能会报一个错误“There is a cycle in the hierarchy!”。今天就遇到了一个棘手的问题,通过过滤条件过滤时,我发现“曾孙层”与“爷爷”层重名,我只想过滤曾孙层时,进行单纯的过滤发现把“爷爷”层也给过滤掉了,去掉过滤字符,却提示我有“There is a cycl转载 2014-05-22 10:49:43 · 974 阅读 · 0 评论 -
过滤器、监听器、拦截器的区别
1.过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面转载 2014-04-13 23:37:14 · 544 阅读 · 0 评论 -
web.xml里<filter-mapping>中的<dispatcher>作用
在2.4版本的servlet规范在部属描述符中新增加了一个元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个元素中加入任意数目的,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过过来的request。如果没有指定任何元素,默认值是REQUEST。可以通转载 2014-04-23 00:26:54 · 1036 阅读 · 0 评论 -
flashbuilder4.5 作为eclipse插件
Flash Builder 4.5 支持将其作为插件安装到现有 Eclipse 实例中。具体操作如下:完成上述安装过程。导航至 Flash Builder 的安装位置,打开X:/FB4.5/Adobe Flash Builder 4.5/utilities。运行可执行文件 Adobe Flash Builder 4.5 Plug-in Utility.exe。选择语言并单击“确定”。根据提翻译 2014-03-26 20:29:59 · 1105 阅读 · 0 评论 -
inner/outer join in hibernate
hibernate目前(3.0) 只支持theta-style的外连接,标准的ANSI-style外连接暂不支持ANSI-style的外连接是什么样子?select template from CoTemplate template left outer join CoTempField field on template=field.comp_id.coTemplate原创 2014-12-01 16:38:44 · 1750 阅读 · 0 评论 -
Spring 之注解事务 @Transactional
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:事务传播行为类型 说明原创 2015-04-22 11:07:03 · 1072 阅读 · 0 评论 -
Spring事务配置的五种方式
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一原创 2015-04-22 12:40:24 · 939 阅读 · 0 评论 -
常见通信协议与通讯协议梳理- 通讯协议
1 “通信”与“通讯”傻傻分得清传统意义上的“通讯”主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其网络的构成主要由电子设备系统和无线电系统构成,传输和处理的信号是模拟的。所以,“通讯”一词应特指采用电报、电话、网络等媒体传输系统实现上述媒体信息传输的过程。“通讯”重在内容形式,因此通讯...原创 2019-08-25 11:47:37 · 24607 阅读 · 0 评论 -
流程引擎Flowable数据库表说明
1. Flowable数据库表命名规则ACT_RE_*’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。ACT_RU_*’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流...原创 2019-07-20 11:32:05 · 2836 阅读 · 0 评论 -
mac 下eclipse安装lombok插件
1、下载 lombok.jar (https://projectlombok.org/download.html)2、将 lombok.jar 放在eclipse安装目录下,和 eclipse.ini 文件平级的。 这里需要注意,mac操作系统下eclipse的安装路径下有两个eclipse.ini,一个是/Applications/Eclipse.app/Contents/Eclipse/e...转载 2019-01-08 21:04:05 · 1796 阅读 · 0 评论 -
java术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.VO(value object) 值对象通常用于业务层之间的数...原创 2018-03-31 15:21:06 · 315 阅读 · 0 评论 -
UTC时间转换 yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ
/** * UTC时间转换 yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ eg 2016-10-26T08:20:53.131252Z: * @return Date * @throws ParseException * @author WANGZY25 * @date 2016年10月26日 下午4:38:41 * */ public static D原创 2016-10-26 19:37:54 · 15764 阅读 · 0 评论 -
maven中如何指定jdk的版本
maven中jdk的配置分为全局配置和局部配置两种方式。 全局配置 全局配置是指在${MAVEN_HOME}\conf\settings.xml中进行配置,注${MAVEN_HOME}指的是maven的安装目录。例如,要配置jdk1.8,打开settings.xml这个文件,然后在 之间添加如下代码。 jdk18 true转载 2016-10-11 08:49:27 · 4218 阅读 · 0 评论 -
spring mvc对异步请求的处理
在spring mvc3.2及以上版本增加了对请求的异步处理,是在servlet3的基础上进行封装的。1、修改web.xmlxml version="1.0" encoding="UTF-8"?>web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w转载 2016-04-22 11:30:49 · 2128 阅读 · 0 评论 -
redis启用持久化
redis的持久化有rdb和aof两种。 rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化。 aof可以实现每次操作都持久化。 这里我们使用aof。 配置方式,打开redis的配置文件。找到appendonly。默认是appendonly no。改成appendonly yes。 再找到appendfsync 默认是: #转载 2016-03-26 16:49:17 · 531 阅读 · 0 评论 -
request.getParameter(“参数名”) 中文乱码解决方法
在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢)今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法解决问题,先要研究问题,URL传中文参数为什么会出现乱码?原因:Http请求传输时将url以ISO-8859-1编码,服务器转载 2016-03-23 17:13:32 · 51852 阅读 · 10 评论 -
MyBatis There is no getter for property named 'xxx' in 'class java.lang.String'
1. Code1.1 mapper xml[html] view plain copy select id="getItems" parameterType="string" resultMap="itemResult">...select> [html] view plain copy转载 2016-03-22 11:03:29 · 1777 阅读 · 0 评论 -
slf4j相关的配置信息
1. 首先准备相关jar包,如下: slf4j-api-1.7.2.jar,logback-classic-1.0.9.jar,logback-core-1.0.9.jar2. 在src 文件路径下,存放logback.xml文件,具体内容如下: <property name="ENCODER_PATTERN" value原创 2015-06-23 10:08:34 · 1104 阅读 · 0 评论 -
LOG4J.PROPERTIES配置详解
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appender原创 2015-06-19 15:30:04 · 638 阅读 · 0 评论 -
Log4j日志级别
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4j API (http://jakarta.apache.org/log4j/docs/api/index.html):public static final Level TRACETh原创 2015-04-24 11:54:47 · 1387 阅读 · 0 评论 -
Log4j配置文件位置+Spring中数据源配置文件位置
一.Log4j配置文件位置应用程序启动时,默认情况下会到src目录下寻找log4j.xml配置文件,若不存在,会继续寻找log4j.properties文件,只要找到其中一个就会加载该配置文件内容。2.手动加载如果将log4j.properties(或log4j.xml)放到其它目录下,比如下图中的位置,应用程序就不能自动加载log4j的配置文件了,因为应用程序找不到该配置原创 2015-04-24 11:41:48 · 6349 阅读 · 0 评论 -
异常:Missing artifact net.sf.json-lib:json-lib:jar:x.x.x:compile
json-lib是需要区分jdk版本的,pom.xml中的配置应加上标签,如用jdk15:net.sf.json-libjson-lib2.2.3jdk15 总之,以上标签是必须的,如果还是Missing,可能是因为网络原因导致下载失败。请查看本地仓库net\sf\json-lib\json-lib\2.2.3目录下是否存在json-lib-2.2.3-jdk15.原创 2014-04-08 01:13:21 · 2459 阅读 · 0 评论 -
hibernate id 生成策略 annotation @GeneratedValue
方法很简单,只需要在id属性上添加@GeneratedValue的注释即可,如下:@Entitypublic class Teacher {//private TeacherPK pk;private int id;private String name;@Id@GeneratedValue//////////默认使用的是AUTO类型,还有TABLE,IDENTIT转载 2014-04-07 22:18:47 · 2051 阅读 · 0 评论