1. eclipse permgen space 問題:
debug configrations - vm arguments
最後設置:
-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256mhtml
IDEA 在Run/Debug configuration 的你要運行行的tomcat裏面的
vm options裏面輸入前端
-server -XX:PermSize=128M -XX:MaxPermSize=256mmysql
2. springmvc transactional註解問題nginx
@parameterException不會回滾
須加入rollbackFor=Exception.class git
3. Spring Validation使用web
@Validated 放到類上面正則表達式
@Valid放到controller方法上 參數前面spring
@NotBlank 字符串sql
@NotNull 整形數據庫
@NotEmpty 集合類
@Pattern(regexp ='') //正則表達式校驗
4.JSON用法
JSON.parseArray("",*.class);
JSON.parseObject("",*.class);
JSON.toJSONString(Object c);
/**
* 對字符串md5加密
*
* @param str
* @return
*/
public static String getMD5(String str) throws ParameterException {
try {
// 生成一個MD5加密計算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 計算md5函數
md.update(str.getBytes());
// digest()最後肯定返回md5 hash值,返回值爲8爲字符串。由於md5 hash值是16位的hex值,實際上就是8位的字符
// BigInteger函數則將8位的字符串轉換成16位hex值,用字符串來表示;獲得字符串形式的hash值
String sign = new BigInteger(1, md.digest()).toString(16);
if (31 == sign.length()){
return "0" + sign;
}
return sign;
} catch (Exception e) {
throw new ParameterException("MD5加密出現錯誤");
}
}
MD5缺位問題,正常返回32位,某些狀況 會返回31位,此時須要進行補0
5. 類源碼中 ctrl + o 找相應的方法
6. perference general workspace 統一編碼
7. tomcat webapps 下 war包不能帶 中橫槓 - 如: back-sys ,不然不會自動解壓
8. eclipse git文件圖標不顯示, 右鍵 project -> team -> share project
9. TimerTask 定時任務無端掛了, 方式不可靠
後改用 spring task方式
@Scheduled(cron = "0/30 * * * * ?")
<task:annotation-driven scheduler="pushScheduler" mode="proxy"/>
<task:scheduler id="pushScheduler" pool-size="1"/>
//文件編碼格式校驗
10.文件讀取txt文件首行bom問題
private boolean checkFilePattern(InputStream inputStream) throws IOException {
boolean isUTF = false;
byte[] b = new byte[3];
try {
inputStream.read(b);
if (b[0] == -17 && b[1] == -69 && b[2] == -65)
{
isUTF = true
}
}finally{
if(inputStream !=null)
inputStream.close();
}
return isUTF;
}
記事本bom問題:
不含 BOM 的 UTF-8 纔是標準形式 的確是這樣,無BOM使用得更多些,因此我的仍是推薦通常狀況下用無BOM的形式吧,
除非有問題的時候,再考慮換有BOM的。Windows系統保存的都是有BOM的,因此你能夠看到,用記事本保存一個UTF-8的txt,實際上是有BOM的,這一點須要注意。
另外不一樣的文本編輯器對於有無BOM的稱呼也略有不一樣,好比EditPlus,有BOM的稱爲UTF-8+,無BOM的稱爲UTF-8,而在Notepad++中,有BOM的被稱爲標準UTF-8,而無BOM則被稱爲UTF-8無BOM。
10. 反射性能問題,比非反射代碼慢30倍左右 ,若是須要提高,將accessible設置爲true.避免安全檢查, 可提高四倍性能。
11. html 靜態化 cdn 壓縮 cms squid緩存 memcache緩存 nginx mycat數據庫分庫分表 主從模式
12. http 三次握手 ( syn(j) ack(j+1) syn(k) ack(k+1) ) 四次揮手
13. pager-taglib2.0.jar亂碼問題
14. 服務器Mysql 中文存儲亂碼
cd /etc/my.cnf
mysqld部分 增長 default_character_set = utf8
15. springmvc 前端傳輸年月日時分秒 串 後臺小8小時問題,可在application中增長方法 解決
@PostConstruct
void started(){ //解決客戶端傳入時間自動增長8小時的bug
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
16. springboot校驗注意事項
controller類上加上 @Validated
request對應的方法中@Valid
string @Notblank
int @Notnull
list @Notempty
17. springmvc 前端傳輸年月日時分秒 串 後臺小8小時問題,可在application中增長方法 解決
@PostConstruct
void started(){ //解決客戶端傳入時間自動增長8小時的bug
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
18.ElasticSearch/KIBANA: GET /test/test/_search
{
"query": {
"match": {"":""}
}
}
GET /test/test/_search
{
"query": {
"match_all": {}
}
}
PUT /test/test/_id
{
// _source內容
}
DELETE /test/test/_id
{
}
19. aspect中獲取request,response
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
aspect 如調用async 異步方法,須要傳遞request對象,不然由於線程問題,在async方法中 獲取到的request中數據會丟失
20. 數據庫中的日期格式的數據 自動轉11位 時間戳
spring.jackson.serialization.write-dates-as-timestamps:true