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

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

初心者の僕がSpringBoot の学習を始める時にわかりやすかったサイト

最近SpringBootの勉強を始めました。
学習始めの時は、*何で勉強する*というところで時間を使うので、他の方がそうならないように、始めるならこれでやって欲しいと僕が思うものを紹介します。(コロナで図書館が使えなかったのでネットです)

**僕の始めた時の状態**

・スッキリわかるJava入門
・スッキリわかるJava入門実践編
でJavaの基礎をある程度おさえた

YouTube(UZUZ就活チャンネル)にあった
プログラミング講座のデータベース編以降を2倍速で流し見してイメージを掴んだ
[https://www.youtube.com/playlist?list=PLXXalsdlzX-JPOXLaE4e-L3FgFDw_Y71M]

めっちゃ初心者です…

そんな初心者から見て
*わかりやすかった!*
*参考になった!*
*始めるならこれでやって欲しい!*
というサイトを紹介します。

#####1つ目
[https://qiita.com/suke_masa/items/9dd3300c3190d6445ff8]

SpringFrameworkの勉強会の記事です。
この

元記事を表示

Gradle における api, implementation, compileOnly の モジュール依存関係 の 違い

# Gradle dependencies の話
表でざっくりと説明

## このような依存関係があったとして、

“`
app
|-> api project(“:module-a”)
| |-> api project(“:module-a-a”)
| |-> implementation project(“:module-a-i”)
| |-> compileOnly project(“:module-a-c”)
|-> implementation project(“:module-i”)
|-> api project(“:module-i-a”)
|-> implementation project(“:module-i-i”)
|-> compileOnly project(“:module-i-c”)

“`

### appモジュールからの実行と可視性はこのようになる。

| モジュール | 実行[^1] | 直接参照できるか[^2] |
|—|—|—|
| module-a

元記事を表示

【java】java入門

#####javaとQiita初めて使ってみました
#【java】java入門
#####「順次進行」「条件分岐」「繰り返し」

##実行
“`java:Hello.java
class Hello {
public static void main(String[] args){
System.out.println(“Hello”);
}
}
“`
“`:出力
Hello
““

##変数
“`java:Variable.java
class variable {
public static void main(String[] arg){
int var = 1;
System.out.println(var);
}
}
“`
“`:出力
1
““

##データ型
“`java:Deta.java
class deta{
public static void main(String[]args){
int deta01 = 10;

元記事を表示

SPRING BOOT 学習記録02

![SPRINGBOOT.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598207/f3bb3381-89a4-53ac-b7bd-0e17853b2795.jpeg)

#Dependency Injection
依存性の注入
インスタンスの管理
![DI.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598207/d44b9ef9-7386-140e-3d28-d6dbdbce46a8.jpeg)

##依存性

元記事を表示

Hibernate_CRUD

# 設定など
## データベース作成
Mysqlにて適宜DBを作成してください

## テーブル作成
“`
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`first_name` varchar(45) NOT NULL,
`last_name` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
“`
# 接続情報を指定
“`demo\src\main\resources\hibernate.cfg.xml

元記事を表示

画面

# ヘッダ、フッタなどの共通化

common.htmlなど共通部品用のHTMLファイルを用意します。

“`demo\src\main\resources\templates\common.html

ヘッダー


“`
画面固有のHTMLでcommon.htmlで定義したHTMLを読み込むように指定します。

“`demo\src\main\resources\templates\templateTest\index.html


“`

# 解説
index.htmlの
“`

元記事を表示

ルーティング

# ルーティング

コントローラ、メソッドそれぞれに
“`@RequestMapping“`
を付与することでルーティングを設定できます。
コントローラの@RequestMappingに「routing」、
メソッドの@RequestMappingに「index」を指定した場合、
URLは「http://localhost:8080/routing/index」となります。
HTTPメソッドによりメソッドを分ける場合は「method = RequestMethod.GET」の要領で指定することができます。

# URL中のクエリストリング取得
メソッドに
“`@RequestParam Integer id“`
の要領で指定することができます。

# POST値の取得
メソッドに
“`@ModelAttribute IndexForm form“`
の要領で指定することができます。
なお、POST値を保持するクラスにSetterがない場合は値が設定されないのでご注意ください。

# サンプルプログラム(ルーティング、GET、POST値取得)
“`demo\src\main

元記事を表示

【Spring】環境構築

# IDE 準備
https://mergedoc.osdn.jp/ からJavaの「Full Edition」をダウンロードする。
その後、適切な場所に解凍し起動する。

# プロジェクト作成
「ファイル → 新規 → その他」 を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33640/f20b702d-715e-36ec-35f4-3f2f69fdb32b.png)

「Spring スタータープロジェクト」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33640/79d659d7-fed5-7fe2-817a-b8029854965b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33640/e5c67b87-3049-8a8f-7060-0740bac0

元記事を表示

SPRING BOOT 学習記録01

![SPRINGBOOT.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598207/b8cf24e7-6ee0-6e7a-18a6-42cf31fecb99.jpeg)

#Spring
Java開発におけるフレームワーク。
変更に強い。
コードの可読性が高い。
再利用性が高い。

##DI
Dependency Injection
インスタンス管理

##AOP
Aspect Oriented Programing
共通処理のまとめ

##ライブラリ

###DevTools
自動でWEBアプリケーションを再起動

###Lombok
Lombokの使用

###H2
テスト環境DB

###JDBC
データベースアクセス

###Thymeleaf
HTMLテンプレートエンジン

###Web
SpringMVC Spring Bootの使用

#MVCモデル

![MVC.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

Spring BootのActuatorを使ってバックエンドサービスのサーキットブレーカーを作ってみる(前編)

# 前提条件
システム開発をしていると、「バックエンドサービスが故障してエラーを返し始めたとしてもなんか良い感じに動作してシステム全体が不安定にならないようにしてね」とか無茶振りされること、あるよね?

そんな時に自前で動作を考えるのが面倒なので、Spring Bootの機能を使い倒してサーキットブレーカーにできるのではないかと実験してみた。

最終的に、AWS上で良い感じに動くようにしてみたいが、前半は実装方法まで。

# Spring Bootの準備
とりあえず、Webアプリとして最小限で動いてくれてば良いので、テンプレートから空っぽのスタータープロジェクトを作成する。

pom.xmlには、デフォルト以外に以下の依存関係を設定しておこう。

“`XML:pom.xml

……

org.springframework.boot
spring-boot-starter-web

元記事を表示

EclipseでSpringBoot HelloWorld

# 参考

Springの公式ページの「Spring Quickstart Guide」を参考にやってみた。
https://spring.io/quickstart

# 環境

* [Eclipse 2020 Windows 64bit](https://mergedoc.osdn.jp/)
* [Spring Boot](https://spring.io/)

# Springのプロジェクトを作成

公式の[プロジェクト生成ページ](https://start.spring.io/)で好みに合わせてジェネレート。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/78129bcb-ccbf-bca7-8ede-dd69fe541bcc.png)

* Gradle
* Mavenのpomファイルは性に合わないのでビルドシステムはGradleを選択
* Java 8
* Kotlinも気になるけどJava
* Versionはデフォルト設定
* Spring

元記事を表示

Spring Boot + MyBatis データベース設定ないとこんなエラー出る

“`
Description:

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
“`

Spring Bootだけなら動いたのにdependenciesにmybatis入れると起動時にエラーが出

元記事を表示

共通処理とエラー処理springmvc

““

共通処理とエラー処理

参考 URL
https://www.techscore.com/tech/Java/JavaEE/Servlet/6/

説明 implements Filterをインプリメントすると、共通処理を作れる

後、完全に終了したとき。完全に終了したとき。
@Override
public void destroy() {
System.out.println(“destroy”);
}

一番最初 ロードしたとき
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println(“init”);
}

★コントローラーが呼び出される時毎回

//URL直打ちか
/* if(req.getHeader(“referer”) == null&&!req.getRequestURI().equals(“/OfficeSystem_Hibernate/Login”)){

元記事を表示

Firebase 認証メモ

# サーバサイド
## 初期化
[ガイド](https://firebase.google.com/docs/admin/setup?hl=ja#java_2)

“`java
FileInputStream refreshToken = new FileInputStream(“path/to/refreshToken.json”);

FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(refreshToken))
.setDatabaseUrl(“https://.firebaseio.com/”)
.build();

FirebaseApp.initializeApp(options);
“`
### トークンの入手方法
firebaseのconsoleのセッティング画面>サービスアカウントより「新しい秘密鍵の生成」

## 利用
[ガイド](https://fir

元記事を表示

【10分で理解する】三項演算子

# 目標
– 三項演算子を理解する

# 読んで欲しい人
– プログラミングを始めた人
– プログラミング資格試験勉強中の人

Javaを用いた説明をしますが、ある程度の言語に通じると思います。
# 三項演算子とは
**ソースコードで出てくる「?:」のこと**

こんな感じで使われます

“`Java:Main.java
public class Main {
public static void main(String[] args) {
int number = 100;

// ↓この「?」と「:」が三項演算子
String text = number == 100 ? “百です” : “百じゃない”;

System.out.println(text);
}
}

// ↓出力結果
// 百です
“`

# コードの説明
“`Java
int number = 100;
“`
ここではnumberというint型の変数に100を代入しています。

元記事を表示

【Android】QRコード機能ライブラリのZXingを導入する際につまずいた話

#ZXingを使ってQRコードを読み取る
今回は、AndroidStudioでライブラリを導入する際につまづいた話をしていきます。
実装したかったのは上の見出し通りです。
ちなみに自分はまずAndroidStudioをインストールすることから始めた超初心者なんであったかい目でお願いします…。
今回導入するライブラリはかなり有名なライブラリ**zxing**っていうやつです。
Androidアプリ開発でQRコードの機能を追加するぞってなった時は結構な確率でこのライブラリを使用するのではないか、レベルのやつ。
実際に導入手順を説明しながら自分がつまづいた所を説明していきます。
取りあえず自分の環境を公開!

##環境
AndroidStudioversion : 3.6.2
MinSDK : 26
buildtoolversion : 29.0.3
compileversion : 29
language : Koltin

##実装
状態としては新しくプロジェクトを作成して何も触っていない状態から始めます。
こっちの方がわかりやすいし、いかんせんイラン設定してそのせいでエラーとか嫌で

元記事を表示

JavaでExcelファイル各シートのA1セルを活性化

■起因

 色々な開発現場で、よくあることは成果物作成時にExcelファイルを最初開く際にシートのA1セルになっていることです。手動でやると手間かかり、ファイル本数が多いほどA1セルにすることの漏れも多いと思います。
 ApacheのPOIを利用して指定フォルダ下の全ファイル、もしくは指定ファイルの各シートのA1セルに設定すれば便利かなと思いますので、簡単なプログラムを作りました。
(A1CELL_ROWとA1CELL_COLを修正すれば任意セルに設定可能)

■環境
 OS:Windows
 JREバージョン:1.8
 POIバージョン:4.1.2

■ソースコード
package xxx.xxxxx.xxxx;//自分に好きに変更

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.fi

元記事を表示

JavaとjavascriptでWebSocketを試してみよう!

#Javaとjavascriptを使用します(jQuery使用)
1.Javaでサーバーサイドを記述します。
内容の説明はコード内のコメントを読んでいただくと、だいたい分かるかと思います。

“`java:WebSocketServer.java
package main.java;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.websocket.CloseReason;
import javax.websocket.EndpointConfig;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoi

元記事を表示

Javaのテストにおけるモダンなベストプラクティス

本記事は[Modern Best Practices for Testing in Java](https://phauer.com/2019/modern-best-practices-testing-java/) の日本語訳です。元記事の著者から許可を得て翻訳、公開しています。
翻訳は不慣れなので変なところもあると思いますが、ご容赦ください。


メンテナンスしやすくて読みやすいテストコードは良いテストカバレッジを確立するために重要で、それにより何かを壊すことを恐れずに新機能の実装やリファクタリングが可能になります。この記事には、私がJavaでユニットテストや統合テストを長年に渡って書いて得られた多くのベストプラクティスが含まれています。それにはJUnit5やAssertJ、Testcontainers、Kotlinといったモダンな技術も含みます。中には当たり前と思われるようなこともあるかもしれませんし、あなたがソフトウェア開発やテストについての本で読んだことと相容れないこともあるかもしれません。

# TL;DR
* ヘルパー関数やパラメータ化テスト、AssertJの強力な

元記事を表示

Forge Modding 1.12.2 Part1 -Baseクラス

#Forge Modding Part1
(Forge Projectのセットアップの説明は他を当たってください)

##Object
Objectパッケージを作り、その中に

・ItemBase.java
・BlockBase.java

を作成。
その中に、Implmentsパッケージを作成。
そこに、
・IHasModel.javaを作成。

### ItemBase
“`Java
String name;
public BlockBase(String name, Material material, CreativeTabs tabs,float blockHardness) {
super(material);
setTranslationKey(name);
setRegistryName(Refarence.MOD_ID,name);
setCreativeTab(tabs);
setHardness(blockHardness);
setResistance(1.

元記事を表示

OTHERカテゴリの最新記事