目录
Feign调用中文参数被encode编译
记录今天遇到的feign多参数问题
Feign调用中文参数被encode编译
原因
在实现一个feign调用时使用了Post请求,并且拼接url参数,name传值为中文时被encode转译,且最终接取数据之前未被decode转译回,问题探索:
feign:
@FeignClient(name = "service-test")
public interface TestServiceApi {
@PostMapping("/test/abc")
public String getTestNo(@RequestParam("code") String code, @RequestParam("name") String name);
}
controller:
@RequestMapping("/test")
public interface TestController {
@Autowired
private TestService testService;
@PostMapping("/abc")
public String getTestNo(@RequestParam("code") String code, @RequestParam("name") String name) {
return testService.query(code, name);
}
}
在controller中接到的中文参数被URIEncode转译了
测试 被转译成:%E6%B5%8B%E8%AF%95
找到feign的入口类ReflectiveFeign中拼装RequestTemplate的方法:
@Override
public RequestTemplate create(Object[] argv) {
RequestTemplate mutable = new RequestTemplate(metadata.template());
if (metadata.urlIndex() != null) {
int urlIndex = metadata.urlIndex();
checkArgument(argv[urlIndex] != null, "URI parameter %s was null", urlIndex);
mutable.insert(0, String.valueOf(argv[urlIndex]));
}
Map varBuilder = new LinkedHashMap();
for (Entry> entry : metadata.indexToName().entrySet()) {
int i = entry.getKey();
Object value = argv[entry.getKey()];
if (value != null) { // Null values are skipped.
if (indexToExpander.containsKey(i)) {
value = expandElements(indexToExpander.get(i), value);
}
for (String name : entry.getValue()) {
varBuilder.put(name, value);
}
}
}
// 组装template的方法
RequestTemplate template = resolve(argv, mutable, varBuilder);
if (metadata.queryMapIndex() != null) {
// add query map parameters after initial resolve so that they take
// precedence over any predefined values
template = addQueryMapQueryParameters(argv, template);
}
if (metadata.headerMapIndex() != null) {
template = addHeaderMapHeaders(argv, template);
}
return template;
}
在RequestTemplate类中如果是拼接在url后的param那么会被使用encodeValueIfNotEncoded都encode转译,但是不会走decode的方法
/**
* Resolves any template parameters in the requests path, query, or headers against the supplied
* unencoded arguments. relationship to JAXRS 2.0 This call is
* similar to {@code javax.ws.rs.client.WebTarget.resolveTemplates(templateValues, true)} , except
* that the template values apply to any part of the request, not just the URL
*/
RequestTemplate resolve(Map unencoded, Map alreadyEncoded) {
replaceQueryValues(unencoded, alreadyEncoded);
Map encoded = new LinkedHashMap();
for (Entry entry : unencoded.entrySet()) {
final String key = entry.getKey();
final Object objectValue = entry.getValue();
String encodedValue = encodeValueIfNotEncoded(key, objectValue, alreadyEncoded);
encoded.put(key, encodedValue);
}
String resolvedUrl = expand(url.toString(), encoded).replace("+", "%20");
if (decodeSlash) {
resolvedUrl = resolvedUrl.replace("%2F", "/");
}
url = new StringBuilder(resolvedUrl);
Map> resolvedHeaders = new LinkedHashMap>();
for (String field : headers.keySet()) {
Collection resolvedValues = new ArrayList();
for (String value : valuesOrEmpty(headers, field)) {
String resolved = expand(value, unencoded);
resolvedValues.add(resolved);
}
resolvedHeaders.put(field, resolvedValues);
}
headers.clear();
headers.putAll(resolvedHeaders);
if (bodyTemplate != null) {
body(urlDecode(expand(bodyTemplate, encoded)));
}
return this;
}
如果传入的值在requestBody中,则不会被encode转译
@Override
public void encode(Object requestBody, Type bodyType, RequestTemplate request)
throws EncodeException {
// template.body(conversionService.convert(object, String.class));
if (requestBody != null) {
Class requestType = requestBody.getClass();
Collection contentTypes = request.headers().get("Content-Type");
MediaType requestContentType = null;
if (contentTypes != null && !contentTypes.isEmpty()) {
String type = contentTypes.iterator().next();
requestContentType = MediaType.valueOf(type);
}
for (HttpMessageConverter messageConverter : this.messageConverters
.getObject().getConverters()) {
if (messageConverter.canWrite(requestType, requestContentType)) {
if (log.isDebugEnabled()) {
if (requestContentType != null) {
log.debug("Writing [" + requestBody + "] as \""
+ requestContentType + "\" using ["
+ messageConverter + "]");
}
else {
log.debug("Writing [" + requestBody + "] using ["
+ messageConverter + "]");
}
}
FeignOutputMessage outputMessage = new FeignOutputMessage(request);
try {
@SuppressWarnings("unchecked")
HttpMessageConverter copy = (HttpMessageConverter) messageConverter;
copy.write(requestBody, requestContentType, outputMessage);
}
catch (IOException ex) {
throw new EncodeException("Error converting request body", ex);
}
// clear headers
request.headers(null);
// converters can modify headers, so update the request
// with the modified headers
request.headers(getHeaders(outputMessage.getHeaders()));
// do not use charset for binary data
if (messageConverter instanceof ByteArrayHttpMessageConverter) {
request.body(outputMessage.getOutputStream().toByteArray(), null);
} else {
request.body(outputMessage.getOutputStream().toByteArray(), Charset.forName("UTF-8"));
}
return;
}
}
String message = "Could not write request: no suitable HttpMessageConverter "
+ "found for request type [" + requestType.getName() + "]";
if (requestContentType != null) {
message += " and content type [" + requestContentType + "]";
}
throw new EncodeException(message);
}
}
综合上述的调试,如果在Post中拼接参数那么会被encode转译,且不会被decode转译,如果使用body传参,那么不会出现转译问题,如果必须使用拼接传参,那么可以使用方法
1. @RequestLine的注解自定义参数的格式,具体参考该注解的使用方式。
2.在Feign的RequestInterceptor将传递的值decode的扩展方法。
记录今天遇到的feign多参数问题
1.Post方式
错误写法示例如下:
public int save(@RequestBody final User u, @RequestBody final School s);
错误原因:
fegin中可以有多个@RequestParam,但只能有不超过一个@RequestBody,@RequestBody用来修饰对象,但是既有@RequestBody也有@RequestParam,
那么参数就要放在请求的Url中,@RequestBody修饰的就要放在提交对象中。
注意!!! 用来处理@RequestBody Content-Type 为 application/json,application/xml编码的内容
正确写法示例如下:
public int save(@RequestBody final Person p,@RequestParam("userId") String userId,@RequestParam("userTel") String userTel);
2.Get方式
错误写法示例如下:
@RequestMapping(value="/test", method=RequestMethod.GET)
Model test(final String name, final int age);
错误原因:
异常原因:当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面可以不加该注解修饰,@RequestParam可以修饰多个,@RequestParam是用来修饰参数,不能用来修饰整个对象。
注意:@RequestParam Content-Type 为 application/x-www-form-urlencoded 而这种是默认的
正确写法示例如下:
@GetMapping("/getSchoolDetail")
public ResultMap getSchoolDetail(@RequestParam("kSchoolId") LongkSchoolId,
@RequestParam("kSchoolYearId") Long kSchoolYearId);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
你可能感兴趣的:(feign调用中文参数被encode编译的问题)
JAVA--集合
xiaoxiaobaozhu
java 开发语言
集合的概念集合类存放的都是对象的引用,而非对象本身。集合中不能存放基本数据类型,只能存放引用数据类型。集合是一个动态的数组,数组的长度不可发生改变,集合的长度是可以改变的。Collection的特点Collection接口中的元素是可重复的但无序的;Lis集合元素是可重复的有序的,每一个元素都存在一个索引;ArryList集合对数组进行封装,是顺序结构;特点查询快,增删慢,线程不安全,效率高;链式
MongoDB 的批量查找符号
yqcoder
mongodb 数据库
一、`$in`操作符1.功能`$in`操作符用于匹配字段值等于指定数组中任意值的文档,能批量查找多个特定值的文档。2.语法示例db.collection.find({field:{$in:[value1,value2,...]}});3.代码示例假设有个名为`users`的集合,里面存有用户信息,若要查找`age`为20、25或30的用户,可使用以下代码:db.users.find({age:{$
MySQL 的 AUTO-INC 锁
程序员蔡徐坤
mysql 数据库
关于AUTO-INC锁及其相关机制的总结:一、AUTO-INC锁的作用功能:用于实现自增主键(AUTO_INCREMENT)的并发控制,确保主键值的连续性和唯一性。锁类型:表级锁。释放时机:传统模式下,AUTO-INC锁在插入语句执行完成后释放。轻量级模式下,锁在分配自增值后立即释放。二、AUTO-INC锁的演进传统模式(AUTO-INC锁):插入数据时加表级锁,语句执行完成后释放。问题:高并发插
赋能 DeepSeek:打造图文互生能力,助力测试工程师提效
Python测试之道
人工智能 python
前言作为测试工程师,我们日常工作中经常需要处理图文相关的任务,例如:基于测试需求生成示意图:通过简单的文字描述生成流程图、架构图等,提高测试设计效率。从图中提取关键信息生成文档:从截图或流程图中提取重要信息,自动生成测试用例或需求分析。然而,DeepSeek-r1:1.5b本地模型虽然在自然语言处理方面表现出色,但并不具备直接的图像生成或图像解析能力。如果能为DeepSeek增加“图生文”或“文生
DeepSeek 在 Windows 环境下的具体部署步骤及常见问题解决方案
Python测试之道
python 测试提效 人工智能 python
DeepSeek是一个开源的智能语义搜索框架,其本地部署可以帮助企业或个人在保证数据隐私的前提下实现快速搜索和检索。以下是针对Windows环境的具体部署步骤以及常见问题的解决方法。一、部署环境要求在Windows环境下部署DeepSeek,需要具备以下条件:1.系统要求Windows10或更高版本64位操作系统2.必备软件Python:推荐Python3.8或以上版本(确保安装时勾选“添加到PA
【Markdown】1 文本样式
Source.Liu
markdown Markdown
一、斜体、粗体、斜体加粗通过星号(*)和底线(_)实现,单个符号表示斜体;两个符号表示加粗;三个符号不常见,表示斜体加粗。如*斜体*、**加粗**、***斜体加粗***效果为:斜体、加粗、斜体加粗二、下划线用和实现如带下划线的文本效果为:带下划线的文本三、删除线用~~实现如~~带删除线的文本~~效果为:带删除线的文本四、指定字体格式:·文字·如·我是黑体字·效果为:我是黑体字五、字体颜色格式:·c
Chrome将网页保存为PDF的实战教程
爱编程的喵喵
Python基础课程 Windows实用技巧 windows chrome 网页保存为PDF 实战教程
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了Chrome将网页保存为PDF的实战
DeepSeek从入门到精通(7大场景+50案例+全套提示词)附下载地址
麟飞扬
人工智能
文章目录前言一、主要内容二、下载地址前言《DeepSeek从入门到精通(7大场景+50案例+全套提示词)》详细介绍了如何从基础到高级使用DeepSeek这一AI工具,涵盖了多个应用场景和具体案例,通过大量的案例和提示词模板,帮助我们从入门到精通DeepSeek,涵盖了日常生活、家庭教育、职场工作、创业管理、自媒体创作、投资分析等多个领域。文档还介绍了如何结合其他工具(如即梦、Mermaid、硅基流
Raspberry Pi、Arduino 和ESP32对比
JNI_42020487
嵌入式硬件
RaspberryPi、Arduino和ESP32都是非常流行的嵌入式开发平台,各自具有不同的特点和优势。根据这些平台的硬件能力、功能、性能和生态环境,它们适用于不同类型的项目。以下是这三者适用的场景和特点比较:1.RaspberryPi适用场景:桌面计算和多媒体应用:操作系统:RaspberryPi能运行完整的Linux系统(如Raspbian或其他发行版),因此适合需要操作系统支持的应用,比如
嵌入式编译工具链比较
JNI_42020487
编译工具
在嵌入式开发中,编译工具链是开发过程中非常重要的一部分,它包含了一系列用于代码编译、调试、链接和打包的工具。一个完整的嵌入式编译工具链通常包括编译器、汇编器、链接器、调试器等。下面是常见的嵌入式编译工具链及相关工具:1.GCC(GNUCompilerCollection)GCC是最常用的开源编译器集合,广泛应用于嵌入式开发。GCC支持多种处理器架构,包括ARM、AVR、MIPS、RISC-V等,因
php mongodb分组查询,Laravel使用MongoDB复杂的查询
weixin_39633165
php mongodb分组查询
1、Laravel使用的mongodb库composerrequirejenssegers/mongodb2、分组查询用户表中包含city_id:城市IDsex:性别,1男,2女age:年龄需要通过城市ID分组查询性别未男女的平均值,那么在laravel中实现如下,其他框架也大同小异$cityId=1;//城市ID$count=UserModel::query()->raw(function($c
wiredtiger java_mongodb数据库损坏,丢失WiredTIger.wt等meta文件,通过collection*.wt恢复数据...
又逢账号起名时
wiredtiger java
mongodb恢复wiredtiger数据Backgroundmongodb是一款开源NoSQL非关系型数据库,通过database,collection组织存储数据文件,其中在每个collection中,每条数据被存储为一个document,而每个document为一组键值对。此外,mongodb默认使用WiredTiger作为数据存储引擎,WiredTiger为数据管理提供了不同粒度的并发控制
java json-rpc_JSON-RPC(jsonrpc4j)使用demo
马晓波
java json-rpc
服务端开发,在很多情况下,需要使用到RPC框架,今天发现一款很轻量的RPC框架——JSON-RPC。jsonrpc是一种以json为消息格式的远程调用服务,它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种远程过程调用可以使用http作为传输协议,也可以使用其它传输协议,传输的内容是json消息体。jsonrpc和xmlrpc相比具有很多优点。
influxdb数据过期_「监控」InfluxDB系统架构分析
云锋金融
influxdb数据过期
InfluxDB系统架构参考:时序数据库技术体系–初识InfluxDB简单的理解:DatabaseInfluxDB中有着和传统数据库一样的Database的概念RetentionPolicy(RP)数据保留策略。核心作用有3个:指定数据的过期时间,指定数据副本数量以及指定ShardGroupDuration.RP创建语句如下:CREATERETENTIONPOLICYONONDURATIONREP
linux中流设备_设备端SDK(Linux)文档
知酒僧
linux中流设备
设备端SDK(Linux)文档更新时间:2019-03-1421:55:00功能描述摄像头直播:支持RTMP推流,当前视频支持H264,音频支持G711a以及AAC_LC格式.存储卡录像查看:将存储在SD卡等外存中的录像文件推到服务端,支持seek到指定位置操作.语音对讲:与App端建立双向语音通道,设备端采集录音并实时发送至App端,同时接收到App端发送的语音进行播放.拍照:抓拍当前摄像头画面
时序数据库技术体系 – 初识InfluxDB(原理)
weixin_30622181
数据库 大数据 系统架构
原贴地址:http://hbasefly.com/2017/12/08/influxdb-1/?qytefg=c4ft23在上篇文章《时序数据库体系技术–时序数据存储模型设计》中笔者分别介绍了多种时序数据库在存储模型设计上的一些考虑,其中OpenTSDB基于HBase对维度值进行了全局字典编码优化,Druid采用列式存储并实现了Bitmap索引以及局部字典编码优化,InfluxDB和Beringe
Implementing JSON RPC 2.0 over WebSocket with Spring Bo
AI天才研究院
Python实战 Java实战 深度学习实战 自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
作者:禅与计算机程序设计艺术1.简介JSON-RPC(RemoteProcedureCall)是一种远程过程调用(RPC)协议。它允许客户端通过网络从远端服务器请求服务。本文将展示如何在SpringBoot框架上实现JSON-RPC协议。基于WebSocket,前端通过JavaScript调用后端的方法并获取结果。我们还将讨论关于性能,容错性,可扩展性等方面的问题。2.基本概念及术语JSONJav
国产数据库有哪些?介绍下他们的名字、作者、成熟度、适用的应用场景、不足。
陈老师还在写代码
SpringBoot100问 数据库
国产数据库近年来发展迅速,以下是一些主要产品及其特点:1.达梦数据库(DM)作者/公司:武汉达梦数据库有限公司成熟度:成熟,广泛应用于政府、金融等领域。应用场景:政府、金融、电信、能源等对数据安全要求高的行业。不足:生态相对较小,社区支持不如国际主流数据库。2.人大金仓(Kingbase)作者/公司:北京人大金仓信息技术股份有限公司成熟度:成熟,广泛应用于政府、军工等领域。应用场景:政府、军工、教
SpringBoot分布式应用程序和数据库在物理位置分配上、路由上和数量上的最佳实践是什么?
陈老师还在写代码
SpringBoot100问 spring boot 数据库 后端
在设计和部署SpringBoot分布式应用程序时,物理位置分配、路由和数据库数量的最佳实践对系统性能、可用性和可维护性至关重要。以下是相关建议:1.物理位置分配最佳实践:靠近用户部署:将应用实例部署在靠近用户的数据中心,减少延迟,提升响应速度。多区域部署:在多个地理区域部署应用实例,确保高可用性和灾难恢复能力。CDN使用:通过CDN分发静态资源,进一步降低延迟。2.路由最佳实践:负载均衡:使用负载
mysql、redis和MongoDB三大数据库的优点和区别
DreamCity07
mongodb 数据库 mysql
NoSQL的全称是NotOnlySQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但MongoDB并不是单纯的内存数据库。MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高
Oracle数据库
岚苼
oracle 数据库
文章目录1.表的创建(1)创建表的语法举例1:创建出版社表。举例2:创建图书表(2)使用DESCRIBE(describe)显示图书表的结构(3)通过子查询创建表举例(4)设置列的默认值DEFAULT(default)举例(5)删除已创建的表解析CASCADECONSTRAINTS(cascadeconstraints)2.表的操作(1)表的重命名RENAMETO(2)清空表TRUNCATE(tr
一文搞懂动态规划
程序员bigsai
数据结构与算法 动态规划 算法 数据结构与算法 Java
首发公众号bigsai,首发博客平台csdn,谢绝未联系转载前言大家好,我是bigsai,好久不见,甚是想念(天天想念)!很久前就有小伙伴被动态规划所折磨,确实,很多题动态规划确实太难看出了了,甚至有的题看了题解理解起来都费劲半天。动态规划的范围虽然确实是很广很难,但是从整个动态规划出现的频率来看,这几种基础的动态规划理解容易,学习起来压力不大,并且出现频率非常高。这几个常见的动态规划有:连续子数
mongodb分组统计
天εə界
NoSQL mongodb 分组统计
一、对字段(protocol)下的不同类型进行分组统计:db.getCollection('xxx').aggregate([{"$group":{"_id":{"protocol":"$protocol"},"protocolCount":{"$sum":1}}}])或db.getCollection('bp0501_dev').aggregate([{"$group":{"_id":"$pro
Oracle EBS Update SYSTEM Password - 11i && R12
Albert Tan
oracle
前言为何会提到SYSTEM用户?因为在打补丁时,需要验证SYSTEM用户的密码。但由于该密码较为复杂,不太好记忆,所以临时产生一个想法,更改SYSTEM密码。在EBS系统中,数据库用户和应用层的用户密码更改方式不一样,应用层需要使用FNDCPASS工具进行更改。数据库层对于SYSDBA用户使用orapw,普通用户使用SQL语法进行修改。正文开始1、什么是SYSTEM用户?DBTier:SYSTEM
Rockchip RK3588 Linux SDK 快速入门
撸一串代码
RK3588 平台从入门到精通 linux 驱动开发
RockchipRK3588LinuxSDK快速入门目录文章目录RockchipRK3588LinuxSDK快速入门@[toc]1.SDK预编译镜像2.开发环境搭建准备开发环境安装库和工具集检查和升级主机的`python`版本检查和升级主机的`make`版本检查和升级主机的`lz4`版本3.Docker环境搭建4.软件开发指南开发向导芯片资料Buildroot开发指南Debian开发指南第三方OS
基于深度学习YOLOv8的海洋动物检测系统(Python+PySide6界面+训练代码)
深度学习&目标检测实战项目
深度学习 YOLO python 目标检测 人工智能 开发语言
引言近年来,计算机视觉技术在各行各业中得到了广泛的应用,特别是在智能监控、自动驾驶、医疗诊断等领域。深度学习,尤其是卷积神经网络(CNN)的出现,极大地提高了计算机处理图像和视频的能力。在这一领域,YOLO(YouOnlyLookOnce)系列模型以其高效且准确的目标检测能力,成为了当下最为流行的深度学习模型之一。在海洋生物保护、海洋环境监测等应用中,快速识别和检测海洋动物种类对于科学研究和保护工
基于YOLOv5深度学习的木材表面缺陷检测系统:UI界面 + YOLOv5 + 数据集详细教程
深度学习&目标检测实战项目
YOLO 深度学习 ui YOLOv5 人工智能 计算机视觉
随着工业自动化的发展,木材加工行业对产品质量的要求日益提高。木材表面缺陷的检测是确保产品质量的重要环节。传统的人工检测方式不仅费时费力,而且容易受到人为因素的影响。基于深度学习的目标检测技术,尤其是YOLOv5,凭借其优越的实时性和准确性,成为木材表面缺陷检测的有效工具。本博客将详细介绍如何构建一个基于YOLOv5的木材表面缺陷检测系统,包括数据集准备、模型训练、UI界面开发及完整代码实现。目录目
动手学深度学习笔记|3.2线性回归的从零开始实现(附课后习题答案)
lusterku
动手学深度学习 深度学习 笔记 线性回归
动手学深度学习笔记|3.2线性回归的从零开始实现(附课后习题答案)线性回归的从零开始实现生成数据集读取数据集初始化模型参数定义模型定义损失函数定义优化算法训练练习1.如果我们将权重初始化为零,会发生什么。算法仍然有效吗?2.计算二阶导数时可能会遇到什么问题?这些问题可以如何解决?3.为什么在`squared_loss`函数中需要使用`reshape`函数?4.尝试使用不同的学习率,观察损失函数值下
ReentrantLock的多个条件用法
众乐乐_2008
面试 java 算法 开发语言
Condition是java.util.concurrent.locks包中的一个接口,它提供了类似于传统的线程间通信机制(如wait()、notify()、notifyAll())的功能,但更强大和灵活。通过lock.newCondition()可以创建多个条件变量。以下是一个简单的示例,展示了如何使用ReentrantLock和Condition来支持多个条件变量:importjava.uti
Linux应用层开发(5):I2C通讯
lishing6
网络 arm开发 ubuntu linux 嵌入式硬件
1.I2C通讯协议简介I2C通讯协议(Inter-IntegratedCircuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,被广泛地使用在多个集成电路(IC)间的通讯。1.1.I2C物理层I2C通讯设备之间的常用连接方式如下图。它的物理层有如下特点:它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个I2
ztree设置禁用节点
3213213333332132
JavaScript ztree json setDisabledNode Ajax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
JVM patch by Taobao
bookjovi
java HotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
将session存储到数据库中
dcj3sjt126com
sql PHP session
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
[简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
String,int,Integer,char 几个类型常见转换
antonyup_2006
html sql .net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
PL/SQL的游标类型
百合不是茶
显示游标(静态游标) 隐式游标 游标的更新和删除 %rowtype ref游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4 单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
精通Oracle10编程SQL(12)开发包
bijian1013
oracle 数据库 plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
java eclipse spring tomcat Web
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
angular.element
boyitech
AngularJS AngularJS API angular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
sftp 异常,有遇到的吗?求解
Chen.H
java jcraft auth jsch jschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
[生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
通过LAC和CID获取经纬度信息
dai_lm
lac cid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
小学5年级英语单词背诵第二课
dcj3sjt126com
english word
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环 Map迭代 Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
学习编程那点事
lampcy
编程 android PHP html5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$ 转义 el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str