JAVA関連のことを調べてみた2022年05月02日

JAVA関連のことを調べてみた2022年05月02日

Apache HttpClient 5.x 再利用(使いまわし) 接続設定 ポイント まとめ

# 概要

Apache HttpClient 5.x を使うときのポイントをまとめる。以下の公式ドキュメントはあっさりしているので、コードを読むしかなかった…どこかに詳細があるんだとは思いつつ見つけられなかったのでメモを残す。
また、 Apache HttpClient 4.x と仕組みは似ているので、そのあたりの記事も参考にした。

[Apache HttpComponents – HttpClient Overview](https://hc.apache.org/httpcomponents-client-5.1.x/index.html)

前提として、`PoolingHttpClientConnectionManager`のコードで得た知識なので、他のManagerと設定値の扱いが若干ことなるかもしれない。現時点の最新のライブラリのバージョンは、5.1.3だが、読んだコードはもう少し進んでいるのでその辺の差異も注意したい。

## 参考

– [Apache HttpClient Connection Management | Baeldung](https://www

元記事を表示

[Apache Hop] CSVを読みこみ変換処理してみた

# 対象者
– Apache Hop (データ統合プラットフォーム) を試してみたい方。
– データ収集、変換処理を試してみたい方。
– CSVのファイルを変換処理してみたい方。

# 前提環境
– Docker Desktopをインストールしている
– Apache Hopを準備している

https://qiita.com/Tadataka_Takahashi/items/f13161b981a8699f46ff

https://qiita.com/Tadataka_Takahashi/items/58f69ceb466a5c3a295a

# 手順の流れ
– 読み込むCSVファイルを準備する
– CVSを読み込んで、変換して出力する変換を作成する
– 動作を確認する

## 読み込むCSVファイルを準備する

https://www.oreilly.co.jp/catalog/
O’Reilly の書籍リストを元にCSVファイルを作成します。このデータを例として取り上げます。
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

Singletonについて

# Singletonとは?

`「Singleton(シングルトン)」はデザインパターンの一種です。「Singleton(シングルトン)パターン」と呼ばれることもあります。
「あるクラスのインスタンスが常にたった1つしか存在していない」という状態を実現したいときに利用されます。`

あるクラスについて「複数のインスタンスが作られると困る」場面があれば、Singletonパターンを使用する。
※全機能で使用するキャッシュ保持など

# Singletonの構成

Singleton#getInstance( )でインスタンスを取得することができる。

①インスタンスを保持する内部クラス

/**
* Configクラスの唯一のインスタンスを保持する内部クラス
*/
public static class ConfigInstanceHolder {
/** 唯一のインスタンス */
private static final Config INSTANCE = new Config();
}
}

②インスタンス

元記事を表示

【Android】MVVM的に2つのサンプルアプリを作ってみた 〜 Room & Retrofit2 〜

# はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、`MVVM設計`を意識して作成した2つのサンプルアプリをざっくり紹介していきます。これからMVVM的にアプリを作成したいと考えている方に特に参考になれば光栄です。

それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 1つ目のアプリ
## 概要
自分が行きたい国を管理できるサンプルアプリです。データの全表示・追加・削除ができます。
`Room`を使って、ローカルDBのSQLiteを操作しています。

## 動作イメージ
![MVVM.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/25417b5e-aea0-4dda-f8c0-b9b2f68c646a.gif)

## アーキテクチャ図
![MVVM.p

元記事を表示

サーブレットとJSPを使ったフォームの作成

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

今回はWeb画面に入力フォーム、ボタン、コンボボックス、ラジオボタンを作成し、選択した内容をサーブレットで取得するといったものを作ってみようと思います。

本記事以外のコンテンツは[こちら](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17#nablarch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A8%98%E4%BA%8B%E4%B8%80%E8%A6%A7)から閲覧可能です。

なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。

# 動作環境
|種類|バージョン|
|—|—|

元記事を表示

【Java】指定範囲の乱数生成:nextInt(int num)

指定範囲の乱数を生成したい場合、
RandomクラスのnextIntメソッドを使用する。
nextIntメソッドで取得される乱数の性質は下記のとおりである。

nextInt(int num)
・0以上、num未満のint値

使用例は下記のとおりである。
※java.util.Randomをimportした前提での使用例である。
※Randomクラスをインスタンス化した場合の使用例である。

①0~9までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextInt(10);
“`

~説明~
nextInt(int num)で取得できる値は0以上、num未満のint値のため、
範囲:0~x*までの値を取得したい場合はnum = x + 1で指定する必要がある。
*(x=取得したい範囲の上限値)

②1~10までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextI

元記事を表示

【Java/Kotlin】Discord Bot のスラッシュコマンドを実装する-2022

# はじめに
この記事は、Java で Discord Bot のスラッシュコマンド実装方法を解説していきます。
私が嵌った点を含めて、備忘録的に書いていこうと思います。
Discord Bot の作成は、他に記事がたくさんあるので、作成されている前提で話を進めていきます。
リポジトリを使用する際は、プロジェクトに依存関係を追加することを忘れないようにしましょう。

ソースコードは、Java と Kotlin の両方を掲載します。
私が Kotlin 推しなので、、、。
Kotlin すごく楽で便利でいいですよ!

この記事で実際に使用したソースコードは、以下の GitHub に push しておくので全体像を見たい場合はそちらを確認してください。

https://github.com/waigoma/TutorialSlashCommandDiscordBot

# 目次
[1. はじめに](#はじめに)
[2. 目次](#目次)
[3. 使用するライブラリ](#使用するライブラリ)
[4. DiscordBotの招待](#discordbotの招待)
[5. Botにログインする

元記事を表示

「マイクロサービスパターン」の復習 12章 デプロイ

## 12章 マイクロサービスのデプロイ

– マイクロサービスをデプロイする方法について
– Kubernetesを使ったデプロイ
– Kubernetes+Istioを使ったデプロイ
– AWS Lambdaを使ったデプロイ

## Language-specific packaging formatパターン

– Javaでいうjarやwarなどをデプロイする方法
– 利点
– デプロイが高速: 転送はjarやwarだけ。起動も各環境に最適化しているので速い。
– 効率的なリソース使用:tomcatの複数のwarを載せられるので、OSやフレームワークなど各種リソースを共有することになる。見方によっては効率的とも言える。
– 欠点
– テクノロジスタックをカプセル化できない:デプロイするにもフレームワークの詳細を知らないといけない
– リソースの制限ができない
– 1マシンに複数サービスインスタンスをやると密結合:何がしか相手がlocalhostにいる前提のコードが書かれてしまったりする
– 自由に配置できない

というわけで、今の時

元記事を表示

著者トークイベントから考える「良いコード/悪いコードで学ぶ設計入門」の読み方

### こちらの著者トークイベントに参加してまいりました

https://modeling-how-to-learn.connpass.com/event/242976/

参加を踏まえて、どんな人にこの本がおすすめなのかを紹介します。
また、著者トークを踏まえたこの本の実務での使い方を紹介します。
※イベント内容はメモをとりながら視聴させていただきました。
誤解のない記載に努めましたが、
正確性に欠けた記載・著者が言っていない発言を書いてしまっている場合があります。
真に正確な内容につきましては、著者の書籍を是非お買い求めください。
(ちなみにNMRtは5/3から読み始める予定です!)
https://amzn.to/3ybPn4K

#### 【イベント参加感想】
「読んでみたい!」と強く思うようになったきっかけは
「高凝集なカプセル化とイミュータブルを合わせた設計やモデリングを重視している」こと。
それらの技術を駆使して現場でリファクタリングを行なっていることから、書籍の購入を
先倒ししました。(イベント参加前はしばらく後で買う予定でした)

#### 【対象読者】
・設計・特

元記事を表示

【Java】指定範囲の乱数生成:Math.random()

指定範囲の乱数を生成したい場合、
Mathクラスのrandomメソッドを使用する。
randomメソッドで取得される乱数の性質は下記のとおりである。

・0.0以上、1.0未満のdouble値

使用例は下記のとおりである。

①0~9までの乱数
“`java:random.java
int random = (int) (Math.random() * 10);
“`

~説明~
Math.random()で取得できる値はdouble値のため、
int型で数値が欲しい場合はcastする必要がある。

②1~10までの乱数
“`java:random.java
int random = (int) (Math.random() * 10) + 1;
“`

~説明~
Math.random()で取得できる値は0.0以上、1.0未満のdouble値のため、
0が必然的に含まれてしまう。そのため、乱数から0を除きたい場合は+1する必要がある。

③‐10~10までの乱数
“`java:random.java
int random = (int) (Math.random() *

元記事を表示

auカブコム証券のチャートデータの日付を調整する

なんでこんなことになるのか。。。

# いきさつ

メニューからチャートデータの出力ができるので、過去データを使って、テクニカル指標のテストに使うことにした。

4/29に日足のファイルを保存したら、
“`
2022/04/25,27075,27230,26475,26540,1273387
2022/04/26,26600,26850,26400,26650,1349144
2022/04/27,26540,26630,25965,26390,1308090
2022/04/28,26235,26880,26185,26860,1357538
2022/05/02,26995,27380,26890,27200,730935
“`
なんで、5/2???

30分足を保存したら、
“`
2022/04/28 14:15:00,26790,26840,26735,26835,51907
2022/04/28 14:45:00,26835,26880,26800,26860,75336
2022/04/28 15:15:00,26860,26860,26860,26860,5929

元記事を表示

AppletをJSに変換してみる 前編

# はじめに
今回は、JavaAppletのスクリプトをJavaScriptへ移植する手順について解説っぽいことをしていきます。

## なんで変換するんや
JavaAppletは、あらゆるプラットフォームのWebブラウザ上で動作する画期的なWebアプリケーションです。ブラウザ上で動作するツールや、凝ったゲームを簡単にWebサイトに埋め込むことができるため、非常に広く利用されてきました。しかし、ご存知の方もいらっしゃると思いますが、アプレットにセキュリティ上の脆弱性が次々と発見され、後に危険な状態に陥りました。このため、Javaの開発元であるOracle社は、アプレットが安全であることを証明する署名のないアプレットをブロックするようになったのです。

そのアプレットの代わりとなるものは、以下の通りです。

・JavaScript
・HTML5世代のAPI

このほか、FlashとShockwaveはアプレットより高速で、ゲームやアニメーションに広く使われていました。しかし、これらはプラグインが必要で、スマートフォンなどの携帯端末では動作しません。なお、この2つは廃止されてしまいますた。

元記事を表示

[Java] EclipseプロジェクトをMavenへ移行した記録(書きかけ)

# あらすじ

とあるところに、Java 1.6で作られたEclipseプロジェクトがありました。
内容は、Tomcatで動くWebサイトです。
プロジェクトは担当を変えながら、秘伝のタレのごとく、綿々と運用され続けていました。
この先リプレースまで、このまま続くのだろうと思われていました。

ところがある日、突然担当者が離脱してしまいました。
困ったボスたちは、@sengoku を呼ぶことにしたのです。

# 1日目

おいら「一応git使っているのね。よかったよかった。git cloneしてーのっと」

・・・なんか妙に重いな・・・?

おいら「なんでレポジトリ内にjarやclassファイルが入ってるん!?」

# 2日目

おいら「いろいろしんどいので、Maven導入したいのですが」

なぞ「Maven?なんて読むの?」

えっ、そこから!?

相手が知らないのをいいことに、@sengoku は甘い水を語りました。

こうしてMavenを導入してもよいことになったのです。

# 3日目 – 本題

長々とした前フリへのおつきあいありがとうございました。
ここから本題です。

元記事を表示

[Apache Hop] Dockerで動かしてみた

他の環境(DBなど)を構成して、まとめて動かそうとするとDockerのほうが都合がいいということで、試してみました。

# 対象者
– Apache Hop (データ統合プラットフォーム) を試してみたい方。
– データ収集、変換処理を試してみたい方。
– Dockerで動かしたい方。

# 前提環境
– Docker Desktopをインストールしている

# 手順の流れ
– Dockerのイメージをダウンロードする
– apache/hop-webを動かす
– apache/hopを動かす

## Dockerのイメージをダウンロードする
コマンドプロンプト、ターミナルを起動して、以下のコマンドを実行します。
サイズが2GBちかくあるので、時間がかかります。

GUIで変換処理を定義するのに必要
“`
docker pull apache/hop-web
“`
サーバ機能などを実行するのに必要
“`
docker pull apache/hop
“`
https://hop.apache.org/download/

## apache/hop-webを動かす
Docker

元記事を表示

【Android】Retrofit2のCall.enqueue()は非同期で処理されるの巻

# はじめに

皆さん、ごきげんよう!れぶです!

先日`Retrofit2`ライブラリを使って、API通信した結果を`RecyclerView`でリスト表示しました。その際に自身が悩んだ箇所が1点あったので、今回の記事で原因と解決方法を記述していきます。

自身のためでもありますが、自分と同じ悩みを持つ方々にも刺さる記事になれば幸いです。
それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 動作イメージ

完成イメージは以下になります。
![ezgif.com-gif-maker (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/be906014-7488-9013-7a48-343e36a93976.gif)
入力された郵便番号をもとにAPI通信([zipclo

元記事を表示

auカブコム証券のkabuステーションREST APIで自前のリピート注文を作ってみる(設計、検証用実装編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

TwitterAPIを触ってプログラム上からツイートしてみた

# 初めてのQiita投稿です・・・
私は4月よりSEへ転職し、Javaを中心に学習を始めたものです。実務経験等はまだありません。
現在はJavaの基本的な文法学習を終え、Springbootを用いたWebアプリケーションの開発の学習を進めています。

今回、TwitterAPIを用いて、Javaプログラム上からツイートしてみることに挑戦しました。使用したAPIは下記URLよりダウンロード可能です。

https://twitter4j.org/ja/

以下、記述したコードになります。

“`Java:Main.java
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class Main {
public static void main(String args[]) {

NewTweet();
}

public static void NewTweet() {
Twitter twitter =

元記事を表示

[Apache Hop] Windowsにインストールしてみた

# 対象者
– Apache Hop (データ統合プラットフォーム) をWindowsで試してみたい方。
– データ収集、変換処理を試してみたい方。

# Apache Hopとは
– Apache Hop は オープンソースのデータ統合プラットフォームです。 ETL (Extract/Transform/Load) の開発ツール・実行エンジンです。

– 部品連ねていくことで、データの変換処理をローコードで実現することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/cb38cb6e-be1b-696a-0e82-3c7fdab8c508.png)
例 : データを生成してjsonにしてからKaffkaのProducerとしてメッセージ送信してる流れ

– 部品の種類も豊富でデータベースのMongDB, postgresql, MySQL、neo4jや Kaffkaなどと連携する機能があります。応用した使い方としては、実装した変換処理をWebサービスとして公開

元記事を表示

JavaでPDFに複数のヘッダーを追加する方法

ヘッダーは、多くの場合、ドキュメントの追加情報を表示するために使用されます。時間、グラフィックス、会社のロゴ、ドキュメントのタイトル、ファイル名、作成者名などを挿入できます。この記事では、[Spire.PDF for Java](https://www.e-iceblue.com/Introduce/pdf-for-java.html)を使用してJavaプログラムでPDFに複数のヘッダーを追加する方法について説明します。
Spire.PDF for Javaを追加する
まず、Spire.PDF for JavaをJavaプロジェクトに追加する必要があります。Jar ファイルは、このリンクからダウンロードできます。Mavenを使用する場合は、次のコードをプロジェクトの pom.xmlファイルに追加する必要があります。
“`


com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/

元記事を表示

サーブレットとJSPを使った画面表示

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

[前回](https://qiita.com/kirin1218/items/db1ba8af6c323c925919)はサーブレットの作成を行い、ブラウザからのHttpアクセスに対して、Javaのプログラムを実行することに成功しました。

今回は[サーブレット](https://qiita.com/kirin1218/items/99a51d8ffed8b107b4f9#%E3%82%B5%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E3%81%A8%E3%81%AF)と[JSPファイル](https://qiita.com/kirin1218/items/99a51d8ffed8b107b4f9#jspjava-servlet-pages%E3%81%A8%E3%81%AF)を使って画面の表示を行ってみようと思

元記事を表示

OTHERカテゴリの最新記事