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

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

VSCode拡張機能Community Server Connectorを試して、sample.warをデプロイしてみた

## はじめに

– VSCodeでTomcatにデプロイするためのサンプルのJavaアプリ開発でもしてみようと思い、Tomcat for Javaを見てみたらなんと、非推奨となっておりました。。

![2022-06-27-23-14-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411902/80ca559f-af34-f6cf-11a0-65b2841cd889.png)

代わりに推奨されている拡張機能である`Community Server Connectors`を利用し、tomcatのサーバを立ててsample.warをデプロイしたので、その紹介記事となります。

### Community Server Connectorsとは

[VSCodeのマーケットプレイス](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-community-server-connector&ssr=false#

元記事を表示

IoCとDI

### IoCとDI

#### IoC(制御の反転)
制御の流れを伝統的な方式と逆に変えること。Aオブジェクトの中にB、Cオブジェクトがあるとしましょう。
* 伝統的な方式は開発者がAオブジェクト内にB、Cオブジェクトを直接作る方式
* IoCは、Aオブジェクトでsetterを使用して外部からB、Cオブジェクトを生成して注入させる方式。(DI)
→プログラムの流れを開発者が制御せず、プログラム、正確に言えばSpring containerが管理することで、開発者は複雑なプログラムの流れをSpring containerに任せ、ロジックにすることに集中して作業の効率を高めることができる。

#### DI(依存性の注入)
使用するオブジェクトを直接生成するのではなく、Beanの情報を元にContainerが自動的に注入してくれることで、クラス間の分離が行われ、再利用性の高いコードとなる。

元記事を表示

Beansの意味と発展歴史

#### Beansとは?
+ Component(文書、モデル、テーブル、コード、ライブラリ)またはオブジェクトを意味うる。簡単に言えば、プログラミングをする際に持ち込んで再利用が可能な部品だと思えばいい

#### Beansの歴史
1. javabean

再利用可能なComponentで、ルールは複雑。

2. Servlet&JSP Bean

MVCからデータを渡すModelとして機能する。ルールは簡単。JSP containerに管理される。

※管理:Beanのライフサイクルを生成、消滅する行為

3. EJB(Enterprise JavaBeans)

企業環境で使用するため誕生したが、ルールが複雑。 EJB containerに管理される

4. Spring beans

ルールがシンプルで独立的。Spring containerに管理される。
元記事を表示

[Servlet&JSP]formから複数の値をまとめて変更する

## 今回も前回の続きでformで入力して一覧に表示させた後に、さらにチェックボタンを使用してまとめて変更を行う。

### 前回も続きになっているので、先にそちらの記事をみるとわかりやすいかもしれません↓

#### [[サーブレット&JSP]ArrayListを使って文字を表示させる](https://qiita.com/take14/items/3c2fee036bc0731785d9)

#### [[サーブレット&JSP]formからcheckボタンでまとめて削除する](https://qiita.com/take14/items/3c2fee036bc0731785d9)

### formから上原さんと鈴木さんを選択する。
![スクリーンショット 2022-06-27 8.16.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/1e18bf42-415e-56c6-d9f8-ca27633e6d1e.png)

### 変更内容を入力する。今回はテスト1とテスト2を入力
!

元記事を表示

SpringSecurity DBアクセス処理

# はじめに
SpringSecurity その3です。今回はDB認証の機能を実装していきます。
完全に理解することができていない為、不備等あるかもしれませんがご了承ください。

# SpringSecurityシリーズ 項目表
|NO |タイトル |
|—-|————————–|
|その1|[SpringSecurity 導入から基本的な認証フロー](https://qiita.com/ryo0527/items/dbdbb2a476cc74e9116b)|
|その2|[SpringSecurity ログインページをカスタマイズする](https://qiita.com/ryo0527/items/2ee963cea31e82fd3dc5)|
|その3|[SpringSecurity DBアクセス処理](https://qiita.com/ryo0527/items/0b0b161530a2f0eb9e0c)|

前回の続きからとなる為、その1とその2を実装後にご覧ください。

# 実装
### データベー

元記事を表示

Javadocの使い方とhtmlファイルで出力する方法について

1.Javadocとは

JavadocとはJavaのクラスやメソッドの仕様についてまとめる仕組みのことで、「/**」から始まり、「*/」で終わる形で記述されます。下に例を挙げます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725869/42726b78-d35a-326f-959f-8158550d2580.png)
この写真では引数に1を足すaaaというメソッドについて、Javadocを用いています。
Javadocでは@は特殊な文字として認識されます。「@param」など、@を先頭に置いたものをJavadocタグと言います。
「@param」は引数、「@return」は戻り値、「@author」はプログラムの著者をそれぞれ意味します。
Javadocタグは他にもいろいろ存在します。

2.Javadocを用いる意味

Javadocを用いて、クラスやメソッドの説明を行うと、該当するクラスやメソッドが他のクラスで呼び出された際にもそれらにカーソルを合わせるだけで、記述

元記事を表示

JavaとVB.NETしか仕事でやったことないけどGo言語触ってみる

# Go言語の本がKindleで安かったので買ってみた
Kindleの日替わりセールでたまたま500円だったので買いました。
友人もお勧めしてたのでせっかくなので読み進めてみます。
業務では5年ほどJava、VB.NETを扱ってきましたが、それぞれの違いなどについてざっくり書こうかなって思います。(基本Javaです)
あとこれを書き終わるくらいには何か動くものがあればうれしいなと思ってます。

↓これを読みました。

# 開発環境を作る
## IDE
新しい言語ならVSCode一択でしょ、と思ってVSCodeをダウンロードします。
プラグインは、軽くググって必須なものに加えてざっくり便利そうなものをいくつか選んで入れておきます。
まだ歴が浅いのでこんなの便利だよ~みたいなのあれば教えてほしいです。

## バージョン管理
SourceTreeが見やすいのでこれを入れます。
それとGitHubアカウン

元記事を表示

【Flyway】Found more than one migration with versionX.X.Xは、ファイル名が違う場合でも、バージョンが同じだと発生する。

# エラー内容
“`
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flywayInitializer’ defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Found more than one migration with version 1.0.0
Offenders:
-> /プロジェクトの配置ディレクトリパス/プロジェクト名/target/classes/db/migration/V1.0.0__users.sql (SQL)
-> /プロジェクトの配置ディレ

元記事を表示

ABC257A〜Cの解答[Java]

## はじめに
今回はCまでしか解けなかった(本番中はBまで)ので、そこまで解説します。

では、見ていきましょう。

## A – A to Z String 2
問題文は[こちら](https://atcoder.jp/contests/abc257/tasks/abc257_a)

単純に文字列を作ってもいいですが、計算だけで実装しましょう。
“`A.java
import java.io.*;
class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);

public static void main(String[] args)throws IOException{
//N、Xを文字列として受け取ってから数値変換
String[] str = reads(” “);
int N = Integer.parseInt(str[0]

元記事を表示

[サーブレット&JSP]formからcheckボタンでまとめて削除する

## 今回は前回の続きでformで入力して一覧に表示させた後に、さらにチェックボタンを使用してまとめて削除を行う。
### 前回の続きになっているので、先にそちらの記事をみるとわかりやすいかもしれません↓
#### [[サーブレット&JSP]ArrayListを使って文字を表示させる](https://qiita.com/take14/items/3c2fee036bc0731785d9)

**1点注意点といたしましては、スコープをrequestからsessionに変更しております。**

### form入力
![スクリーンショット 2022-06-26 11.16.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/a5924706-13cb-3083-4770-2f1964b4293e.png)

### 削除したい人を複数選択
![スクリーンショット 2022-06-26 11.22.49.png](https://qiita-

元記事を表示

Robocode Tank Royale より知的に弾を打つ(三角比)

これらの続き

https://qiita.com/JQinglong/items/7ec02a689f78abbd3324

https://qiita.com/JQinglong/items/0415d200d66c152edd10

https://qiita.com/JQinglong/items/c43b60f0efa0742eaa7b

前回の最後に、知的に弾を打つためのメソッドをCornersからパクりましたが、今回は、これを発展させます。

三角比ネタが盛り上がっているうちにここまできたかった・・・

## 問題の所在
現在、基本的には敵をスキャンできたらそこに対して弾を打っているわけですが、そこに向けて打っても、止まっている敵でない限りはそこにはもう敵はいないことが多いわけです。
これに対応していきます。

## 時間による移動距離の計算

基本情報はこちらになります。

https://robocode-dev.github.io/tank-royale/articles/physics.html#movement

まず、とっかかりとなるのは、

[distanc

元記事を表示

Selenium + ModHeader で RequestHeader を変えてみた

はじめに

Selenium と Chrome拡張ツールの ModHeader を使ってRequestHeaderの「User-Agent Client Hints」を書き換えてページアクセスする方法。

今回はモバイル判定で利用する「sec-ch-ua-mobile」を「?1」に書き換えます。

## 環境
Java8
Selenium 4
WebDriverManager

準備

事前に「chrome-modheader」をダウンロードしておきます。

https://github.com/modheader/modheader_selenium/tree/main/chrome-modheader

コード

“`java:Example.java
package example;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.openqa.selenium.WebDriver;
import org

元記事を表示

The Badass Runtime Plugin+Gradle+JPackageで自己完結型Javaアプリケーションインストーラを作る&パスも通す

# はじめに
どーもnaotikiKtです。とあるコンソールアプリにJavaを同梱して配布したくなったのでその時のハマりポイントとかを備忘録的な感じで書いておきます。

**本記事はInteliJ IDEA&Kotlinユーザーの方向けです。**
# JPackageて何?
JDK 14から含まれるようになったJavaを同梱した様々なプラットフォームのネイティブインストーラを作成できるツールです。
もとはjavafxpackager(JDK 7),javapackager(JDK 11)て名前だったらしいです。

https://docs.oracle.com/javase/jp/14/jpackage/index.html

# 環境
Windows,Linux両方のインストーラーを作りたいので両方の環境を用意する必要があります。

“`text:Windowsの環境
OS: Windows 11
JDK: Amazon Corretto Version 17.0.3 (JDK 14以上が必要)
IDE: InteliJ IDEA 2022.1.3
“`

“`text:Ubu

元記事を表示

[サーブレット&JSP]ArrayListを使って文字を表示させる

### formで入力した値をArrayListに格納して表示させる。

### form入力
![スクリーンショット 2022-06-25 16.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/e9c3d6fe-e681-bf11-b218-940685af9794.png)

### 入力結果
![スクリーンショット 2022-06-25 16.31.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675188/cea839c8-021e-c59c-c38b-2d92d2f1ee08.png)

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



元記事を表示

初心者による初心者のためのSpringBoot

# 環境構築
Eclipseをダウンロード
以下のURLへアクセス
URL:https://mergedoc.osdn.jp/

– Eclipseの最新版を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2676412/c105bb94-9ff3-5113-8646-fe1891266a71.png)

– JavaのFull Editionをdownload
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2676412/27fffb92-4a87-2007-bcd4-905c8f9715aa.png)

あとは解凍してEclipseを起動してください

:::note info
これで環境構築は完了になります!!
Spring Tool Suite (STS)などはFull Editionにすでに入っているのでDownLoadは不要です。
:::

# HelloWordを表示しよ

元記事を表示

Javaの引数と戻り値

Javaでは、ある機能を持ったメソッドがあり、そのメソッドにデータを渡すことで、メソッドの機能を利用することができます。メソッドに渡されるデータを「引数」と呼びます。詳細は以下の通りです。
# 引数とはなんぞや
引数とは、メソッドに渡すデータのことで、メソッドの後の「( )」内にある。例えば、printlnメソッドでは、以下の部分の「コンニチハ!」が引数になります。
“`java
println(“コンニチハ!”);
“`
引数には数値データ、文字データなどを用いることができ、引数の数は倍数で指定することができます。複数の引数を使用する場合は、「,」で区切られます。引数は、第1引数、第2引数、第3引数の順で呼び出されます。
“`java
メソッド名(第1引数,第2引数,第3引数,);
“`
# 戻り値とはなんぞや
メソッドに引数を渡した結果、返されるデータを戻り値と呼びます。たとえば、maxメソッドは、数値の大きさを比較して大きい方を返すメソッドです。以下の例では、maxメソッドの第1引数に「2」、第2引数に「5」が渡されています。
“`java
Math.max(2,5)

元記事を表示

【ちょっとアレンジ】Spring bootのControllerクラスで定義したパスを一覧として取得する

## やりたいこと

APIの本数が増えてきたので、実装済みのAPIのURIの一覧を出力したい

→[Spring bootのControllerクラスで定義したパスを一覧として取得する](https://qiita.com/shigeshibu44/items/886efb44c8c573c3ba6b)の内容の踏襲でほぼいけたのですが、PJの実装ルール的に少し考慮が必要な部分があったので、その部分を書き記しておきます

## アレンジした部分

クラスに@RequestMappingを付与して基幹部分のパスを、メソッドにリクエストメソッドに応じたアノテーションを付与して相対パスを定義するルールなので、以下2点実現できるように手を加えました。

* リクエストメソッドに応じたアノテーションからリクエストメソッドと相対パスを出力する
* クラスに定義された親パスとメソッドに定義された相対パスの関係性が分かるように出力する

“`参考記事のControllerクラスをループする部分改変.java
// 略
for (BeanDefinition def

元記事を表示

ArrayListで遊んでみる

“`java
package sample;

import java.util.ArrayList;

//Parsonクラス
class Parson {
private String name;

//コンストラクタ
public Parson(String name) {
super();
this.name = name;
}

//gettar
public String getName() {
return name;
}

//setter
public void setName(String name) {
this.name = name;
}
}

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

Parson p1 = new Parson(“加藤”);
Parson p2 = new Parson(“佐藤”);
Parson p3 = new Parson(“伊藤”);
Parson p4 = new Parson(“松原”);

A

元記事を表示

Jetpack Composeを現場のアプリ開発で使用してみて思ったこと

最近、Androidのアプリ開発においてJetpack Composeを使用する機会が増えました。

ということで、私が特に現場でJetpack Composeを使用してみて感じた(ている)ことを書いていこうと思います。(2022/6/24時点の感想)
知識不足で間違っている点あればご指摘ください。

# 良いと感じている点
### レイアウトの変更・管理がしやすい
– Kotlinコードでレイアウトを書いていくので、個人的にXMLベースよりコードのネスト構造が浅くなる(りやすい)傾向があります。
– Kotlinコードで管理するので、XMLファイルといった形式の異なるレイアウトファイルを管理する必要がほぼなくなります。見るのがKotlinコードに一元化されるので管理がしやすいです。
– 同じKotlinファイル内に複数のComposable定義を記述できるのでグルーピングしたい時とか便利

個人差はあるので、上記はいまいちピンと来ない方がいるかもしれませんが、XMLよりKotlinに慣れ親しんでいるエンジニアは頷けると思います。

### 状態に応じたUIの出しわけがやりやすい
その

元記事を表示

【Java, Slack】Spring で Slack メッセージ送信

# 背景
– Springプロジェクトで Slack にメッセージを送りたい(Apache Velocity テンプレートで)

# 環境
– Spring Framework 4
– slack-api-client 1.XX
– Apache Velocity 1.7
– Java 8

# 参考リンク
https://slack.com/intl/ja-jp/help/articles/215770388-API-%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%86%8D%E7%94%9F%E6%88%90

https://slack.dev/java-slack-sdk/guides/composing-messages

# 基底クラス
– AbstractSlackService:使いたいサービスで extend して使うイメージ
“`java:AbstractSlackService.java
public abstract class AbstractSlackS

元記事を表示

OTHERカテゴリの最新記事