JAVA関連のことを調べてみた2020年09月04日

JAVA関連のことを調べてみた2020年09月04日

Builderパターン

###Builderパターンとは
全体を構成している各部分を作り、段階を踏んで組み上げていくパターンのことを指す。

###Builder(建築者)の役
Builder役はインスタンスを生成するためのインターフェースを定める。
Builer役にはインスタンスの各部分を作るためのメソッドが用意される。

““java
package builder2;

public abstract class Builder {
public abstract void makeTitle(String title);
public abstract void makeString(String str);
public abstract void makeItems(String[] items);
public abstract void close();
}
““

###ConcreteBuilder(具体的建設者)の役
ConcreteBuilder役はBuilder役のインタフェースを実装しているクラス。
実際のインスタンス生成で呼び出されるメソッドがここで定義される。

元記事を表示

記事を読みながら理解する!Elasticsearch入門者が抑えておきたい内容まとめ

分散型でオープンソースの検索・分析エンジン、Elasticsearch。
最近、興味がある、これから業務で使う予定、なんて人もいるのではないでしょうか。
そんな時は、

– [Elasticsearch Reference | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
– [Elasticsearchのデータ操作入門 | Elastic](https://www.elastic.co/jp/webinars/getting-started-elasticsearch?baymax=default&elektra=docs&storm=top-video)

を見ておけばオッケ~!!

・・・といえば(公式のだし)間違いなくそうなんですが、

– とっかかりが英語だとハードルが高い
– とりあえず要点だけ把握してガンガン使ってみたい

となる人も多いと思うので、入門者向けにいい感じの記事をピックアップ&実際に動かしてみることを想定して、まとめてみました。

##

元記事を表示

H2 Database のデータベースを任意の場所に作成する方法

はじめに

H2DBのデータベースを新しく作成するときに、システムデフォルトの
JDBC URL: jdbc:h2:~/test (C:\Documents and Settings\[username]\test )ではなく
直接アクセス可能なCドライブ直下のディレクトリに作成したいけど上手くいかない時の解決策です。
今回は「C:\data」のディレクトリに「test」という名前のデータベースを作成したいと思います。

解決策1

H2コンソールから JDBC URL:に「jdbc:h2:C:\data\test」と入力し接続をクリック
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/664939/b92121b1-fe6d-b90a-404e-e57a707c5df6.png)

※解決策1でデータベースが作成出来るかもしれませんが、変なエラーが出て作成出来ない可能性があります。

解決策2(解決策1でダメな時)

![2.png](https:/

元記事を表示

今さらだけど! AndroidのWorkManagerをJavaで実装してみる(初級編)

# はじめに
AndroidのWorkManagerを使う機会があり、色々調べてみたことを備忘録として記します。
当記事はWorkManagerの基本的な使い方を記します。内容は初心者向けの簡単なものになっています。

# WorkManagerとは
[公式ページ](https://developer.android.com/topic/libraries/architecture/workmanager?hl=ja)によると以下のような記述があります
>WorkManager API を使用すると、アプリが終了、またはデバイスが再起動した場合でも実行することが要求される延期可能な非同期タスクのスケジュールを簡単に設定できます。

要するに、

* 遅延タスク、非同期タスクの実行に使える
* バックグラウンドで実行する

というAPIだということがわかります。
以前は、JobSchedulerやBroadcastReceiverを使って実装していたアレです。これが簡単にできるようになったみたいです。
詳細な機能としては、ネットワークや充電状態の制約を追加したり、実行タイミングを指定した

元記事を表示

EC2(AmazonLinux2)にJava、Apache、Tomcat9をインストール

#概要
忘れないように、AmazonLinux2に、Java、Apache(WEBサーバ)、Tomcat(サーブレットコンテナ)をインストールしたことをメモしておく。

+ Webサーバ上で動くJavaプログラムがサーブレット
+ サーブレットを動かすソフトがサーブレットコンテナで、今回はそれがTomcat
+ リクエストに応じてレスポンスを返すWEBサーバのソフトがApache
+ TomcatはApacheがなくとも動くには動く。簡易的なWEBサーバソフトとしても機能する。

https://wa3.i-3-i.info/word12843.html

#Javaのインストール
java-1.8.0-openjdk-develをインストール。develの有無の違いは[こちら](https://qiita.com/msakamoto_sf/items/92d421bf724efa740350)を参考にさせていただいた。実行環境だけならjava-1.8.0-openjdkで良いが、-develが付く方はjavacなどの開発用コマンドが使える。基本的には-develをインストール。

`

元記事を表示

[ev3×Java] インターフェースと実装と継承

この記事では、ロボットを使ってインターフェースという機能を主に見ていきます。

#目次
0.インターフェースとは
1.コードの構造
 1-0.インターフェース内で処理を実装するサンプルコード
 1-1.クラスをつくってインターフェースを実装するサンプルコード
2.インターフェースTimerListnenerと実装クラスTimerのサンプルコード
3.leJOSにおけるモーターのクラスとインターフェースの関係

#0.インターフェースとは

インターフェースは**メソッドの仕様のみ**を定義するクラスのようなものです。
インターフェースの中にはメソッドが並べられていますが、その**処理**は書いてありません。

なのでメソッドを見れば、**何をするものなのか**はわかりますがそれが**実際にどういった処理をするものなのか**はわかりません。
メソッドの処理の内容は、**インターフェースを実装するクラス**の中を見ればわかります。

Point : **インターフェース**
メソッドの仕様(戻り値とメソッド名、引数)のみを定義する
実際には処理をしない

Point

元記事を表示

SpringBoot + MongoDB を使ってREST APIを作ってみよう

# この記事は何?

データストアにMongoDBを利用し、SpringBootを使ったREST APIを構築するハンズオン用ページです。
研修用の突貫なので、簡単に順次手順をまとめ、写経することで簡単に体感できることを目標にします。

内容自体はほぼ下記のコピペです。Gradleを使いたかったのでちょっと内容変えています。
https://stackabuse.com/spring-data-mongodb-tutorial/

# 前提

* Javaを触ったことがあること
* IntelliJ IDEAを使えること
* REST APIとは何かを知っていること
* Postmanを使えること
* この辺り参考にしてください:https://qiita.com/notch0314/items/97c7d1bb565fdae4a712
* NoSQL・MongoDBについて知っていること

# 実装概要

SpringBootを使ってREST APIを作ります。
データストアにMongoDBを使用し、リクエストに応じてMongoDBのデータをCRUDします

完成物は下記Gi

元記事を表示

ゴリゴリのSIerのSEが個人開発でWebサービスを作ってみた

#1.私のこと

タイトルの通り、ゴリゴリのSIerのSEです。
SIerはBPに丸投げでプログラミングなんてやらせてもらえない!という声を聞きますが、私は普通にプログラミングしてました。
さすがに年がら年中はやらせてもらえなくて、プロジェクト管理や組織活動改善なんて仕事も舞い込んできてましたが、それなりにプログラミングやってました。

ただ、だいたい大規模プロジェクトの一員なので、システムの全体像に触れるのはなかなか難しかったです。
で、全体像を考えたいというのとあとで説明する理由により、ちょっと一人でシステム作ってみるか…ということで、娘が寝たあとの夜10時以降、娘が起きる前の朝6時から8時までくらいの時間を使ってWebサービスを作ってみました。

#2.作成したWebサービス

##サービス名:「カシカジ」

https://hwsharing.possumelon.com/
※PC版のみ対応

![キャプチャ01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666395/28e70ec1-38

元記事を表示

Android開発リンクまとめ

#Android

logcat(Android studio)
https://developer.android.com/studio/debug/am-logcat?hl=ja

コード整形プラグイン(Android studio)
https://qiita.com/ikemura23/items/9a33c1b2bdb5a65d29a5

Fragment
https://developer.android.com/guide/components/fragments?hl=ja

AlertDialog
https://qiita.com/ohwada/items/f95518b6948b271433a3

https://qiita.com/granoeste/items/bc30c25caefe5ceb102b
http://www.366service.com/jp/qa/42f4109029cf60909206170c40d3d8f2


https://www.

元記事を表示

[Java]画像をアップロードしてBase64化する

## 概要

– Servlet/JSPを使った古き良き技術スタックで画像のアップロードを試します
– multipart/form-dataで送ったファイルをサーバサイドでBase64化するのが今回やりたいこと
– ServletもJSPもど素人です

## コード

### アップロード画面

– 最初に表示するアップロード画面のJSP

“`java
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




Java Sample

Hello

元記事を表示

【Java基礎】Classとは

## はじめに
当記事は、[やさしいJava](https://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84Java-%E7%AC%AC7%E7%89%88-%E3%80%8C%E3%82%84%E3%81%95%E3%81%97%E3%81%84%E3%80%8D%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4815600848)という参考書で独学した知識の整理の為に書きました。

## Classとは
モノ一般に関する状態・性質や機能をまとめたもの

– field:クラスの「状態・性質」を表す仕組み
– method:クラスの「機能」を表す仕組み
– member: field、method…etcのこと

## Classの宣言
クラスは次のように宣言します。

“`html:
class クラス名
{
型名 フィールド名;
・・・
戻り値の型 メソッド名(引数リスト)

元記事を表示

Kubernetes で VisualVM(JMX接続)

# はじめに
今回は k8s で動いている Java アプリに VisualVM で接続しようと思います。
Java アプリケーションの監視や解析の際に利用するかと思います。
コンテナなので Prometheus でのメトリクス収集が一般的だと思いますが、今回は Java 開発者に使い慣れたツールということで Java 側で用意されているツールを利用します。

※今回は Java アプリケーションを用意せず Jenkins のコンテナに対して実施しました
※JMX や Jenkins は Prometheus でメトリクス収集も可能です

# 環境情報
Kubernetes:1.18
helm:v3.2
※https://helm.sh/docs/intro/quickstart/
Java:1.8
Jenkins:2.235

# Jenkins コンテナ準備
helm で Jenkins コンテナをデプロイします。

まずはデプロイ用にパラメータファイルを作成します。
※Pod への接続は NodePort を利用します
※jmx で接続するポートを今回は 32000 で指定してい

元記事を表示

Java 例外処理

#【Java 例外処理】

業務内で使用する Javaの例外処理のメモです。
開発時に使用しているのでまとめました。

##Javaには例外処理という便利な機能がある

例外は、Javaプログラム実行時に通常ではない特別の状態のときに発生する。
例外発生時に実行されるのが例外処理である。

余談ですが、例外処理のプログラム構造は、if文のような感じで視覚的にわかりやすいなと思いました。

###try – catch – finally構文

“`java
//例外処理の構文

try{
//例外が発生する可能性のある処理;
} catch (例外クラス 変数名){
//例外が発生したときに実行する処理(例外が発生しなければ行われない処理);
} finally {
//例外の有無に関わらず、最後に必ず実行する処理
}
“`

通常実行は、tryブロックのみ。
例外が発生した場合、処理は直ちにcatchブロックに移行する。

※スタックトレースとは、JVMがプログラムのメソッドをどのような順序で呼び出して、どこで例外が発生したかの経緯が記録された情報である。

##余談

元記事を表示

【Java】StringBuliderで改行する方法

##地味にハマったので

“`Java
System.lineSeparator();
“`
機種によって改行コードが異なる為、上記のように機種に依存しない書き方をしたほうがいい。

元記事を表示

*Android*HTTP通信でWebAPIを叩いてみる[GET, POST]

# はじめに
こんにちは.今回は,AndroidでWebAPIを叩いてみましょう.初めてWebAPIを叩く方でも読めるように書いていきます.WebAPIを叩く方法はいろいろありますが,Javaの標準ライブラリである`HttpURLConnection`を使用します.面倒な設定などは何もなく,WebAPIを叩くために使用するのであればオーソドックスな方法だと思います.

WebAPIを叩くと戻り値として`JSON`を受け取ることになりますが,AndroidではJSONを整形して画面に出力するのが難しいので,`curl`コマンドを使いつつ,Androidの方を実装していきます.WebAPIを使う場合,curlコマンドに関しては使えた方がかなり作業が楽になると思います.

# 前提
開発環境は以下の通りです.
*Android Studio 4.0.1
*targetSdkVersion 28
*Google Nexus 5x

curlコマンド
*Ubuntu 20.04 LTS (WSL 2)

# なぜWebAPIを使用するか
音楽の歌詞アプリを作りたい場合や翻訳アプリを作ることを考え

元記事を表示

@PostConstruct

# @PostConstructとは
– 初期化メソッド
– オブジェクトの初期化部分
– オブジェクト生成後、別途初期化作業を行うために実行するメソッドに宣言する。
– PostConstructアノテーション付きのinitメソッドはWASが上がるときに実行される。

# メリット

1. コンストラクタが呼び出された時、beanはまだ初期化されないです。(挿入された依存性がない。)
でも、@PostConstructを使うとこで、beanが初期帰化されるときの同時に依存性を確認できます。

2. bean lifecycleで一回だけ実行されることを保証できます。(**WASが上がるときにbeanが生成されるときの1回だけ初期化**されるため。)なので、**PostConstructアノテーションを使うことでbeanが何回も初期化されることを防ぐことができます。**

# 適用ソース
自分がWebSocketの勉強をしていた時に作成したコードの一部です。

“`java

@Slf4j
@RequiredArgsConstructor
@Service
public class

元記事を表示

IntelliJ IDEA環境で開発されたJavaアプリケーションをAlibaba Cloud ECSインスタンスにデプロイ

このチュートリアルでは、ローカルのIntelliJ IDEA環境で開発された**Java**アプリケーションを**Alibaba Cloud ECSインスタンス**にデプロイする方法を説明します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/deploying-a-java-application-to-an-ecs-instance-in-intellij-idea_594777)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/095b1147-dadf-04e6-7b46-38fc6d786fa6.png)

#ローカルでアプリケーションを開発する
クラウド上で動作するJavaアプリケーションをコンパイルしても、ローカルで動作するJavaアプリケーションをコンパイルしても、

元記事を表示

EclipseでJavaアプリケーションをAlibaba Cloud EDASにデプロイする方法

このチュートリアルでは、Cloud Toolkitを使用してEnterprise Distributed Application Service (EDAS)上にアプリケーションをデプロイする方法をご紹介します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/deploy-an-application-to-alibaba-cloud-edas-in-eclipse_594775)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/07f350b6-8a8e-3126-1174-742ac94c3179.png)

#EDASについて
[エンタープライズ分散アプリケーションサービス](https://www.alibabacloud.com/ja/product/edas)(EDAS

元記事を表示

Cloud Toolkitでローカルで開発されたJavaアプリケーションをAlibaba Cloud ECSインスタンスにデプロイ

このチュートリアルでは、ローカルで開発された**Java**アプリケーションをCloud Toolkitを使用して**Alibaba Cloud ECSインスタンス**にデプロイする方法を説明します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/deploying-a-java-application-to-an-ecs-instance-in-eclipse_594770)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

クラウドコンピューティング技術の急速な発展に伴い、Alibaba Cloud [Elastic Compute Service](https://www.alibabacloud.com/ja/product/ecs) (ECS) インスタンスにアプリケーションをデプロイする開発者が増えています。このチュートリアルでは、ローカルで開発したJavaアプリケーションを[Cloud Toolkit](https://www

元記事を表示

Excelに自動で変換された日付の文字列をjava.time.LocalDateで取り込む

CSVファイルなどで日付を文字列で扱うとき、日付のフォーマットは `YYYY-MM-DD` を使うことが多いかと思います。
ところが、CSVファイルをExcelで開くと勝手にExcelの日付フォーマットに変更されて `2020-09-02` が `2020/9/2` といったように上書きされてしまうことがあります。

# java.time.LocalDate で取り込む

このようにExcelで自動変換された日付フォーマットの文字列を `java.time.LocalDate` で取り込むときは `java.time.format.DateTimeFormatter` でフォーマットを指定する必要があります。

“`scala

scala> import java.time.LocalDate
import java.time.LocalDate

scala> import java.time.format.DateTimeFormatter
import java.time.format.DateTimeFormatter

scala> val localDate = Lo

元記事を表示

OTHERカテゴリの最新記事