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

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

Seleniumで利用するDriverの自動更新方法(Java)

個人開発でseleniumを利用しているのだが、Chromeが頻繁に更新されるので、手動更新がめんどくさくなった。
自動更新の仕方を調べ、実際にコーディングし、意図する結果になっているので、整理しておく。

**※多少雑だが個人的備忘なのでご了承ください。**

# 環境情報

– Java8
– Gradle6.7.1
– Windows 10
– eclipes photon

※なお対象のdriverはchromedriver

# 実装
– build.gradleに以下の記述を追加

“`
dependencies {
implementation ‘org.seleniumhq.selenium:selenium-java:3.12.0’
compile group: ‘org.seleniumhq.selenium’, name: ‘selenium-chrome-driver’, version: ‘3.12.0’//これ無くても動くかも
compile group: ‘io.github.bonigarcia’,name :’webdrivermanager’

元記事を表示

SpringSecurity5.7にアップデートしたらUserDetailsServiceを用いた認可ができなくなった

## 前提

SpringSecurity5.7から書き方が大きく変わります!

詳細は以下の公式ブログにて解説がありますが、
`WebSecurityConfigurerAdapter`が`@deprecated`になります。

https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

以下の記事もお世話になりました。

https://qiita.com/suke_masa/items/908805dd45df08ba28d8

## 困ったこと

もともと`UserDetailsService`を用いてDBに登録されているユーザーを認可していたのがSpringSecurity5.7以降でできなくなりました。

### before

“`SecurityConfig.java
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigure

元記事を表示

【モダン】Kotlin + SpringBoot + JUnit5をVSCodeでDebugをする

最近3日前くらいにKotlinをはじめて完全に理解しました。
よろしくお願いします。

※Kotlin文法はこちらの記事をご参照ください。
[30分で覚えるKotlin文法](https://qiita.com/k5n/items/cc0377b75d8537ef8a85 “30分で覚えるKotlin文法”)

Scalaはほとんど絶滅した感じで、世はやっぱりJavaかと思う昨今ですが
そういやKotlinが居たなーと思いサーバーサイドの`Kotlin + SpringBoot`の
現状を調べてみました。

2022年現在(6月) VSCode + Kotlin
・コード補完があんまり効かない。
・デバッグがよくわからない。
・私は*IntelliJ Ultimate*ユーザです。

という致命的な状態であることに絶望しました。

俺たちが本当に欲しかったのは言語の説明ではなく
いい感じにモダンな言語の開発フィーリングであって
VSCodeでキラキラした感じに開発できる環境なのです。

Goでいいじゃん。
そうなんですけど、WEB界最強のFWであるSpringBootでサーバを創りたい

元記事を表示

JXLSで動的にセルコメントを出力する

# 概要
[JXLS](http://jxls.sourceforge.net/index.html) を利用してExcelを出力しているアプリケーションで、セルに動的にコメントを出力したいという要件が出てきたときの奮闘備忘録。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/97750/86557cb0-636a-1747-fd93-2c5382c833bb.png)

# 環境
– Java 8
– poi 4.1.2
– jxls 2.8.1
– jxls-poi 2.8.1

# 前提
Excel出力時のメモリ消費を抑えるために、JXLSのSXSSF Transformerを利用。
JXLS公式で公開されている[SxssfDemo.java](https://github.com/jxlsteam/jxls/blob/master/jxls-poi/src/test/java/org/jxls/examples/stress/SxssfDemo.java)を参考に、下記実装をベース

元記事を表示

ABC248A~Dの解答[Java]

## はじめに
コンテスト中に提出したコードは煩雑なので、基本方針はそのままで訂正・改良したものを解説します。

では、解説していきます。

## A – Lacked Number
問題文は[こちら](https://atcoder.jp/contests/abc248/tasks/abc248_a)

特に難しくは考えず、無い数字を全探索しましょう。
“`A.java
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//数字を分割して格納
char[] num = br.readLine().toCharArray();
//0から順に探す
for(int i=0;i<10;i++){ //見つかったかどうか管理する変数 boolea

元記事を表示

Junit5+Mockitoによる単体テストメモ

# はじめに
Junit5とMockitoを使用したテストコードを1から記載する機会があったため、使い方を振り返れるようにまとめた自分用メモです。
モックの記述方法が中心の内容となります。

# 依存関係
## Junit5
SpringBootの場合はspring-boot-starter-testに含まれているため記載不要です。
“`xml:pom.xml



org.junit
junit-bom
5.8.2
pom
import




org.juni

元記事を表示

ABC249A~Dの解答[Java]

## はじめに
このコンテスト中に提出したコードは煩雑なので、基本方針はそのままで訂正・改良したものを解説します。

では、解説していきます。

## A – Jogging
問題文は[こちら](https://atcoder.jp/contests/abc249/tasks/abc249_a)

素直に二人の移動距離を計算して大小を比較しましょう。
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//値の取得
int A = sc.nextInt();
int B = sc.nextInt();
int C = sc.nextInt();
int D = sc.nextInt();
int E = sc.nextInt();
int F = sc.nextInt();
int X = sc.nextInt();
//歩いて休むを1セ

元記事を表示

【初めてのポートフォリオ作成】銀行専用人材管理システムを作ってみた

# 目次
| 項番 | ページ内リンク |
|:—-:|:————-|
| 1 | [1. どのような機能を](#1-どのような機能を) |
| 2 | [2. どのような技術を用いて](#2-どのような技術を用いて) |
| 3 | [3. どのような工夫をして](#3-どのような工夫をして) |
| 4 | [4. どのような成果に繋がったのか](#4-どのような成果に繋がったのか) |
| 5 | [5. 機能概要](#5-機能概要) |
| 6 | [6. テーブル定義書](#6-テーブル定義書) |

# システム
**【プロジェクト名】**
BANKBANK 銀行向け人材管理システム
![logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455017/89d6725e-552f-2a0e-2bd2-ca166a7a92b5.png)

# 1. どのような機能を
**【機能概要】**
銀行を対象にした人材管理システムです。

銀行業務において発生し得る多様なニーズに

元記事を表示

[2022年]Amazonプログラミング書籍レビュー高評価商品[参考書]

Amazonで評価の高いプログラミングの書籍を紹介します。
プログラミングやIT系の勉強するときはKindleや電子書籍で勉強するのがおすすめです。

***
[良いコード/悪いコードで学ぶ設計入門[Amazon]](https://amzn.to/3QiFKrC)
![aaaa.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/28f7cab7-e530-55ef-35be-63b5d4af6710.jpeg)
– 1 悪しき構造の弊害を知覚する
– 2 設計の初歩
– 3 クラス設計 ―すべてにつながる設計の基盤―
– 4 不変の活用 ―安定動作を構築する―
– 5 低凝集 ―バラバラになったモノたち―
– 6 条件分岐 ―迷宮化した分岐処理を解きほぐす技法―
– 7 コレクション ―ネストを解消する構造化技法―
– 8 密結合 ―絡まって解きほぐせない構造―
– 9 設計の健全性をそこなうさまざまな悪魔たち
– 10 名前設計 ―あるべき構造を見破る名前―
– 11 コメント ―保守と

元記事を表示

3つアノテーションの1行整理(個人用)

@RequestParam:1つのHTTPリクエストを受け取るアノテーション

@ModelAttribute:Objectの作成から値の入力までのプロセスを自動化してくれるアノテーション

@RequestMapping:ClientのRequestを処理するControllerを見つけてくれるアノテーション。
         これはマッチングサービスみたいなものかな?

元記事を表示

ABC250A~Dの解答[Java]

## はじめに
コンテスト中に提出したコード(A~C)はかなり見辛いので一応解説はしますが書き換えられる点を探して書き直した物も載せます。

では、解説していきます。

## A – Adjacent Squares
問題文は[こちら](https://atcoder.jp/contests/abc250/tasks/abc250_a)

単純に上下左右にマスが存在するか見ても良いですが、初期値を4にして、a==1,Hを満たすなら-1、b==1,Wを満たすなら-1みたいな感じで絞っていくと範囲外参照とか気にしなくて楽そうです。
※このコードは訂正箇所が特にないのでそのままにします
“`A.java
import java.util.*;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
///値の取得
int H = sc.nextInt();
int W = sc.nextInt();
int a = sc.nextInt

元記事を表示

Android Studioで使っているJDKをコマンドプロンプトでも使う(Windows)

Android Studioが入っていれば、JDKを改めて入れなくても良いそうなのと、
[Android Studioで使っているJDKをターミナルでも使う](https://qiita.com/tsumuchan/items/43a55789f1cf213611cc)にてMacでの方法は紹介されていたのですが、Windowsでの方法はすぐに見つけられなかったのでメモを残しておきます。

## JDKの場所を確認
Android Studioの `[File] > [Project Structure]` から確認する事が出来ます。
`JDK location`から確認できます。(↓キャプチャ)
![スクリーンショット 2022-06-10 215451.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/695130/57d08d42-973c-92a0-7e9c-474ba0f2359c.png)
私の場合
`C:\Program Files\Android\Android Studio\jre`
の部分

元記事を表示

【java】javaの連想配列の2次元配列 キーを指定しないデータ構造 こんな感じのデータ [{名前=高橋, 国語=78}, {名前=吉田, 国語=50}]

# コード
“`java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List> nameMap = new ArrayList<>();
//
Map scoresMap_suzuki = new LinkedHashMap();
scoresMap_suzuki.put(“name”, “高橋”);
scoresMap_suzuki.put(“japanese”, 78);
scoresMap_suzuki.put(“math”, 90);
//
Map scoresMap_satoh = new LinkedHashMap

元記事を表示

ABC251A~Dの解答[Java]

## はじめに
D以外はコンテスト中に書いたコードなので、若干汚いかもしれません。ご了承ください。

では解説していきます。

## A – Six Characters
問題文は[こちら](https://atcoder.jp/contests/abc251/tasks/abc251_a)

長さが6になるまでfor文でprintlnしてやればACが取れます。
“`A.java
import java.util.*;
class Main{
static Scanner sc = new Scanner(System.in);

public static void main(String[] args){
//文字列の取得
String str = read();
//6÷(文字列の長さ)回出力する
for(int i=0;i<6/str.length();i++){ System.out.print(str); } //最後改行して終了 retE(""); } //旧テンプレ public s

元記事を表示

Javaを用いたページング機能

# JavaとSpringBootを用いたページングの実装

## 前提条件

###### 使用言語
* Java11
* Spring Boot
* Thymeleaf
* HTML
* CSS

###### 作成中のサイト
おもちゃのECサイト

## 完成イメージ

![スクリーンショット 2022-06-10 9.47.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2321592/4b16ac07-74ed-c49b-e3a9-16f724419dcf.png)

### 大まかな機能
1 現在のページが色が変わるようにする
2 真ん中には3つのページ変遷が表示されている
3 間が開く場合は「…」が表示される
4 最初のページでは「前へ」、最後のページでは「次へ」が押せなくなる

## 実装手順
### 1 ページネーションドメインの作成
#### フィールド変数を用意する
![スクリーンショット 2022-06-10 10.11.32.png](https://qiita-ima

元記事を表示

JavaとGridDBを用いたナイーブベイズ分類器

## はじめに

ナイーブベイズアルゴリズムは、ベイズの定理に基づく分類手法です。これは予測変数が互いに独立であることを仮定しています。ナイーブベイズ分類器は、あるクラスにおけるある特徴の存在が、他のどの特徴の存在とも関係しないことを仮定します。

例えば、リンゴの果実は、赤い色、丸い形、直径約3インチという特徴があります。これらの特徴は互いに依存しあっていますが、独立にその果実がリンゴである確率に寄与しています。だから “ナイーブ” と呼ばれるのです。

ナイーブベイズは、簡単に構築できるモデルであり、非常に大きなデータセットにも十分に適用できます。そのシンプルさにも関わらず、ナイーブベイズは最も洗練された分類アルゴリズムでさえも凌駕しています。

今回は、JavaとGridDBを使って、ナイーブベイズ分類器を実装する方法を説明します。目標は顧客が日にち・割引・無料配送といった情報に基づいて製品を購入するかどうかを予測することです。

## GridDBにデータを格納する

データは “shopping.csv “という名前のCSVファイルに保存されています。このデータをGridDB

元記事を表示

[2022年]中級者 上級者向けIT系洋書4(オライリー)

O’Reillyの洋書を紹介します。
プログラミングやIT系の勉強するときはKindleや電子書籍で勉強するのがおすすめです。
***
[Data Algorithms With Spark[Amazon]](https://amzn.to/3xjYRsJ)
![bb.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/71087a24-0bfd-dc45-edd2-b424c8529fe6.jpeg)
– I. Fundamentals
– 1 Introduction to Spark and PySpark
– 2 Transformations in Action
– 3 Mapper Transformations
– 4 Reductions in Spark
– II. Working with Data
– 5 Partitioning Data
– 6 Graph Algorithms
– 7 Interacting with External D

元記事を表示

[Java]APIサーバーからpush通知を送信できなくなってしまった。

## この記事について
筆者がJavaで構成されるアプリのAPIサーバーを修正していたところ、自前のApiサーバーからAppleのApnsサーバーへpush通知の送信リクエストができなくなってしまいました。その際に対処したことを備忘録として残しておきます。

## 経緯
Apnsサーバーへpush通知の送信リクエストができなくなってしまったのですが、その際サーバーには以下のようなエラーログが吐かれていました。

“`
[ERROR] NotificationSender:70 certificateName: □ □ □.p12 / Exception: java.util.concurrent.ExecutionException: java.io.IOException: Stream closed before a reply was received
“`

このAPIサーバーで使用しているライブラリはpushyというものです。

https://github.com/jchambers/pushy

筆者は上記のエラー文や、ライブラリ関係の文言でググってもなかなか原因が

元記事を表示

[2022年]中級者 上級者向けIT系洋書1(オライリー)

O’Reillyの洋書を紹介します。
プログラミングやIT系の勉強するときはKindleや電子書籍で勉強するのがおすすめです。
***
[Fluent Python[Amazon]](https://amzn.to/3MIJKim)
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2702119/d393d410-b04b-5046-4db9-bdd5afbc0584.jpeg)
– I. Data Structures
– 1 The Python Data Model
– 2 An Array of Sequences
– 3 Dictionaries and Sets
– 4 Unicode Text Versus Bytes
– 5 Data Class Builders
– 6 Object References, Mutability, and Recycling
– II. Functions as Objects
– 7 Functions as Fir

元記事を表示

HTML の基本

HTML の基本

HTML はハイパーテキストをマークアップするための言語で、テキストにさまざまな目印をつけてゆきます。目印をつけたテキストを 要素 (element) といいます。
ページの一番重要な見出しを HTML で表してみます。

見出し 1

「見出し 1」というテキストを

という目印で囲っています。
この目印を タグ といいます。

タグはタグ名を < と > で囲む
<[タグ名]> を開始タグという
を終了タグという
<[タグ名]>テキスト を 要素 という
また、要素の中に要素を入れる入れ子構造にすることができます。
この場合の外側の要素を 親要素 、内側の要素を 子要素 といいます。

見出し 1


body タグに h1 タグが囲まれています。
body タグが親要素、h1 タグが子要素です。

要素にいくつかの設定を追加する場合には 属性 (attribute) を使用します。
たとえばロゴ画像をマークアップする場合に img タグを記述し

元記事を表示

OTHERカテゴリの最新記事