JAVA関連のことを調べてみた2021年11月07日

JAVA関連のことを調べてみた2021年11月07日

SpringBoot ✕ jQuery✕ DataTables・DataTables-pluginsの導入

#はじめに
SpringBootのRESTで検索機能を実装した際に、`Gradle`プロジェクトでの**DatTables**と**DataTables-plugins**の導入方法が見つからず、時間をロスしたので、同じように悩んでいる人などに向け備忘録として書いておきます。

#build.gradle
結論、参考文献に書いてあるようにすればいいだけですので、非常に簡単です。

“`java
dependencies {
implementation ‘org.webjars:datatables:1.10.21’
runtimeOnly ‘org.webjars:datatables-plugins:1.10.21’
}
“`

上記2行追加するだけでライブラリの導入は完了です。
お役経てば幸いです。

#参考文献
> [MavenRepository](https://mvnrepository.com/artifact/org.webjars/datatables-plugins/1.10.12)

元記事を表示

動的計画法をJavaでメモ化再帰で記述してみた。

以下のナップザック問題をメモ化再帰で記述してみました。
https://atcoder.jp/contests/dp/tasks/dp_d

残念ながら、0_00, 0_01, 0_02, 1_00, 1_01, はACでしたが、他がTLEになってしまいました。

こちらの記事を見て今度はforループで解いてみたいと思います。
https://qiita.com/drken/items/dc53c683d6de8aeacf5a#e-%E5%95%8F%E9%A1%8C—knapsack-2

“`Java:Main.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Scanner;

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

元記事を表示

【2021年】Maven-Gradle【初心者メモ】

# 目次
– ビルドとは
– ビルドツールとは
– 依存関係とは
– ビルドの歴史
– Maven
– Gradle
– まとめ
– 参考

# Maven, Gradleとは
Maven, Gradleとはビルドツールである。

# ビルドとは
– 「要求された実行環境で動作できる形式にアプリケーションやライブラリを組み立てる」こと

– 本来ビルドには「決まりのある作業を行う」という意味があるが、エンジニア目線で言うと「要求された環境に合わせて適切に導入し動作を安定させる」という意味がある

– Javaの場合だと、「.java」→「.class」ファイルにコンパイル、「.jar」ファイルに固める+α、サーバーにデプロイする…など

# ビルドツールとは
– 要求された実行環境で動作できる形式にアプリケーションやライブラリを組み立てる(ビルド)するツール

– プロジェクトのビルド、テスト、ドキュメンテーション、成果物のデプロイなど、プロジェクトのライフサイクル全体を管理するもの

– プロジェクトの依存するライブラリの管理をする

# 依存関係とは
– ある要素が別の要素の存

元記事を表示

Apache Beamで実装したバッチ処理をAmazon EMRで実行する

## はじめに

以下の記事では、Beamを使用して実装した1つのコードを、ストリーム処理が可能なマネージドサービスであるGCPのDataflowとAWSのKinesisDataAnalyticsそれぞれで実行することを試しました。

https://qiita.com/ynstkt/items/50d551f025d8612d69e1

Beamはバッチ処理とストリーム処理の両方に対応したプログラミングモデルなので、今回は、バッチ処理をGCPとAWSそれぞれのマネージドサービス上で実行してみました。

GCPの場合、Dataflowでそのままバッチ処理も実行できるため、既に上記の記事でGCSをファイル入出力先としたバッチ処理をお試し済なので割愛します。

AWSの場合、ETLサービスまたはサーバレスなSpark実行環境としてDataflowと比較されることのあるサービスとして、AWS Glueが挙げられます。ただ、個人的にGlueについて勉強不足で、作成済のJARをデプロイして実行する方法がよくわからなかったので、まずはAmazon EMR上で実行してみることにしました。

なお、本

元記事を表示

JSF FaceletタグライブラリのXMLネームスペース一覧

JSF Faceletタグライブラリのxmlnm(XMLネームスペース)一覧

|Library|prefix|JSF2.1まで|JSF2.2以降|
|:-:|:-:|:-:|:-:|
|Composite Components|cc|http://java.sun.com/jsf/composite|http://xmlns.jcp.org/jsf/composite|
|Faces Core|f|http://java.sun.com/jsf/core|http://xmlns.jcp.org/jsf/core|
|HTML_BASIC|h|http://java.sun.com/jsf/html|http://xmlns.jcp.org/jsf/html|
|JSTL Core|c|http://java.sun.com/jsp/jstl/core|http://xmlns.jcp.org/jsp/jstl/core|
|JSTL Functions|fn|http://java.sun.com/jsp/jstl/functions|http://xmlns.jcp.org/js

元記事を表示

【Java】BigDecimal

# BigDecimalとは
– 誤差が出ないように正確に計算するためのクラス
– 四捨五入などの丸め処理ができる
– 桁数の指定ができる

## BigDecimalを使わない場合にどのような誤差が出るのか
“`.java
import java.math.BigDecimal;

public class Main {
public static void main(String[] args) {
// BigDecimalを使わない場合
System.out.println(1 – 0.9); // 0.09999999999999998

// BigDecimalを使う場合
BigDecimal number1 = BigDecimal.valueOf(1);
BigDecimal number2 = BigDecimal.valueOf(0.9);
System.out.println(number1.subtract(number2)); // 0.1
}
}
“`

元記事を表示

ドメイン駆動設計入門 Chapter 2 システム固有の値を表現する「値オブジェクト」のまとめと感想

[ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本](https://www.seshop.com/product/detail/20675)の輪読会に参加しています。筆者は「Chapter 2 システム固有の値を表現する『値オブジェクト』」の発表を担当することになったので、自分なりに解釈した内容と感想をまとめました。

https://www.seshop.com/product/detail/20675

本書で取り扱われているサンプルコードのプログラミング言語はすべてC#が採用されています。しかし、筆者はC#に触れた経験がないため、本記事内におけるソースコードはすべてJavaを採用しました。

# こんなコードはありませんか?

アプリケーションを開発していると、StringやList, Mapといった標準のクラスをそのままメソッドの返却値として利用してしまうことがあります。

“`java
public String getFullName();
“`

しかし、本章では、必要とされる処理にしたがって、そのシステムならではの値の表現があるはずだと説いてい

元記事を表示

javaでダウンロードzipファイルを一時保存せず処理

javaでネットワーク上のzipファイルを取得する場合はローカルの適当なディレクトリに一時保存してから解凍して処理が多いと思われる。内部実装はともかく、java上でzipファイルのダウンロードから処理までを完結する方法について。

# 環境
* java 17

# ソースコード
例として郵便番号(いわゆるken_all.csv)のzipファイルを読み込む。

“`java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class ZipDownload {
public static void main(String[] args) throws IOException {
URL ur

元記事を表示

Spring-Retry 攻略記

#はじめに
とある既存システムの改修でDBコネクション切れを契機とするエラーに対し、Spring-Retryを利用したリトライ処理の実装を行った。
その際に得られた知見・対応策を今後の覚書として残そうと思います。

※既存システムに対する改修という性質故に、書き方としてはあまり良くないかもしれないのはご容赦を。。。

#Spring-Retry導入
build.gradleに下記の依存関係を追加でOK

“`build.gradle
compile(‘org.springframework.retry:spring-retry’)
compile(‘org.springframework.boot:spring-boot-starter-aop’)
“`

#実装
###1. EnableRetry
対象のSpringアプリケーションのエントリークラス(@SpringBootApplication)に@EnableRetryを追記

“`RetrySampleApplication.java
package retrysample.app

import org.springfr

元記事を表示

# JAVAカスタム暗号化アルゴリズム(1)

# JAVAカスタム暗号化アルゴリズム(1)
### 1.基本知  
>1. ビットとバイトの関係
> – 1)ビットは、メモリ内の最小のストレージユニットであり、0または1のいずれかです.
> – 2)1バイト= 8ビット
> – 3)バイトはJavaで最小のストレージユニットです.
>2. メモリ内のint型の格納方法[(サンプル)](#jump1):
> – Javaのint型の長さは32ビットです
> – 最上位ビットは符号ビットです.1は負の数を意味し、0は正の数を意味します.
> – したがって、Javaのint型の値の範囲は(- 2 ^ 31)〜(2 ^ 31)です.
> – 数値は2の補数の形でメモリに保存されます.
>3. バイナリの基本的な知識
> – 元の数の場合、最上位ビットは符号ビットであり、残りのビットは数値の絶対値の2進数です.
> – シフト操作「>>」、右シフト.
> – ビット単位のANDで「&」を計算します.2つのビットが同時に1の場合、結果は

元記事を表示

Java: Threadおさらい

## 基礎知識

### Thread2種類

“`SimpleThread.java
package playground;

public class SimpleThread extends Thread {
public void run() {
for (int i = 0; i < 10; i++) { try { Thread.sleep(10000L); // 10秒停止する System.out.println("スレッドで動いています:" + (i+1) +"回目"); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } } ``` ```SimpleThread2.java package playground; public class Si

元記事を表示

MyBatisをNoXMLで使う

# 目的

MyBatisは通常XMLで各種定義を行いますが、XMLを使わないことも可能です。

# 手順

## SqlSessionFactoryの取得

### CDI+JNDIの場合

Java EEサーバ上で動かす場合はJNDIルックアップと組み合わせます。JNDI定義は例えば次の記事が参考になります。

https://qiita.com/teruq/items/7705c2f82e17a7e17d12

“`
@Resource(lookup = “jdbc/********”) // JNDI名
private DataSource dataSource;

@Produces
public SqlSessionFactory produceSQLSessionFactory() {
var config = new Configuration();
config.addMappers(“package.to.mappers”); // Mapperクラスが存在するパッケージ
config

元記事を表示

JavaのOptional型について

## Optional型
本日はJavaのOptional型について書こうと思います。
まずjavaのOptional型について、一体どういうものなのか説明します。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Optional.html
こちらの情報を参照します。

>null以外の値が含まれている場合も含まれていない場合もあるコンテナ・オブジェクトです。値が存在する場合、isPresent()はtrueを返し、get()は値を返します。

みてるだけではよくわからないのでCodeで記述してみます。
リクエストからidを受け取り、User情報を取得する受け口です。

“`java:UserController,java 
@GetMapping(“/{id}”)
public Optional userFindById(@PathVariable(“id”) Integer id) {
return userService.findAllByIdUsers(id);

元記事を表示

HacobuneでSpringBoot(Java)起動してみた

Hacobune(PaaS)の使い方を理解するために、シンプルなSpringBootアプリを起動してみました。

## 参考にした情報

* Hacobuneのマニュアル
https://manual.c1.hacobuneapp.com/docs

* Hacobuneオープンβ版提供開始発表会

動画後半の設定の流れが参考になりました。

## 起動してみた流れ

### アカウント開設
https://cloud.sakura.ad.jp

### ログイン後のコントロールパネル

以下のアイコンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25604/d5b5ee31-3dc4-9ae5-039f-09d5f906d11f.png)

### Hacobuneのコントロール画面から設定
プロジェクト作成し、アプリケーションにて新規作成ボタンを押して以下を設定。

![image.p

元記事を表示

Java学習 ブラックジャック作ってみた

こんにちは。
Javaの基礎文法の学習を進めていく中でそろそろなにか形のあるものを作ってみようということで、コンソールで動く簡単なブラックジャックゲームを作ってみた。

↓GitHub URL
 https://github.com/hananokensho/practiceBlackJack

今回作ってみて感じたこと
・コンストラクタが優秀
・インスタンスが実体というのがよくわからなかったが理解が深まった。

Mainクラスだけ載せておきます。

“`Java:Main.java

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Deck deck = new Deck(); //山札
Player player = new Player(); //プレイヤー
Dealer dealer = new Dealer(); //ディーラー(相手)
Scanner sc = new Sca

元記事を表示

基盤地図情報からLOD1のCityGMLを作ってみる。

#1. 概要
[基盤地図情報](https://www.gsi.go.jp/kiban/)の建物ポリゴンから、[citygml4j](https://github.com/citygml4j/citygml4j)を使って、LOD1のCityGMLを作ってみました。
建物の高さの情報は、1mメッシュのDSMとDEMが公開されている[兵庫県高精度3次元データ](https://web.pref.hyogo.lg.jp/kk26/hyogo-geo.html)を使用しています。
なお、ソースコード一式を[こちら](https://github.com/termat/citygml_lod1)にアップしています。
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55735/60920cb4-503e-c8de-5892-c56984f51539.jpeg)

#2.建物情報の抽出
今回は、神戸市三宮周辺のCityGMLを作ってみました。
[基盤地図情報](https://www.gsi.go.jp/k

元記事を表示

Java Word文書でコメントを挿入

はじめに

Word文書でコメントを挿入することで、気になる文章について意見や、修正を希望する箇所などを記載することができます。今回はSpire.Doc for Javaというライブラリを活用して、Word文書でコメントを挿入する方法を紹介します。

Spire.Doc for Javaとは?

Spire. Doc for Javaは、Eiceblue社が開発され、開発者が JavaプラットホームでWordのドキュメントを迅速かつ高品質で作成・編集・変換・印刷するために設計された専門的なDoc処理AP

元記事を表示

【Java】【Spring】Pointcut is not well-formed: expecting ‘name pattern’ エラーの解決法

#はじめに
今回は`Pointcut is not well-formed: expecting ‘name pattern’`というエラーにハマったので、メモしておきます。

#エラーコード

“`java
package com.example.demo.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

@Aspect
@Component
@Slf4j
public class LogAspect {

/**
* サービスの実行前にログ出力する
* 対象:[UserService]をクラス名に含んでいる

元記事を表示

【初心者向け】SpringBootにおける単体テストの基本事項(ログ、例外処理)

前回の記事で書ききれなかった部分について書いていきます。
前回の記事

https://qiita.com/Shukupon/items/373939bc0dea4f25b007

コード
https://github.com/Shukupon/TestTemplate

## 前提条件(前回と同じ)

Java11
SpringBoot 2.5.6
Junit5
H2
MyBatis
REST API

今回は以下の項目についてまとめていきます。

– ログのテスト
– 例外のテスト

## ログのテスト
ログのテストは標準出力の中身を取得してあげることになるのでまた少し特殊な書き方になります。
以下がテスト対象であるログを出力するコントローラークラスです。

“`java
package com.example.demo.presentation.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotat

元記事を表示

[java] 文字列を一文字ずつ取り出す方法案

色々プログラミングをしていてヒドい目にあったので、備忘録。
fc2にも書いたけど一応こっちにも。

#文字式から文字を取り出すとき (仮)まとめ 

##「1文字ずつ取り出すとき」を考えたい。
####substringクラスを使う方法をとりあえず考える。
  というかこれしか今のところ知らない

– ##1.substringクラス とは?
 本来は、文字列を指定した範囲から範囲まで抜き出してくれるっぽい。
 今回はそれを悪用?して1文字ずつ出力させる!

– ##2.substringクラスの使い方
#####(参照する文字列).substring(a,b) //a,bには文字列の切り出したい部分のインデックスを選ぶ。
 画像では、
  (参照する文字列) = letter //midorisan が入ってる文字列。
  (i,i+1) = 今回はfor分の中に入れてるので、一文字目から最後まで出力する感じ。
  ってしてる。

###### あと、文字列のインデックス(一文字ずつに振り分けた番号)は、0から始まるから注意!
 例えば、mido って文字列だと、 m は

元記事を表示

OTHERカテゴリの最新記事