-
抓包時,可以用 fiddler 工具;或者網頁上選擇“開發者工具”來查看;
-
@Autowired 、@Resource、@Reference
@Autowired 、@Resource 用來自動注入 Spring容器裏的對象
@Reference 是 Dubbo的註解,用來注入分佈式遠程服務對象 -
assert 斷言
assert格式
(1)assert [boolean 表達式]
如果[boolean表達式]爲true,則程序繼續執行。
如果爲false,則程序拋出AssertionError,並終止執行。
(2)assert[boolean 表達式 : 錯誤表達式 (日誌)]
如果[boolean表達式]爲true,則程序繼續執行。
如果爲false,則程序拋出java.lang.AssertionError,輸出[錯誤信息]
assert false;
System.out.println("測試assert");
會報以下錯誤:
4. Gradle
查看gradle下載的本地jar包地址:
找到對應的目錄地址: E:\gradle_download\caches\modules-2\files-2.1
-
生成UML類圖
-
Chrome 瀏覽器 FeHelper 插件,可以查看json格式
-
防止網頁報錯後,跳轉到別的頁面(比如登錄失效後,跳轉到登錄頁面)
-
rdpclip 是讓rdp協議(遠程桌面協議)可以通過遠程複製文件的
遠程不能複製時,把 rdbclip.exe 進程殺掉,然後在 啓動 rdbclip.exe
在“搜索程序和文件”裏進行啓動 -
用 PL/SQL 工具寫增、刪、改語句後,在sql語句後添加 commit; 或者點“提交事務”
-
jpa的使用
@Modifying(clearAutomatically=true)
@Transactional
@Query(“update User set name=:name, age=:age where id=:id”)
void updateUserInfo(@Param(“name”) String name, @Param(“age”) Integer age, @Param(“id”) Integer id);
注意:在使用@Modifying註解時,如果忘了加 @Transactional註解可能會報錯。 -
PL/SQL 查詢出數據後,可以直接修改:
select * from t_d_share_data for update; -
docker logs 命令
51ishare-platform_mall-biz_1 ===》對應文件名
查詢實時日誌:
docker logs -f 51ishare-platform_mall-biz_1
查看最後500行日誌:
docker logs --tail 500 51ishare-platform_mall-biz_1
查看最新日誌而不讀取全部:
docker logs --tail 0 -f 51ishare-platform_mall-biz_1
查看指定時間log:
docker logs --since=“2015-08-31” 51ishare-platform_mall-biz_1
最後500行轉存到/data/logs07.log:
docker logs --tail 500 51ishare-platform_mall-biz_1 > /data/logs07.log -
Map.computeIfAbsent
Map map = new HashMap();
// java8之前。從map中根據key獲取value操作可能會有下面的操作
Object key = map.get("key");
if (key == null) {
key = new Object();
map.put("key", key);
}
// java8之後。上面的操作可以簡化爲一行,若key對應的value爲空,會將第二個參數的返回值存入並返回
Object key2 = map.computeIfAbsent("key", k -> new Object());
-
rm -rf *.swp
linux裏vi打開一個非正常關閉或者被佔用文件時總是提示被佔用,刪除產生的.swp文件就不會再提示了。 -
@EnableEurekaClient 和 @EnableDiscoveryClient
@EnableDiscoveryClient和@EnableEurekaClient共同點就是:都是能夠讓註冊中心能夠發現,掃描到改服務。
不同點:@EnableEurekaClient只適用於Eureka作爲註冊中心,@EnableDiscoveryClient 可以是其他註冊中心。 -
Oracle 的LOB
LOB ==> large object 大數據
BLOB ==> 存放二進制數據(Binary Large Object),適用於存貯非文本的字節流數據(如程序、圖象、影音等)。
CLOB ==> 字符型大型對象(Character Large Object),則與字符集相關,適於存貯文本型的數據(如歷史檔案、大部頭著作等)。 -
MVEL是一個基於Java應用程序的表達式語言
Student student1 = new Student("male", "garfield");
Object isEqual = MVEL.eval("name == 'garfield'", student1);
System.out.println(isEqual);
Object name = MVEL.eval("name", student1);
System.out.println(name);
Map<String,Integer> map = new HashMap<>();
map.put("X",8);
map.put("Y",8);
Object eval = MVEL.eval("X*Y", map);
System.out.println(eval);
Serializable exp = MVEL.compileExpression("x>=13");
Map<String, Object> param = Maps.newHashMap();
param.put(ConstantUtils.PAPER_EXPRESSION_X, 12);
boolean flag = MVEL.executeExpression(exp, param, Boolean.class);
- Collections
List<Object> list = Collections.emptyList();
Set<Object> set = Collections.emptySet();
Map<Object, Object> map = Collections.emptyMap();
System.out.println(list);
//沒有add(),delete()方法
emptyList()方法的使用
通過java.util.Collections.emptyList()方法的相關源碼可以得知它實際上就是返回了一個空的List,但是這個List和我們平時常用的那個List是不一樣的。這個方法返回的List是Collections類的一個靜態內部類,它繼承AbstractList後並沒有實現add()、remove()等方法,因此這個返回值List並不能增加刪除元素。
既然這個List不能進行增刪操作,那麼它有何意義呢?
這個方法主要目的就是返回一個不可變的列表,使用這個方法作爲返回值就不需要再創建一個新對象,可以減少內存開銷。並且返回一個size爲0的List,調用者不需要校驗返回值是否爲null,所以建議使用這個方法返回可能爲空的List。
emptySet()、emptyMap()方法同理。