發表文章

目前顯示的是有「Java」標籤的文章

IT|軟體|維運管理|作業系統|Linux|Java 應用 Ubuntu 平台以 Systemd 服務方式運行

Linux Ubuntu 版本 18.04 sudo nano /etc/systemd/system/test.service [Unit] Description=Manage Java service [Service] User=lilee WorkingDirectory=/home/lilee/Signal/project ExecStart=/usr/bin/java -jar aaron-ui-1.0-SNAPSHOT.jar  --spring.profiles.active=prod & Type=simple Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target 參數說明 ======= WorkingDirectory 工作目錄 /home/lilee/Signal/project ExecStart 執行 jar 及指定 /usr/bin/java -jar aaron-ui-1.0-SNAPSHOT.jar  --spring.profiles.active=prod & sudo systemctl daemon-reload 啟動服務 sudo systemctl start test.service 停止服務 sudo systemctl stop test.service 查看服務狀態 sudo systemctl status test 開機自動啟動 sudo systemctl enable test.service  參考 [1].  https://computingforgeeks.com/how-to-run-java-jar-application-with-systemd-on-linux/ 這封郵件來自 Evernote。Evernote 是您專屬的工作空間, 免費下載 Evernote

IT|軟體|測試|Swagger RESTful API 調適工具

圖片
使用 Swagger 建立 PDF 文件 Swagger 是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件 Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。 [Spring Boot 集成 Swagger] [POM] pom.xml <!-- swagger2 集成 -->     <dependency>     <groupId>io.springfox</groupId>     <artifactId>springfox-swagger2</artifactId>     <version>2.2.2</version>     </dependency>     <dependency>     <groupId>io.springfox</groupId>     <artifactId>springfox-swagger-ui</artifactId>     <version>2.2.2</version>     </dependency> Spring boot 版本 --------------- <parent>         <groupId>org.s...

IT|軟體|程式語言|Java 調用 Python 使用 Jpython

極少數時候,我們會碰到類似這樣的問題:與 A 合作寫代碼, A 只會寫 Python ,不熟悉 Java ,而你只會寫 Java 不擅長 Python ,並且發現難以用 Java 來重寫對方的代碼,這時,就不得不想方設法「調用對方的代碼」。 下面舉一些簡單的小例子,借此說明:如何在 Java 中調用 Python 代碼。 Maven 使用 Jpython <dependency>     <groupId>org.python</groupId>     <artifactId>jython-standalone</artifactId>     <version>2.7.1</version> </dependency> HelloPython 程式 import org.python.util.PythonInterpreter; public class HelloPython {     public static void main(String[] args) {         PythonInterpreter interpreter = new PythonInterpreter();         interpreter.exec("print('hello')");     } } 什麼是 PythonInterpreter 呢?它的中文意思即「 Python 解釋器」。我們知道 Python 程序都是通過解釋器執行的,上面的代碼就是在 JVM 中創建一個「 Python 解釋器」對象,模擬 Python 解釋器的行為,通過 exec(" Python 語句 ") 直接在 ...

IT|軟體|開發|Lombok @Data

圖片
Lombok  簡介 ombok包提供了簡單的標注來幫助我們簡化消除一些必須有但是臃腫的java 代碼,比如getter、setter和構造函數等,這些函數一般我們通過IDE自動生成,有了lombok三兩個標注就輕鬆搞定。 為了讓 Eclipse 識別 lombok ,除了引入 lombok JAR 包之外,你需要安裝 lombok ,這樣 Eclipse 才不會報警告(否則即使你標注了 @Data ,如果你不寫 setter 和 getter 代碼的話, Eclipse 會有警告)。安裝非常簡單,只需要到 lombok 網站中下載,然後雙擊 Jar 包運行即可。 安裝說明     2017-04-10 Mon     [安裝] 安裝步驟: #下載 lombok.jar ( lombok官網 ) #安裝 lombok #重啓 eclipse 檢查: You can check if your eclipse installation is lombok-enabled in eclipse's about dialog. The lombok version will be listed at the end of the copyright text Eclipse 啟動後如果還在錯誤訊息,則點擊在  eclipse 的 Project  選項的  clean [使用] Maven <dependencies>      <dependency>           <groupId>org.projectlombok</groupId>           <artifactId>lombok<...

IT|軟體|程式語言|Java String 效能

String 的其他最佳實踐      2016-12-27 Tue #用 equals 時總是把能確定不為空的變量寫在左邊,如使用"".equals(str) 判斷空串,避免空指針異常 #第二點是用來排擠第一點的.. 使用 str != null && str.length() != 0來判斷空串,效率比第一點高。 #在需要把其他對象轉換為字符串對象時,使用 String.valueOf(obj) 而不是直接調用 obj.toString()方法,因為前者已經對空值進行檢測了,不會拋出空指針異常。 #使用 String.format()方法對字符串進行格式化輸出。 #在 JDK 7及以上版本,可以在 switch 結構中使用字符串了,所以對於較多的比較,使用 switch 代替 if-else。 參考資料: [1] Java 字符串拼接效率分析及最佳實踐

IT|資訊安全|Java 中常用的加密方法

SHA     21 November 2016  是一種數據加密演算法,該演算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的散列演算法之一,並被廣泛使用。 該演算法的思想是接收一段明文,然後以一種 不可逆的方式將它轉換成一段(通常更小)密文 ,也可以簡單的理解為取一串輸入碼(稱為預映射或信息),並把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信 息摘要或信息認證代碼 )的過程。 散列函數值可以說時對明文的一種"指紋"或是"摘要"所以對散列值的數字簽名就可以視為對此明文的數字簽名。 SHA 與 MD5 比較     21 November 2016  因為二者均由  MD4  導出, SHA-1  和  MD5  彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同: 對強行攻擊的安全性:最顯著和最重要的區別是  SHA-1  摘要比 MD5 摘要長 32 位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對  MD5  是 2^128 數量級的操作,而對  SHA-1  則是 2^160 數量級的操作。這樣, SHA-1  對強行攻擊有更大的強度。 對密碼分析的安全性:由於  MD5  的設計,易受密碼分析的攻擊, SHA-1  顯得不易受這樣的攻擊。 速度:在相同的硬件上, SHA-1  的運行速度比  MD5  慢。 BASE64     21 November 2016  按照 RFC2045 的定義,Base64 被定義為:Base64 內容傳送編碼被設計用來把任意序列的8位字節描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a f...