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

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

S3にファイルをアプロードして メタデータに content-disposition を設定する

## ゴール

– Webブラウザを使ってアップロードしたファイルをCloudFront経由でダウンロードする。
– ダウンロードしたファイルをブラウザで保存する時のダイアログには、S3のKeyとは別の任意のファイル名を指定できる。

![キャプチャ2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/145742/a9d6998f-d0e2-14cb-6324-9888b33181b5.png)

上の「iOS の画像 (1).jpg」を `content-disposition` で指定する。

## バージョン情報

– JDK: amazon-corretto-11.0.3.7.1-windows-x64
– Spring boot : 2.2.4.RELEASE
– AWS SDK for Java: 2.14.28

## はまりポイント

[PutObjectRequest.Builder#contentDisposition(string))](https://sdk.amazonaws.

元記事を表示

build.gradle変更後Gradle プロジェクトのリフレッシュが必要だった件

Spring Bootで@Sizeアノテーション(javax.validation)が使用できなかったので。
色々と調べた結果、build.gradleに依存性を注入すれば良いと書いてあり、試したが、インポートができなかった。そこで、プロジェクトを右クリックし、GraldeメニューからGradleプロジェクトのリフフレッシュを実行したら@Sizeアノテーションがインポートできました。

参考
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#validation-starter-no-longer-included-in-web-starters

元記事を表示

【Java・SpringBoot・Thymeleaf】ログイン・新規登録画面作成(SpringBootアプリケーション実践編1)

**ログインをして、ユーザー一覧を表示するアプリケーションを作成**し、
Springでの開発について勉強していきます?

#まずはコントローラーと画面を作成
* **ログインボタン**を押すと、何も処理をせずにログイン画面に戻る
* **新規登録はこちら**をクリックすると、ユーザー登録画面に遷移
* **ユーザー登録ボタン**を押すと、何も処理をせずにログイン画面に戻る

ような機能を先に作ります

##ログインコントローラー
* GETメソッド、POSTメソッドでHTTPリクエストが来たら、login.htmlに遷移する
* returnに指定するhtmlファイルは、`src/main/resources/templates`からの相対パス
* `src/main/resources/templates/login/login.html`を指定

“`LoginController.java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
im

元記事を表示

【Play Flamework】 Javaプロジェクトの作成

#はじめに
皆さんおはこんばにちは。
エンジニア歴1年目、現場未経験の弱小自称 Web エンジニアです。

研修で Spring Boot を使った開発をしたことはあるのですが
今回、チーム開発で初めて Play Flamework を扱うことになったので
その記録を残そうと思い、本記事の作成にいたった次第でございます。

##環境
・MacOS Catalina バージョン10.15.7
・sbt 1.3.13

#sbtのインストール
>sbtとはビルドツールの一つで、Gradleと同じ立場のツールと言えます。
>基本的にPlayFrameworkでは、sbtを使ってビルドや実行を行う事になります。

Gradle とか Maven とかあったな〜。
Spring Boot の研修のとき訳もわからず使ってたンゴ(未だによくわかってない)

“`terminal:ターミナル
$ brew install sbt
“`

MacOS が Mojave の人はこれだけで簡単にインストールできるみたい。
拙者は Catalina だったからか、`brew install gcc`と`x

元記事を表示

【Java】初心者でも分かる!Javaで世界のナベアツを実装してみた

#1.はじめに
皆さんはFizzBuzzという問題を聞いたことがあるでしょうか。
聞いたことがない方はQiitaにも記事がたくさんあるので見てみるといいでしょう。

僕はその問題を聞いたときにふと思ったのです。
「応用すれば世界のナベアツが作れそうだ」と。
![世界のナベアツ](https://anohitohaima.tokyo/wp-content/uploads/2017/10/57049_200808060612107001218027831c-300×236.jpg)

作成する前にネットでも調べたところ、僕の思った以上にナベアツプログラムが溢れていたため、ここでは差別化するために初心者にも分かりやすく、かつ面白い出力にできるようにしています。
よろしければどうぞご覧になっていってください

#2.仕様(書き方含む)
– 【必須】「3で割り切れる」か「3の付く数字」の場合アホになる。
– 【ナベアツ】出力は顔文字で行い、アホの時は1回ごとに表情を変えさせる
– 【ナベアツ】デフォルト出力は数字、アホ出力は文字列の数字で行う。
– 【初心者用】単純なif文、for文のみで作

元記事を表示

【Java】アノテーションの使い方

#プログラミング勉強日記
2020年11月23日
Javadocについて調べたときにアノテーションについて知ったので、まとめる。

#アノテーションとは
 アノテーションは注釈、注記といった意味を表す英語で、プログラミング用語でも注意書きを追加する機能になり余白に文字を追加する機能。アノテーションを理解できればJavaのコードがより見やすくなる。
 アノテーションはデータの有無、データの数によって3種類に分かれる。

– 名前だけでデータのないマーカー(@Override、@Deprecatedなど)
– データ1つ持つ単位アノテーション(@SuppressWarningsなど)
– 複数のデータを持つフルアノテーション

#よく使われるアノテーション

##`@Override`
 記述するメソッドが親クラスのメソッドをオーバーライドしていることを示す。親クラスにないメソッドをエラーにして、記述の間違いをなくすことができる。

##`@Deprecated`
 記述するメソッドの仕様が非推奨であることを示す。Javaのバージョンが新しくなっても、前の記述を残してきたいときなどに使う。

元記事を表示

ArchUnit使い方メモ

# ArchUnit とは
– Java プログラムのアーキテクチャをユニットテストするためのライブラリ
– パッケージやクラス、レイヤ間の依存関係をチェックしたり、循環参照をチェックしたりできる
– 読みは「あーきゆにっと」

# 環境
## Java
“`
>java -version
openjdk version “11.0.8” 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
“`

## OS
Windows 10 Home 64bit

## JUnit
“`gradle:build.gradle
dependencies {
testImplementation “org.junit.jupiter:junit-jupiter:5.7.0”

}
“`

# Hello World
## 実装
“`text:フォル

元記事を表示

【Java】メソッド(関数)

## 概要
この記事は私のJavaの学習なメモです。
Javaの メソッド、引数、戻り値に関して学んだ内容をアウトプットします。

# メソッド(関数)

## メソッド(関数)とは 
**「幾つかの 処理をまとめて入れておくもの」** です。
自分の場合、**「関数」** という呼び方のほうが馴染み深い気がしますが、** オブジェクト指向プログラミングで使う呼び方は「メソッド」らしいです。 **


たとえばゲームの開発をしているとして、「攻撃をする」という処理が記述されている メソッドがあったとします。
それを100ケ所で使う場合は、毎回同じコードを100回記述するのではなく、 メソッド を呼び出すだけで済みます。

「剣で攻撃をする」という処理を「魔法で攻撃をする」と修正する必要があったとしても
メソッド の処理を変えれば、100箇所に反映されます。
「一つの仕事は一つにまとめる」というのがプログラミングで大事な考え方で「DRY ( Don’t Repeat Yourself )の原則」という言葉があります。
同じことを繰り返さないことによって、メンテナンスがしやすくなったり、

元記事を表示

Javaを使ってヴィジュネル暗号をクリブアタック

こんにちは。Qiitaで初投稿です。
ヴィジュネル暗号の解読手法の1つであるクリブアタックに関して、解説しているWebサイトが見当たらなかったので、備忘録も兼ねて記事を書きます。
言語はJavaを使用しています。

#ヴィジュネル暗号とは
まず、ヴィシュネル暗号とは、ヴィジュネル方陣と呼ばれるアルファベットの表を使って暗号化をする暗号化方式です。

`ヴィジュネル方陣`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/901094/f4df97a4-15fb-ad5e-bc50-ac4a71a710c0.png)

暗号化する際は、縦が鍵、横が平文となります。
具体的にどのように暗号化すると言いますと、例えば平文が「IAMASTUDENT」、鍵が「INFO」であるならば、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/901094/6f7d3bfb-16e0-4c21-89df-e2b

元記事を表示

【Spring Boot】ポートが使用されてたときの対応

最近Spring Bootを使用して開発をしているのですが、基礎的な部分が抜け落ちているので、参考書を見ながら進めています。

そんな中で、アプリケーションを起動した際にエラーが起きたので、その時の対応をメモしておきます。

##エラー内容

“`
Web server failed to start. Port 8080 was already in use.
“`
![スクリーンショット 2020-11-21 11.46.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/756649/738638a7-631b-059c-dd25-82571a521fb3.png)

## 対応方法
使用しているポート番号のPIDを検索

“`
$ lsof -i:[ポート番号]
“`

稼働しているポートを止める

“`
$ kill [PIDの番号]
“`
再度ポート番号の使用状況を確認

“`
$ lsof -i:[ポート番号] 
“`
何も表示されなければ、成功です。
この後は再度Spr

元記事を表示

【Java】変更に強いコード追加編 – Validation 機能

#もっと!変更に強いコードを目指す
* 前回の
[【Java】変更に強いコード実践編 – 値オブジェクト2(Value Object)](https://qiita.com/suema0331/items/4ea28b7dde8d736c0c2e)
では、
**Valueオブジェクトを使ってタイポがない、凡ミスがないコードにしよう**o(^^)o
* ということで、建物の緯度経度を表すBuildeingクラスを作りました
* Valueオブジェクトで型を指定することで、Buildingに渡す引数の順番間違え(Latitude、Longitudeの順番)を防止できました?

##Validation機能追加
* さらに堅牢なコードを目指し、LatitudeにLongitudeの値(139.761102f)を入れてしまうことを防ぎたい。。。
* 値オブジェクトの初期化時に間違った実値を渡してしまう事を抑止するのは**Validation機能**で行うことができます

“`java
new Latitude(139.761102f),
new Longitude(35.663114

元記事を表示

minecraft1.7.10左右を入れ替えたときに別のアイテムを出すクラフトレシピを登録したい

# 環境

minecraft 1.7.10

多分他のバージョンでも同じ。~~それこそ1.2.5とかでも~~

# 背景

例えばしたの2つの例を見てほしい。このように左右逆に並べた時に別々のアイテムを作るレシピを登録したいとする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94177/b9f8e37a-8d67-9374-064e-d863b59abc2c.png) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94177/add56b2e-291c-a432-dd6c-21d3a08b3d4e.png)

何も考えずに
[1.7のレシピ追加 – Minecraft Modding Wiki](https://mcmodding.jp/modding/index.php/1.7%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94%E8%BF%BD%E5%8A%

元記事を表示

Java SE の基礎を IT 講師ががんばって親切に解説する連載の目次

皆さんはじめまして。ひろきです。ふだんは SIer 向けの新人研修講師をしたり、教材開発をしたり、ときどき開発をしたり講師育成をしたりしています。

このたび Qiita で、Java SE 基礎の解説を連載形式で掲載します。ぜひご活用ください!!!

# ひとことで

**最短路を、一歩ずつ進む** ことを目標に作った、 Java SE 基礎の無料オンライン教材です。

# 想定している利用者&利用シーン

この連載は、学習の副教材として使われることを念頭に作っています。具体的な連載の対象者&利用シーンは、以下の2者です。

| 対象者 | 利用シーン |
|—-|—-|
| Java初学者 | 〇〇で Java を学び始めたもののなかなかしっくりこなくて悩んでいる |
| 担当者(講師・メンター)| 質問対応等で紹介できる、解説の厚いサイトを探している |

※ 著作権は放棄していませんので、ご注意願います。

# ゴール・ゴールじゃないこと

この連載では **最短路を、一歩ずつ進む** ことを念頭に学習を進めます。学習した結果、何を目指し、何は目指さないのかを明確にして

元記事を表示

JShell でプログラミングへの第一歩を始めよう!(JShell, REPL)

[(この記事は連載の一部です)](https://qiita.com/HrkPPOI/items/98707436c5bfea3c74e2)

この項目では、何がなんだか分からなりに、ひとまず **Java プログラムを実行** してみます。

これから私たちは Java プログラムを書いては動かし、書いては動かしして学んでいきます。
ゆくゆくは何千行何万行という巨大なプログラムを書くことになり、そのころには「プログラムとはこういうもの」というおおよそのイメージが付いているでしょう。

しかし学び始めたいまの時点では、「そもそもプログラムを動かすってなんやねん」という状態かと思います。そこでまずは、いくつか例を挙げながら「プログラムを動かすってなんやねん」に答えたいと思います。そして、もっとも簡単な方法として **JShell** でのプログラム実行をやってみます。

# はじめに

– 必要な前提知識
– キーボード入力
– ブラウザ操作
– これを読んで分かること
– プログラムとは何か?
– コンピュータ・プログラムとは何か?
– Java とは何か?

元記事を表示

【Java】ファイルを削除する(Fileクラスのdeleteメソッドで消えないときの解決策)

#プログラミング勉強日記
2020年11月21日
Javaでコードを書いているときに、ファイルの削除がうまくできなかったのでその解決策とFileクラスのdeleteメソッドの使い方をまとめる。

#deleteメソッドの使い方
 Fileクラスのdeleteメソッドは指定したファイルを削除うすることができ、Boolean型の値を返す。※一度実行すると取り消しができないので注意する。
 Fileクラスを使用するためには`java.io.File`をインポートする。

“`java:ファイルの削除
import java.io.File;
import java.io.IOException;

public class Main {
public static void main(String[] args) {
File file = new File(“text.txt”);

// deleteメソッドを使用してファイルを削除
file.delete();
}

}
`

元記事を表示

ブルジョワが考えたドメイン駆動設計をソ連が考案した作戦術で☆粉砕☆

今回の記事では、以下の記事に掲載されている**5層アーキテクチャモデル**を下地として、ソ連が考案した作戦術の概念を再現できるアーキテクチャモデルを目的としています。

記事タイトル:ドメイン駆動設計における5層アーキテクチャの全体図とソースの実装例
記事URL:https://qiita.com/aLtrh3IpQEnXKN7/items/33b0a748dec34a301b37

#作戦術
##作戦術とは
ソ連軍人スヴェーチンが提唱した概念です。
ロシアの広大な領土で軍隊を効率的に運用する術です。
作戦術は、時間、空間、手段、目的という4つの重要な要素で構成されています。
作戦術は、抽象的な戦略的ゴールを、作戦次元で目的別に分類し、戦術的次元で具体的な手段を定義します。

##作戦術の思考スタイル
**1.基礎となるドメインの洗い出し
2.ドメインを使用する戦術の考案
3.戦術の体系化
4.戦術を使用するユニットの編成
5.戦術を使用する空間の特定
6.戦術を組み合わせて作戦を実行し、中間ゴールとなる目的を達成
7.目的を組み合わせて最終的なゴールである目標を達成**

##なぜ作

元記事を表示

Doma入門 – ログライブラリにSLF4Jを使う

## はじめに

DomaはJavaの標準ライブラリ以外に依存しないことをコンセプトに謳っているので、デフォルトのログライブラリとしてJUL(java.util.logging)を使っています。ただ残念なことにJULは使いにくいということでとても不人気ですね。

この記事では、ログライブラリをJULから[SLF4J](http://www.slf4j.org/)に切り替える方法を説明します。

Domaのバージョンは現時点で最新の2.44.3を想定して説明します。
Domaの他の機能については、[Doma入門](https://qiita.com/nakamura-to/items/deaff05ba530317f3cf8)もお読みください。

## Domaのログの仕組み

Domaの実行時のログ出力は、`org.seasar.doma.jdbc.JdbcLogger`インタフェースを介して行われます。

doma-core.jarには、`org.seasar.doma.jdbc.UtilLoggingJdbcLogger`というJULを利用する実装クラスが含まれており、Domaを単

元記事を表示

【Java】コンストラクタ・getter・setter

# コンストラクタ
この記事は私のJavaの学習なメモです。
Javaのコンストラクタ、getter、setterについて学んだ内容を書いています。

## コンストラクタとは
コンストラクタ は、**インスタンスを生成するタイミングで呼び出される、 特別なメソッドです。**
普通のメソッドとそっくりですが、名前には「クラス名と同じ名前」をつかい、戻り地がないので戻り地の型を指定しないところが違います。

コンストラクタは **引数 を持ことができ**、呼び出されたコンストラクタ内では、**それを用いた処理など**さまざまなことを行うことができます。

通常はコンストラクタ内で、**フィールド変数などに 初期化処理 を記述** することが多いです。

また、**クラスを使用する際に 習慣化したい処理がある場合** などにも利用します。

### 使用例

#### 引数なしの場合

“`java
//ConstructorPractice.java(引数なし)
public class ConstructorPractice {
String str = “引数なしの場合

元記事を表示

【Java】Javaで作れるもの

#プログラミング勉強日記
2020年11月20日
最近はずっとJavaを勉強しているが、Javaで作れるものを調べてみた。

#Javaの特徴

– プラットフォームに依存しない
– 開発効率と保守性が高い
– ライブラリが充実している

 Javaは動く環境を気にしない言語で、Javaでコードを書けばJVM(Java Virtual Machine:Java仮想マシン)が入っていればWindowsでもLinuxでもMac上でも動く。また、動作が早く、動作速度が要求されるような場合でも用いられる。

#Javaで作れるもの
 Javaは「なんでもできる」言語であり、TwitterやEvemoteといったWebサービスはもちろん、三菱UFJ銀行でも採用されるような大規模金融システム、Androidアプリといった幅広くいろいろなものを作れる。具体的に紹介する。

##1. Webサービス
 Javaはインターネットと相性が良く、私たちの想像できるWebサービスは大体Javaを使えば作れる。TwitterはJavaを利用している。(以前はRubyを使っていたが、動作が早いということでJava

元記事を表示

【Java】this について

# this
Java(というよりプログラミングにおいて)の **this** について学んだことのアウトプットです。

## thisとは

**「this」** とはクラスの中(メソッド内)でインスタンスを扱うための特殊な変数です。

## なぜ、thisをつかうのか
結論からいうと理由は

– **「ローカル変数とフィールド変数を明確に区別するため」**。

**ローカル変数とフィールド変数は別々のものなので、同じ名前でも作ることが可能**なため、同じ名前で使われたときに**どっちなのかわからなくなってしまいます。**そのために、
**「フィールド変数にはthisをつける」** という書き方がよく使われます。

## どこに、 thisをつかうのか
上にも書きましたが、使う場所は

– **フィールド変数名の頭です「例:this.フィールド名」**。

また、this は **クラス内のメソッドの定義の中でのみ使用できます。**
thisはメソッドが呼ばれた時に、そのメソッドを呼び出しているインスタンスに置き換えられます。

## thisを使ってみる
ポケモン図鑑をプログラム

元記事を表示

OTHERカテゴリの最新記事