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

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

ThymeleafでJavaScriptを生成する

## 概要
ひょんなことからThymeleafでJavaScriptを触ることがあったので備忘録です。

## 環境
OpenJDK 11.0.2
SpringBoot 2.3.4
Thymeleaf 3.0.11

## TemplateEngine設定
“`java:AppConfig.java
@Configuration
public class AppConfig {

@Bean
public TemplateEngine scriptTemplateEngine() {
final TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setDialect(new SpringStandardDialect());
templateEngine.setTemplateResolver(scriptTemplateResolver());

return templateEngine;
}

p

元記事を表示

Java APIをラムダ式を使って使用する方法

このサイトが分かりやすかったナリ

リストのsortメソッドの引数に、変数宣言なしでラムダ式を入れていたのがいまいち理解できなかったので調べた。

匿名クラスでメソッドをオーバーライドする代わりに、ラムダ式を使うという当たり前のことだが、したの説明を見てなんとなく納得したナリ

上記サイトから引用

——–

new Predicate() {
@Override
public boolean test(Integer number) {
return Math.abs(number) >= 5;
}
}
そして、この処理はラムダ式で置き換えることができ、次のコードのように記述することができます。

number -> Math.abs(number) >= 5

——–

元記事を表示

【Java】コレクションクラスのSet構造(HashSetとTreeSetについて)

#プログラミング勉強日記
2020年10月15日
JavaでTreeSetを使ったが、HashSetとの違いがよくわからなかったので、記録する。

#コレクションクラスとは
 コレクションは要素を集めたオブジェクトのこと。コレクションクラスは大きく分けてList,Map,Setの3つの種類がある。それぞれ性質の異なるクラスに分かれている。

 List構造はArrayListとLinkedListの2種類ある。List構造は要素を順番付けして管理する構造で、要素はインデックス番号順に並んでいるので、番号を指定して要素の取得や挿入、更新、変更などができる。

 Map構造はHashMapとTreeMapの2種類ある。Map構造はキーと値をセットにしたものを1つの要素として管理するデータ構造で、要素がキーとして管理されているのでキーを指定して値の更新や削除をお来ぬことができる。
 今回扱うHashSetとTreeSetは名前からもある通りSet構造であり、下記にまとめる。

#Set構造のコレクションクラスとは
 Set構造はHashSetとTreeSetの2種類あり、要素を順番付けしない

元記事を表示

Java の Stream で List を List に変換するサンプルコード

“`java
// List に入れる要素のクラス
public class MyData {

public final String name;
public final Integer age;

public MyData(String name, Integer age) {
this.name = name;
this.age = age;
}

public String getMyInfo() {
return name + “(” + age + “)”;
}
}
“`

“`java
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

public class Main {

public static void main(String[] args) {

// データを構築
List list = n

元記事を表示

JavaでEmail送信を実装する

#はじめに
SpringBootのプロジェクトでパスワードを再設定したかったのですが、初期化したパスワードをEmailで送信できないか実践してみた備忘録です。

#まずは環境設定
環境は
**IDE:Eclipse**
**バージョン:Java8、springframework.boot version 2.3.0**

また、メール送信のためにはSMTPサーバーが必要ですが、ローカルだと実際に送信できなさそうなので、今回は簡単にGoogleのSMTPを使用します。

build gradleに必要なものをビルド

**build.gradle**

“`
dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-mail’
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
// パスワードの文字列をランダム生成するためのcommons-lang3をコンパイル
comp

元記事を表示

java mail pop3 imap 受信

メモ
受信のみ。送信はこちらを参考:https://qiita.com/rubytomato@github/items/b106ff8011bcad60bce2

“`xml:pom.xml



com.sun.mail
javax.mail
1.6.2



org.jsoup

元記事を表示

最初に知っておくべきJavaの基本文法

## 最初のクラス、最初のメソッド(main関数)
### ポイント
– ファイル名(Sample1.java)、クラス名(Sample1)を同じにする。
– プログラム起動後、mainメソッドが最初に実行される。

### ポイント2
– アクセス修飾子publicは、「どこからでも呼び出せる」という意味。
– クラスやメソッドは {} で括る
– static
– 戻り値void
– String[] args
– String[]はStringの配列という意味
– Stringは参照型に分類される
– argsは引数名
– コマンドライン引数で渡された値をプログラム内で使うことができる
– System.out.print()で標準出力
– 実行文は ; で終わる
– // はコメント行

### プログラム例
“`java:Sample1.java
public class Sample1 {
public static void main(String[] args){
// ここで標準出力する
Sys

元記事を表示

ArrayListとLinkedListの違い

先日ArrayListとLinkedListの違いわかるかと聞かれて、答えることができなかったので備忘録として記事します。

## ArrayListとは
ArrayListは、内部的には配列を利用したリスト構造です。標準的な配列と異なる点は、サイズを後からでも変更できる点です。その性質上、インデックス値による値の読み書きは高速ですが、要素の挿入/削除は、配列サイズが大きくなるほど、また、操作位置が先頭に近くなるほど遅くなります。

・メリット
要素がそれぞれ順序番号を持っており、全てメモリ上でインデックス化されているため、特定の要素へすぐにアクセスすることが出来ます。

・デメリット
末尾意外の要素を足したり引いたりすると、それ以降の要素全ての順序番号を繰り上げたり繰り下げたりするための再配置処理が行われ、
その処理により ArrayList 内の要素には全て 0 から 全要素数から 1 引いた数までの全ての順序番号が付けられた要素がキレイに並び続けるのですが、処理が行われる分時間がかかってしまいます。
そしてその処理数は要素数に比例して多くなります。

| メソッド | 概要 |

元記事を表示

Java 初めての例外処理(備忘録)

#Java練習
Javaで開発をすることになり現在Javaを勉強中
[スッキリわかるJava入門 第2版 スッキリわかるシリーズ](https://www.amazon.co.jp/dp/B00MIM1KFC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)を使ってJavaの勉強。

2章2-3のアプリをアレンジしてみた。

## 2章2-3のアプリをアレンジ
[dokojavaを使用してブラウザでJavaを実行](https://dokojava.jp/execute)

“`java:Main.java
import java.util.Scanner;
import java.util.Random;

public class Main{
public static void main(String[] args) {
System.out.println(“ようこそ占いの館へ\nあなたの名前を入力してください”);
String name = new Scanner(System.in).nextLine();

元記事を表示

PowerMockでEnumをモック化する

## 概要

PowerMockを導入すれば、Enumクラスをモック化してJUnitでテストコードを作成できます。

## 環境

| | バージョン |
| ——— | ———- |
| Java | 8 |
| JUnit | 4.12 |
| Mockito | 2.23 |
| PowerMock | 2.0.2 |

### 使用ライブラリ一覧

– byte-buddy-1.10.14.jar
– cglib-nodep-3.2.9.jar
– hamcrest-core-1.3.jar
– javassist-3.24.0-GA.jar
– junit-4.12.jar
– mockito-core-2.23.0.jar
– objenesis-3.0.1.jar
– powermock-mockito2-2.0.2-full.jar

## サンプルコード

### モック化対象クラス

“`java
public enum SampleEnum {

元記事を表示

Mockito3.4でstaticメソッドをモック化する

## 概要

Mockitoのバージョン3.4からstaticメソッドのモック化に対応しました。
これにより、staticメソッドのモック化のみならPowerMockを導入する必要はなくなりました。

## 環境

– mockito-core-3.4.0.jar
– byte-buddy-1.10.16.jar

上記jarに加え、新たに`mockito-inline`と`byte-buddy-agent`が必要になります。
– mockito-inline-3.4.0.jar
– byte-buddy-agent-1.10.16.jar

それぞれ、[Mockito公式サイト](https://site.mockito.org/)・[ByteBuddy公式サイト](https://bytebuddy.net/#/)からダウンロードできます。

| | バージョン |
| —– | ———- |
| java | 8 |
| JUnit | 5 |

## サンプルコード

### モック化対象のクラス
static

元記事を表示

Spring Cloud Gatewayを徹底解説してみる

# はじめに

> 本記事は https://tech-blog.yoshikiohashi.dev/posts/spring-cloud-gateway-explain のクロスポスト記事になります。

この記事は[Gatsby](https://www.gatsbyjs.org/)というヘッドレスCMS技術で構成されています。

# Spring Cloud Gatewayとは?

一言でいうと**「マイクロサービス向けのOAuth2認証API基盤」**になります。

[公式](https://spring.pleiades.io/projects/spring-cloud-gateway)が親切に日本語で解説してるので見てみましょう。

> このプロジェクトは、Spring MVC の上に API Gateway を構築するためのライブラリを

元記事を表示

Yellowfinの高度な関数を作成する

#目的
Yellowfin(BIツール)にはもともと用意された関数の他に、自分で関数を作って拡張できる「高度な関数」というものがあります。これまで使ったことがなく、プログラムを書かないといけないことから手を付けていなかったのですが、幾何平均を求めたいという要望があり、作ってみた感じを記事にしています。個人的には、正直公式の[Wiki](https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2294172)だけではなかなか理解するのが難しいところもあったのでそこをフォローできたらいいなと思います。

#はじめに
基本的な開発の始め方としては、Eclipseを使って開発するのですが、[高度な関数の基礎](https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2294171)を見ながら設定すれば自動的に必要なメソッドがAnalyticalFunctionからOverrideして追加されるので、その中のパラメータを設定して、必要な処理をapplyAnalyticFunct

元記事を表示

クラスとインスタンス 初心者向け Java

環境
・MacBookpro
・IntelliJ IDEA CE

Java学習中アウトプットのため投稿します。

クラスとインスタンスについて

クラス・・・設計書、骨組み
インスタンス・・・クラスを元に作られた実体

あなたは上司から大量生産猫型ロボット工場から、人間界世話型ロボットとその妹ロボットを1体ずつ作るよう指示を受けました。

上司から詳細データが渡されました。

“`
人間界世話型ロボットについて
名前:ドラ絵もん
色:青
性別:男

ドラ絵もんの妹ロボットについて
名前:ドラ美ちゃん
色:ピンク
性別:女

以上2体を作成するように。
“`

詳細データを見ると3要素が必要です。
・名前(name)
・色(color)
・性別(sex)

それではまず上司の指示通りのクラスを完成させます。

“`ruby:Robot.java

class Dora {
String name;
String color;
String sex;

Robot(String name, String color , String sex)

元記事を表示

javaでwebApi備忘録

#事前準備
・エクリプスの最新版

①eclipsのインストール方法
https://snome.jp/framework/springboot-install-win/
SpringBootの使用の前までで完了
ワークスペースのなぞ?
Eclipse はワークスペースとして指定されてディレクトリに “.metadata” という隠しディレクトリを作るので、これを検索します。
②Javaコンパイラの設定
特に設定しなくてもOK
③WEBAPIの作成方法
 サンプルを元にマーベンのPOMを変更
 https://codezine.jp/article/detail/11380?p=3
 
 ④Java Spring Boot JSONの送信と受信のサンプル
 https://itsakura.com/java-springboot-json#s7
ハローワールドの出し方
https://qiita.com/kuro227/items/d7da647e9f3be78a5f92
アクセスするURL
http://localhost:8081/hello/
リファレンスAPI スプリング
ht

元記事を表示

Docker, java, vscodeの開発環境を構築

##前回の記事
[初心者がdocker for macをインストールしてphp7.0の動作環境を用意する](https://qiita.com/RubyLrving/items/2f22ecdbabd94dff05c0)

##この記事
前回はphp7.0の動作環境を用意しました。
今回はjavaを用意してみます。
目標はdocker + java + vscode。

##参考記事
[Visual Studio CodeのRemote DevelopmentとDockerで快適な開発環境をゲット
](https://tech-lab.sios.jp/archives/18677)

##Remote Development
Remote Developmentの拡張機能をインストール

##Microsoftが公開してるテストプロジェクトのクローンを用意
“`cmd:git
git clone https://github.com/Microsoft/vscode-remote-try-java
“`

##テストプロジェクトを開く
Visual Studio Codeの左下の緑

元記事を表示

☾ Java / 繰り返し文と繰り返し制御文

 いつまでも苦手なので。

## ✴︎ 繰り返し文とは
 繰り返し処理は**ループ**とも呼び、繰り返し文には、大きく分けて**while文**、**do-while文**、**for文**の3種類があります。

### 1. while文
 **while文**は、指定された条件が成立する(条件式の結果がtrueである)間、繰り返し処理を行います。

“`Sample.java
while (条件式) {
処理文; // 条件式の結果がtrueの場合に処理文が実行される
}
“`

 処理文が1文しかない場合は、{}を省略できます。
 whileの後ろの()には、条件式を記述します。条件式は、boolean値(trueまたはfalse)になる式でなければいけません。条件判定の結果がtrueの場合、{}で囲んだ処理文が実行されます。処理文は複数行記述することができます。処理文の実行後は、また条件式に制御が移ります。

“`Sample.java
public class Sample {
public static void main(String[] ar

元記事を表示

Java のメソッドで複数の値を返す方法あれこれ (Generics, Record, Triple, Tuple, 標準ライブラリや外部ライブラリを使用)

## 概要

– Java のメソッドで複数の値を返す方法について、標準ライブラリや外部ライブラリを使用したサンプルコードを挙げる (3つの値を返すサンプルコード)

## 環境

– Java 15 (AdoptOpenJDK 15+36)
– Gradle 6.6.1
– macOS Catalina

## 使用している外部ライブラリ

– Kotlin Standard Library 1.4.10
– Scala Standard Library 2.13.3
– Apache Commons Lang 3.11
– Functional Java 4.8.1
– javatuples 1.2
– jOOλ 0.9.14
– Reactor Core 3.3.10
– Vavr 0.10.3

## 外部ライブラリを使わない方法

### 標準ライブラリ java.lang.Object[]

Object の配列に値をセットして返す。
受け取った側はキャストが必要。

“`java
public class ArraySample {

static Object[]

元記事を表示

【Java】OpenCSVでファイルの値を変換して取り込む

## 概要
JavaにはCSVファイルをBeanに取り込むためのライブラリで、OpenCSVというものがあります。[JavaのCSVライブラリ「opencsv」](https://qiita.com/sunnycloudy764/items/c117e769863dc96edc59)の記事にある通り、列名とBeanのプロパティ名を紐付けて取り込むことができます。
今回の記事は、ファイルの値を変換してBeanに取り込むときの対応を紹介します。

## 対応
[こちら](https://stackoverflow.com/questions/51155224/opencsv-wrong-date-format)のStackOverflowに書いてあるのが日付の変換例です。アノテーションの`converter`に変換用のクラスを設定して、変換します。

## 実装サンプル
文字列から日付の変換例を、実装サンプルとしてのせます。

ファイル中の`created_at`列を`LocalDateTime`型に変換します。

“`SampleCsvBean.java
public class Sa

元記事を表示

サーブレットとは?

#サーブレットが理解できないのでまとめ
サーブレットって聞くけど理解できていないのでまとめる。
jboss,tomcatコンテナの違いもよく理解できていないのでまとめる。

#サーブレットとは
WEBサーバ(バックグラウンド上)で動作する。
javaプログラム。
javaプログラムなので実行環境が必要。
それが、サーブレットコンテナ。
また、サーブレットコンテ内でhttpを受け取り、サーブレットを動作させる。
 ⚠️これが、get, post などの通信
 ⚠️HTTPは、 「Hyper Text Transfer Protocol」の略のため
   javaによらずhttp通信が行われている。(phpとか)
   javaの場合httpRequestクラスを継承しhttpサーブレットを取得し使用している。
   

#サーブレットコンテナとは
javaサーブレットを動作させるための実行環境

例として

Apache Tomcat、JBoss Application Server、Apache Geronimo、Webspehere、Jetty

+ Apache tomcat (⚠

元記事を表示

OTHERカテゴリの最新記事