- 1. 説明
- 2. 選択ソート(コマンドライン引数)
- 2.1. 【SpringBoot】【Thmeleaf】An error happened during template parsingエラーの対処法
- 2.2. 今日気が付いたこと
- 2.3. Excelの計算式が反映されない問題
- 2.4. Spring BootでNo qualifying bean of typeが発生した場合
- 2.5. Spring boot 2.7 (Spring Security 5.7)のAuthenticationManagerの設定
- 2.6. 【初心者】ApacheSpark基礎編-SparkStreaming
- 2.7. オブジェクト(Generics・総称型)を使用して未知のクラスのメンバ変数を列挙する
- 2.8. Spring Security 5.7に対応したJPAベースのログイン認証とユーザ登録 (+バリデーションチェック)
- 2.9. Play Frameworkで作成したアプリケーションをIBM Cloud Code Engineにデプロイしてみる
- 2.10. 【備忘録】Spring bootのDockerイメージを作成し、Docker上で動かすまでの方法
- 2.11. GraphQL Java Kickstartを使用したWebシステムで認証トークンをCookieに格納する
- 2.12. JavaのSound sampledについて
Java で圧縮ファイル gzip (.gz) ,bzip2 (.bz2) を読み込む
以下サンプルでは,単純なテキストファイルを gzip,bzip2 で圧縮されたファイルを読み込むものとします.
gzip はJVM標準のライブラリだけで読み込み可能です.
java.util.zip.GZIPInputStream を利用します.“`java
package hello.compress;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.zip.GZIPInputStream;public class HelloGZipMain {
public static void main(String[] args) throws Exception {
File gzFile = new File
Javaでラブ注入してみた
# 発端
現在、部署に配属されてきた新入社員のトレーナーをしています。
開発未経験で、入社して初めてプログラミングを経験する方で現在絶賛Javaのキャッチアップ中。曰く、1on1で「Twitterでこんなツイートを見かけたのでやってみました」とのこと。
【問題】配列{"ドド","スコ"}からランダムに要素を標準出力し続け、『その並びが「ドドスコスコスコ」を3回繰り返したもの』に一致したときに「ラブ注入♡」と標準出力して終了するプログラムを作成せよ(配点:5点)
— ((?++)) (@Sheeeeepla) August 1, 2022
「そういうところから勉強の題材を自分で見つけてやってみる姿勢めっちゃ良いね!業務時間使っていいからこれからもどんどんやっていこう!」
と大絶賛したところで、~~先輩ぶってドヤ顔するため~~ 参考にしてもらうため解答例を書いてみました。# コード
その場でめっちゃ雑に書いて新入社員に見せたものから、あまりに細かい説明用のコメントを抜いたり軽く手直しはしています。
“`java:Dodosuko.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
Jenkinsのインストールとビルド実行(AmazonLinux2)
# はじめに
本記事はjenkinsのインストールと簡単なジョブの実行をまとめたものです。Jenkinsをさわってみることを目標に学習した備忘録になります。
下のサイトを可能な限り再現しています。https://www.buildinsider.net/enterprise/jenkins/001
### システム要件
|MW等|バージョン等|
|:—|:—|
|OS|AmazonLinux2|
|Jenkins|2.361|
|OpenJDK|11.0.13|# Jenkinsのインストール
コマンド上でJenkinsをインストールして、ブラウザからアクセスできるようにしていきます。
### コマンド操作
Jenkinsリポジトリを追加して、yumでインストールしていきます。
“`
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
# rpm –import https://pkg.jenkins.io/redhat/jenkins.io.
superとsuper()
# thisと差
thisは現在のクラスのメンバー変数を指し、superは相続クラスのメンバー変数を指す。現在のクラス: this.変数
相続クラス: super.変数# Overriding
overridingは親クラスを受け継いだメソッドを子クラスで再利用することだ
条件 : メソッド名, リターンタイプ ,パラメータの個数が同じでなければならない“`
public class index{
public static void main(String[] args){
Parent parent = new Parent();
parent.sum();Child child = new Child();
child.sum();
}
}public class parent{
int sum;
public int sum(int x, int y){
sum = x + y;return sum;
}
}public class
Javaと学ぶ関数型言語
# はじめに
関数型言語って何…?て人のためにJavaと比較をしたりしながら、どんなものなのかを知ってもらおうと思い本記事を書かせてもらいました。皆さんの学びの助けになれば幸いです。# 関数型言語とは
関数がそのままプログラムになる**宣言型言語**でλ計算を基礎としています。このλ(ラムダ)が言わずもがなJavaのラムダ式に繋がってきます。興味が湧いたら是非最後まで読んでいってください。
- 宣言型言語とは
- 手続きを明示的に記述せず、データ間の関係を定義することに重点をおき、アルゴリズムを記述する言語
# 手続き型と関数型の違い
- 手続き型
- 代表的な言語にC言語・Fortran・COBOLなどがあります。コンピュータに逐次的に実行させる動作を人間が命令でひとつひとつ丁寧に書いていかなければなりません。例えるならば、「水を飲む」という動作をさせたいとき、「右手をあげて、コップがある方向を向いて、右手を15cm前に進めて、右手の親指の第一関節を曲げて…」み
thisとthis()
* 生成者やメソッドの媒介変数とオブジェクト変数の名前が同じときに使用
* 同じクラス内の他の生成者を呼び出すときに使用
# this
メンバー変数に値を入れてあげたいときに使用
メンバー変数:メソッドや生成者ではなく、classにある変数
“`
public class student(){
int age; // メンバー変数
int score;
}
“`
変数名が同じときは近い変数を指す
“`
public student(int age, int score){
age = age;
score =score;
}
“`
媒介変数のage、scoreを指すためエラー発生
“`
public student(int age, int score){
this.age = age;
this.score =score;
}
“`
thisをつけるとメンバー変数を指す—
# this()
生成子、メソッドを指す
“`
public student(int age, int score){
age = ag
Java基礎 まとめ
基本知識
・ネスト
□{ } の中に { } を記述すること
・ブロック
![スクリーンショット 2022-08-02 13.42.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1061654/9cfe6909-76c1-4277-2026-33ee7d96a6e7.png)
・変数宣言
□変数を新しく作ること
型名 変数名 ;“`
int age;
“`
・初期化
□変数宣言と同時に値を代入すること
型名 変数名 = 初期データ;“`
int age = 20;
“`
・定数
可変長のソートアルゴリズム(コマンドライン引数・ArrayList)
説明
コマンドライン引数を使った可変長の選択ソート、ArrayListを使った可変長のソート(自然順序付け)を実際に書いて比較した。
選択ソート(コマンドライン引数)
“`java
//選択ソート
public class Sort {
public static void main(String[] args) {System.out.println(“並び替え前”);
for (int i = 0;i < args.length;i++) { System.out.print(args[i]+ " "); } System.out.println();//改行 //選択ソート開始 for (int i = 0; i < args.length - 1;i++) { for (int j =i + 1;j < args.length;j++) { if(
【SpringBoot】【Thmeleaf】An error happened during template parsingエラーの対処法
**00.事象**
コントローラー、htmlをいじっていると、下記のエラーメッセージが発生。
An error happened during template parsing …(※エラー全文は後半に記載)
メッセージ内容としては、signup.htmlが原因のようにみえるけれども、
何度見返しても原因の特定ができない・・・さて、どうしたものか・・・。**01.考え方**
解決ができず、はまってしまったのですが、何のことはないです。
エラーメッセージをよくよく見ること!見るべき箇所は、以下の部分。
“`
<ポイントその1>
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Aug 01 23:33:59 JST 2022
There was an unexpected error (type=Internal Server Error, status=500).
An error happened during template
今日気が付いたこと
Java Bronzeの資格取得に向けて、いわゆる黒本で勉強しています。
勉強中にいままで知らなかった点をメモしたくて記事を投稿していきます。
・ifのカッコ内がtrueの場合は、波カッコ{}の中の処理を実行する。
if(trueもしくはfalse){処理内容}
Excelの計算式が反映されない問題
# Excelの計算式が反映されない問題
Excelの出力処理を行なっていると、今までは反映されていた計算式が反映されないという問題が起きました。
しかし、セル上でエンターを押すと計算式が反映されます。(えっ)どうやら計算式が計算されない時があるみたいです。
## 解決法
出力を行う前に
“`
Workbook.setForceFormulaRecalculation(true);
“`
これをしてあげると、ファイルを開いた瞬間に再計算され、計算式が反映されます。## 終わりに
謎な現象だったのでハマるかと思いましたが、意外とすぐ解決することができました。
しかし一緒に開発していた方がハマっていたようで、解決法を聞かれたのでPOIでハマる部分なのかと思い投稿しました。
どうか役に立つと嬉しいです。
Spring BootでNo qualifying bean of typeが発生した場合
# 事象
普段、kotlinでSpring Bootを使って開発しています。
そこで、新しいクラスを作成してJUnitでテストをすると以下のエラーが発生しました。(エラー内容をメモしてなかったのでごく一部になります)
“`
No qualifying bean of type …
“`
どうやら、「BeanFactory(というSpringのDIコンテナとして中心的な役割を果たすクラス)が、定義が見つからないインスタンスの要求を受けた時にこの例外が投げられるらしいです。
参考:https://qiita.com/NagaokaKenichi/items/058a7243bd2948de7553# 原因
## その1:アノテーションがついてない
対象クラス(今回は新しく作成したクラス)にアノテーションがついてないため、エラーとなりました。以下のようなアノテーションを状況に応じて追加するとよさそうです。
`@Component`
`@Controller`
`@Service`
`@Repository`## その2:パッケージ構成
起点となるパッケージの管理下に対象
Spring boot 2.7 (Spring Security 5.7)のAuthenticationManagerの設定
# spring boot 2.7 記述方法
spring boot 2.6までは、WebSecurityConfigurerAdapterを使用していました。しかし、spring boot 2.7 (Spring Security 5.7)になってからは、WebSecurityConfigurerAdapterを使用していましたを使用が推奨されません。書き換え方法は、
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
に記述されています。
しかし、AuthenticationManagerの記述方法は、ドキュメントに記述されているが、ドキュメント通りに記述し直してもうまくいきませんでした。
いろいろしらべ、以下の記述方法で、うまく動いています。“`
@Configuration
public class SecurityConfiguration {@Bean
public AuthenticationManage
【初心者】ApacheSpark基礎編-SparkStreaming
前回はこちらです。
https://qiita.com/SHA_AKA/items/f57cbe11b208282103e3
基礎編の最後は、SparkStreamingについて実装しようと思います。
環境は前回と同じです# 目次
1. pom.xmlの更新とncatのダウンロード
1. stateless&stateful
1. 最初のコード(stateless)
1. window処理(stateful)
1. MySQLへの書き込み
1. その他### pom.xmlの更新とncatのダウンロード
pom.xmlに下記の依頼関係を追加
“`
org.apache.spark
spark-streaming_2.13
3.2.1
provided
“`ローカルportを監視して、データを取るため、ncatのダウンロードします。
オブジェクト(Generics・総称型)を使用して未知のクラスのメンバ変数を列挙する
# Generics・総称型を使用して未知のクラスのメンバ変数名とメンバ変数の中身を列挙します
“` java
public class Hoge {
public static void report(Object input_row) throws IllegalArgumentException, IllegalAccessException {
for(Field field: input_row.getClass().getFields()) {// publicメンバだけ
//for(Field field: input_row.getClass().getDeclaredFields()) { // 全てのメンバ
//field.setAccessible(true); // これが必要な場合もあるらしい
System.out.println(“###: ” + field.getName() + ” : ” + field.get(input_row));
}
}
}
“`## fie
Spring Security 5.7に対応したJPAベースのログイン認証とユーザ登録 (+バリデーションチェック)
# 目次
[1. はじめに](#1-はじめに)
[2. プロジェクトの作成と準備](#2-プロジェクトの作成と準備)
[3. ユーザ登録機能](#3-ユーザ登録機能)
[4. ログイン認証機能](#4-ログイン認証機能)
[5. まとめ](#5-まとめ)# 1. はじめに
Spring Secutiry 5.7でセキュリティ設定の記述方法が大幅に変わりましたが、5.7かつJPAをベースとしたログイン認証のサンプルが見当たらなかったので、紹介したいと思います。**※本記事の内容は、ある程度Springやデータベースの知識がある前提です。**
また、この記事を書くにあたって下記のサイトを参考にさせていただきました。
特に2つ目のサイトは、Spring初学者の方でも一からアプリケーションを作成できるような内容となっていますので、ぜひご覧ください。参考サイト1: [最新の5.7で学ぶ!初めてのひとのためのSpring Security](https://www.docswell.com/s/MasatoshiTada/KGVY9K-spring-security-int
Play Frameworkで作成したアプリケーションをIBM Cloud Code Engineにデプロイしてみる
# はじめに
前回の記事でIBM Cloud Code Engineにサンプルアプリケーションをデプロイしましたが、今回は自作のアプリケーションをデプロイしてみようと思います。アプリケーションはコンテナになっていればどんな言語やフレームワークを使ってもいいはずなので、今回は(あまりネット上にも情報がなさそうだった)Play Frameworkを使ったアプリケーションをデプロイしてみようと思います。# Play Frameworkとは
Play Frameworkとは、[公式サイト](https://www.playframework.com)によると> The High Velocity Web Framework For Java and Scala
とのことです。日本語だと *JavaとScalaを使った高速ウェブアプリケーションフレームワーク* といったところでしょうか。私はJavaの経験が長いので今回はこちらのフレームワークを選んでみます。
# Dockerを使った開発
Play Frameworkを動かすには[Javaはもちろんsbtが動く環境](https:
【備忘録】Spring bootのDockerイメージを作成し、Docker上で動かすまでの方法
# はじめに
Spring bootアプリケーションをコンテナ化したいと思ったときにやったことを備忘録として書き残しておきます。# 前提
– Spring bootアプリケーションは既に作ってあるものとする
– Dockerの基礎知識がある
– Docker hubのアカウントを作っている本題のみにフォーカスした記事にするため、このような形にしています。ご承知ください。(他の方の記事を参照ください)
# Spring bootのDockerイメージを作る
方法は2つあります。
1. Cloud Native Buildpacksを使う
2. Dockerfileを使う本記事では1つ目の方法を使います。
コマンドプロンプトを開いて以下の通り進めてください。
“`
cd [アプリ化したいプロジェクトのフォルダのパス]
mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=[docker hubのユーザ名]/[任意のimage名]:[tag]
“`
これだけで簡単にDockerイメージが作れてしまい
GraphQL Java Kickstartを使用したWebシステムで認証トークンをCookieに格納する
[Spring for GraphQL](https://spring.io/projects/spring-graphql)(名称がSrping GraphQLではないんですね。今気づいた。)も今年バージョン1.0がリリースされ、知らぬ間にNetflixから[DGS](https://netflix.github.io/dgs/)もリリースされてたり、Java界隈のGraphQLフレームワークもにぎやか(?)になってきました。自分はSpring Bootを中心にアプリケーション開発をしているので、将来的にはSpring for GraphQLが本命かなと思うのですが、現時点ではGraphQL Java Kickstartに一日の長がある認識です。
* 特にGraphQL Java Kickstartだと、schemaファイルとJavaの実装で相違があると、起動時にエラーを吐いてくれるのが助かります。
そのGraphQL Java Kickstartを使用してWebアプリケーションの認証ですが、最初はサーバ環境が潤沢な社内システムだったので、Keycloakで認証させました。フロン
JavaのSound sampledについて
# 概要
Javaでシンセサイザーを作ることを目標にします。
付ける機能は* キーボードとドレミファソラシドを紐づけて、ピアノのようにする
* 波形(サイン・のこぎり・矩形)
* エンベローブ(減衰)
* フィルタ(音色)
* モジュレーション(周期的な変調)
* リズムの定型を複数用意して繰り返し流す(ドラム)
* 和音・コード入力
* 録音+繰り返し
* ハイゲイン(ギター)
* リバーブ
* 波形・FFT表示
* 繰り返し等を使う場合、楽譜と現在位置の表示を目標にします。私自身、まったく音楽をやったことも詳しくもないので、そこも知っていきたいです。
シンセサイザーの機能の解説はこちら
https://kensukeinage.com/synth_structure/
JavaでPCM(パルス符号変調)で記述した音データを再生する方法は
http://k-hiura.cocolog-nifty.com/blog/2011/07/java-6e01.html
こちらを参考にしました。
http://muimi.com/j/game/sound/
はAPIの概略が