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

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

Javaロードマップ一覧

Javaを学ぶためのロードマップを調べました

#私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう
https://qiita.com/haruto167/items/5a784df032518277f4a0

ロードマップ
学習方法
1.Hello World
2.基本を学ぶ
IDEを使いこなす
3.プロジェクト管理を学ぶ
4.標準&ベストプラクティスを学ぶ
5.他人のソースを読む&ライブラリを学ぶ
6.テストコードを学ぶ
7.カバレッジを意識したテストコードを書く
8.RDBを学ぶ
9.フレームワークを学ぶ
10.よく使う機能を作ってみる
11.Webテストを学ぶ
12.NoSQLを学ぶ
13.キャッシュを学ぶ
14.Rest APIを学ぶ
15.認証を学ぶ
16.セキュリティを学ぶ
17.メッセージングを学ぶ
18.検索エンジンを学ぶ
19.Dockerを学ぶ
20.Webサーバーを学ぶ
21.Webソケットを学ぶ
22.GraphQLを学ぶ
23.Graph Databaseを学ぶ
24.BigQueryや機械学習にチャレンジ

#最速でJavaエン

元記事を表示

51歳(現52)からのプログラミング 備忘 Iterator Pattern

#Iterator Pattern#

userが操作できるのはhasNext()とnext()だけにし
Iteratorの実装クラスを隠ぺいすることで
userとIterator実装クラスとの依存性を解消する

このページでは
・Iteratorの構造確認
・Iteratorの隠蔽
について記載しています

[Design Pattarm MENU]()

##Iteratorの構造確認
以下のclass構成で確認します

|クラス|説明|
|—-|———|
|sam.class|配列とIterator()を持つ|
|Itarator.class|sam.classの配列要素を呼び出す|
|user(Main.class)|sam.classを使う|

samとIteratorクラスの基本構造は以下の感じです

“`java:sam.class
class sam{
int[] i= {0,1,2};
Iterator iterate(){}
}
“`

“`java:Iterator.class

元記事を表示

【Java】列挙型

* 値そのものに意味がなく、シンボルとして意味を持つ定数で`final static`を使わない
* `public final static int SPRING = 0;`はint型なので全数値も受け取れる
* 季節を数値で表して月を数値で表してると引数など取り違える可能性
* →***列挙型**を使う
* `enum 型名`で名前をカンマ区切り
* 引数はintではなく**enumで定義した名前の型!**

“`java
//Season型のSPRINGにアクセスする場合、Season.SPRING
public enum Season {
SPRING,
SUMMER,
AUTUMN,
WINTER,
}
“`
“`java
public class EnumConstClient {

public static void main(String[] args) {
var ecs = new EnumConstSeason();
ecs.processSeason(EnumConstSeason.SPRING);

元記事を表示

SpringBoot+MyBatis+DBUnitでCRUDのテストを書いてみた(前編)

# はじめに
[前回の記事](https://qiita.com/kilvis/items/d75461b3596bfb0f6759)ではSpringBoot+JUnit5でController層のテストクラスの実装を行いました。
今回はDB操作を行うService層とテストクラスの実装をまとめていきたいと思います。

ただ、テスト対象となるアプリの準備に少々ボリュームがあるので、前編、後編で記事をわけることにしました。
以下の構成でまとめようと思います。

– [前編] データベース`MySQL`の準備
– [前編] `MyBatis`[^mybatis]を使ったRepositoryクラスの作成
– [後編] テスト用のデータベース`H2`[^h2]の準備
– [後編] `DBUnit`[^dbunit]を使ったテストクラスの作成

**・・・前編は肝心なテストクラスの作成まで行ってません(汗**

[^mybatis]: いわゆるO/Rマッパー。JavaとSQLのマッピングがシンプルでわかりやすく動的SQLの記述も可能。MyBatisGeneratorでTBLから、Mapper、

元記事を表示

【Java】例外処理

#例外処理とは
* アプリ実行時に発生するエラーに対応する
* 狭義の例外:開発者の責任では可否できないエラー
* ファイルが存在しない
* 接続先DBが停止していた
* Javaではこれらのエラーに対応必須
* **例外は型(クラス)**である
* **一般的な例外を上位クラス、個々の状況の例外を下位クラス**としたクラス階層として表す

#try…catch構文
* **tryブロック**:本来の処理
* **catchブロック**:例外の型によって呼ばれる
* 例外発生=**例外がスロー**される
* 指定された**例外変数(eやex)**を介して例外オブジェクトにアクセス
* ブロック単位でスコープを持つので複数catchブロックがあっても同じ変数名(e)でOK
* 例外クラスのメソッド
* **getMessage()**:エラーメッセージ取得
* **getLocalizedMessage()**:ローカライズ対応したエラーメッセージ取得
* **getCause(

元記事を表示

【Java】Objectクラス

#Objectクラスとは
* クラス宣言の際に**extends句を省略した時に暗黙的に継承されるクラス**
* **全クラスが最終的にObjectクラスをルートにもつ**
* 全クラスでObjectクラスのメソッドが利用できる(必要に応じ派生クラスでOverride)
* **clone()**:オブジェクトのコピー作成
* **finalize()**:破棄する時に実行
* オブジェクト破棄される時にガベージコレクションに呼ばれるメソッド
保証されてないので実際のアプリでは使うべきではない
* **equals(object obj)**:オブジェクトobjと等しいか?
* **getClass()**:オブジェクトのクラスを取得
* **hashCode()**:ハッシュコードを取得
* **toString()**:オブジェクトを文字列で取得

##toSrtingメソッド
* **可能なら全クラスで実装すべき**
* 適切な文字列表現を用意することでテスト時などでオブジェクトの概要確認できる
* `Syst

元記事を表示

サーブレットの変更内容が反映されない時の対処

#環境
pleiades 2020 all in oneのEclipseを使用
OSはwindows10
ブラウザはEclipse内部ブラウザとchrome

#現象
*サーブレットでHTMLを変更してブラウザを再読込してみ変更が反映されない*

#原因と対処
Tomcatのreloadableの値がデフォルトが’false’になっているので’true’に変更する
Eclipseのエクスプローラーからserver.xmlをエディタで開く。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/81ace312-f01f-a7e2-f3c2-feda115ceecd.png)

“`
// 156行目あたり

// reloada

元記事を表示

Spring Cloud Gatewayでoauth2認証

ソースは以下になります。

https://github.com/ko-aoki/spring-cloud-sample

Spring Cloud Gatewayは
マイクロサービス的に使うんだろうけど
単にfirewallっぽく使用できるのかな、と試してみました。

## 構成

以下二つのサービスを使用します。
[cloud-gateway]
[api]

[cloud-gateway]経由で
RESTサーバ[api]にアクセスします。
[cloud-gateway]はoauth2認証を必要とします。

## OAuth2認可サーバー

### KeycloakをDockerで起動

Dockerでkeycloakサーバを起動します。
以下 Docker Composeからpostgresqlを選択しています。

https://github.com/keycloak/keycloak-containers/tree/master/docker-compose-examples

keycloak consoleの基本的な操作は以下です。
https://www.keycloak

元記事を表示

【Java】try-catchの例外処理について

#プログラミング勉強日記
2020年11月5日
Javaでtry-catch文を使ったので使い方をまとめる。

#例外処理とは
 まずは例外処理とはどういった状態なのかを説明する。調べてみると以下のように出てくる。([出典](https://www.sejuku.net/blog/26344))

> 実行停止してはいけないプログラムに何らかのエラーが発生して落ちた
途中で問題が発生した場合、その後の処理を自分でコントロールしたい

 例外に対応するためにはその場でエラーを解決する方法(try-catch文)と、その場では例外へは対応せず処理を中断して呼び出し元に任せる(メソッドのthorws節)の2つ方法がある。
 Javaのtry-catch文はプログラム中で例外が発生するかを試し(try)、例外が発生したら捕まええて(catch)、何かしらの処理を行う。

#try-catch文とは
 上でも述べたが、例外が発生する可能性のある処理に使う。try-catch文を使うことで例外が発生しない場合の処理と例外が発生したときの処理を分けられる。
 finallyを使うことで例外の有無に関

元記事を表示

JavaはPowerPointでSmartArt図形のテキストコンテンツを抽出

前回の記事では、[PowerPointにSmartArt図形を追加する方法](https://qiita.com/wendy_wang/items/48b556784d3f3284a316)を紹介しましたが、本日は、JavaプログラムでSmartArt図形のテキストコンテンツを抽出する方法を紹介します。 (ライブラリ: Free Spire.Presentation for Java)

**JARパッケージのインポート**
**方法1:** [Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)をダウンロードして解凍したら、libフォルダーのSpire.Presentation.jarパッケージを依存関係としてJavaアプリケーションにインポートします。

**方法2:** Mavenリポジトリから直接にJARパッケージをインストールしたら、pom.xmlファイルを次のように構成します。

“`xml

元記事を表示

submitメソッドの使い方(Javaシルバー)

# substringメソッドとは

文字列から任意の部分列を取得するメソッド。
例えば、「今日はいい天気ですね」という文字列から「天気」という文字列だけを
抜き出すことができる。

Stringクラスのメソッド
java.lang.String.substring()

substring:部分列、部分文字列、サブストリング

## 使い方

“`java

public static void main(String[] args) {
//抜き出し前の文字列
String str = “abcde”;
//抜き出した文字列を表示
System.out.println(str.substring(2,4));
}

“`
実行結果

“`java
cd
“`

抽出する文字列を指定する範囲は、以下のように文字と文字の間に線を引き、
番号を振ると分かりやすい。

  |a|b|c|d|e|
   0 1 2 3 4 5

| 今 | 日|は| い |い |天 |気 |で | す | ね|
0 1 2 3 4 5 6 7 8 9 10 

開始位置

元記事を表示

[Java]HTTPヘッダのfilenameに日本語名ファイルを返す

`日本語_1.tsv` をダウンロードさせようとすると、 `_1.tsv` になってしまった。日本語でダウンロードさせるにはURLエンコードが必要になってくる

Spark のレスポンスヘッダに埋め込む例

“`java
Spark.res.header(“Content-disposition”, “attachment; filename=日本語_1.tsv”)
“`

これをエンコードして埋め込んであげる必要がある

“`java
Spark.res.header(“Content-disposition”, “attachment; filename=” + URLEncoder.encode(“日本語_1.tsv”, “UTF-8”))
“`

元記事を表示

Javaで学習してきたこと(その1)Java開発の流れと全体像

#Javaの振り返り
Javaを勉強してきた内容を大まかに振り返りたいと思います。
#Javaの環境構築
Javaを学習するにあたって必要または使用した環境(道具)
1.JDK
 Javaを作る際に必要な機能をまとめたもの
 参考:https://wa3.i-3-i.info/word15006.html
 インストール参考:https://eng-entrance.com/java-install-jdk-windows
2.Eclipse
 IDE(統合開発環境) → 実際にJavaを開発していくためのツール
 参考:https://www.sejuku.net/blog/72127
 インストール参考:https://techfun.cc/java/windows-eclipse-install.html
3.Eclipse日本語化パッケージ
 Eclipseを日本語で使用するためのもの
 インストール参照:https://www.javadrive.jp/eclipse3/install/index4.html
#Java開発の流れ
環境(道具)が揃ったら次は開発の流れです。

元記事を表示

Javaで湯婆婆の出したエラーを回避する

はじめに

この記事は
https://qiita.com/Nemesis/items/c7192a7c510788d2cba2
のパクリです。ごめんね。
それから、この記事は映画「千と千尋の神隠し」のネタバレになる可能性があります。
「大丈夫!」って人だけ下に進んでください。

コード

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

public class yubaba {
public static void main(String[] arts){
System.out.println(“契約書だよ。そこに名前を書きな。”);
Scanner keiyakusho = new Scanner(System.in);
String name = keiyakusho.nextLine();
Yubaba(name);
}

private static void Yubaba(String

元記事を表示

【Java】ポリモーフィズム(Polymorphism)

#ポリモーフィズムとは
* 同じ名前のメソッドで異なる挙動を実現
* Triangle,RectangleクラスでShapeクラスを継承し、同名のgetAreaメソッドを定義
* 同じShape型の変数でもオブジェクトの型が違うので、オブジェクト型に応じて基底/派生クラスのメソッドが呼ばれる
* **→異なる機能を同じ名前で呼ぶことができる!**
* メリット:
* 保守性に優れる
* 機能の差し替えはインスタンスの差し替えのみ
* 理解しやすい

“`java:Shape.java
public class Shape {
protected double width;
protected double height;

public Shape(double width, double height) {
this.width = width;
this.height = height;
}
//図形の面積を取得(派生クラスでオーバーライドする)
public double getArea() {
re

元記事を表示

やってみよう! Apache Derby

# はじめに
Apache DerbyはJavaで実装されたRDBMSです。お手軽に使えるので便利です。
今回は導入方法と、簡単な使い方をメモしておきます。
(簡単に設定・実行できますが、自分はijの起動でJAVA_HOMEのエラーが出てはまりました・・・)

環境:Mac OS 10.15.7

# Derbyのダウンロード
以前はJDKの中に入っていましたが、最近のJDKでは入っていません。自分でダウンロードする必要があります。

* Apatch Derbyを[ダウンロード](https://db.apache.org/derby/derby_downloads.html)します。
* ダウンロードしたら適当なフォルダに解凍します。 (ここでは/Users/XXXX/derbyに解凍)

# 設定
インストールしたフォルダ配下のbinにPATHを通しておきます。
.zprofileに、/Users/XXXX/derby/binを追加します。

“` sh:~/.zprofile
export PATH=/Users/XXXX/derby/bin:$PATH
“`

#

元記事を表示

実家の会社の日報表をwebアプリ化した。(スマホ用)

#はじめに
実家の会社が未だに紙ベースでやりとりをしているので、実際に使ってほしいという気持ちを持ちつつ作ってみました。(スマホ用)
#概要と背景
– 営業マンがその日行った営業を日報表にまとめてその日の終わりに提出する。
– 紙面でのやりとりなので、事前に報告ができない、過去の営業記録をいちいち紙で探す必要がある、など不便なことが多い。
– 日報表の項目は、訪問先住所・訪問先氏名・会見者・訪問結果・内容・日付の6項目。
– 社員の管理は社員用テーブルで管理し、訪問履歴はセールス記録テーブルで管理する。
– 訪問履歴は社員に個別に与えられた社員番号で個別に管理する。

#開発環境
– サーバーサイド
– java
– java EE
– フロントサイド
– javascript
– html
– css
– データベース
– MySQL
– その他
– bootstrap

#基本機能
– ログイン機能
– 社員名と社員ごとに与えられたパスワードで管理
– セッションによるログイン管理
– ログアウト機能

元記事を表示

[Java]個人的にまとめた件について。

Javaについて、理解するためにまとめる。
随時更新していく。

##流れ
#####①ソースコードの作成
ソースファイルの拡張子は「.java」

#####②コンパイル
ソースファイルをクラスファイルに変換
拡張子は「.class」
クラスファイルにバイトコード(ソースコードの命令をコンピュータが認識できるようにしたコード)がある

#####③実行
バイトコードの解読が行われる
よってコンピュータが命令通りに動作するようになる

##基本構造
public class クラス名 {  ※クラス名はアルファベット大文字始まり //クラスブロック
public static void main(String[] args) { //メソッドブロック
}
}
ブロックによる二重構造

##変数

#####宣言
データ型 変数名;
#####データ型
[整数] 小
byte:かなり小さい byte glasses; glasses = 7;
short:小さい short age; age = 7;
⭐︎int:通常 int sala

元記事を表示

【Java】Spring AOPの実行順序

## はじめに
今回はSpring AOPの実行順序について書いていきます。
同じAspect内にあるAdvice間の優先順位や、別Aspect同士の同じAdviceの優先順位づけ方法などをご紹介いたします!

Spring AOPそのものの簡潔な説明はこちらのQiita([はじめてのSpring AOP](https://qiita.com/daisuzz/items/de937816a5d7c9210469))が詳しいので、まずAOPについてざっくり知りたい方はそちらをご参照いただいてから読むとスムーズです。

### 使用環境とバージョン
– macOS Catalina
– jdk13
– STS 4.6.1
– Spring Boot 2.3.0(spring-core5.2.6)

## Adviceの優先順位
Adviceの実行順には優先順位があります。[^1]

1. `@Around`
2. `@Before`
3. `@After`
4. `@AfterReturning`
5. `@AfterThrowing`

[^1]: Spring-core5.3系のドキュ

元記事を表示

チャットアプリを作った。

#はじめに
webアプリの練習としてチャットアプリを作ってみました。
#基本機能
– ログイン制のアプリ
– パスワードはハッシュ化してDBで管理
– セッションを使ったログイン管理機能
– アカウント作成機能
– メッセージ投稿機能
– 投稿内容をDBに保存
– XSS対策のエスケープ処理
– 画像投稿機能
– 画像をbyte配列に変換し保存し軽量化
– 入力チェック機能
– ログイン時
– アカウント作成時
– メッセージ投稿時
– メッセージ削除・編集機能(ユーザー視点から、DBに保存してある個人のメッセージを個別に削除・編集が可能)
– Bootstrapフレームワークを使ったアプリデザイン
– スマホに対応したレスポンシブデザイン

#開発環境
– 使用言語
– Java
– javascript
– html
– css
– データベース
– MySQL
– その他
– bootstrap

#画面
###ログイン画面
– PC用
![roguinngamen.png](

元記事を表示

OTHERカテゴリの最新記事