- 1. Javaを使用してPDFでテキストの回転と傾きを設定する
- 2. 【OOP】04_継承
- 3. MyBatisGeneratorのMapper自動生成機能をカスタマイズして見た
- 4. Wekaを使おう-数値データの推測
- 5. MouseController
- 6. KotlinでviewBindingを使う
- 7. プロジェクト間共通ライブラリを GitLab Package Registry に登録して使う
- 8. Spring Boot と Scalar DB を用いた API の作り方③
- 9. Spring Boot と Scalar DB を用いた API の作り方①
- 10. Spring Boot と Scalar DB を用いた API の作り方②
- 11. 【UiPath】OrchestratorのAPIを使ってみる④~トリガーを取得してみる~
- 12. Excelから単体テストデータを投入する(SpringBoot + SQLServer + DBUnit)
- 13. 【OOP】03_カプセル化
- 14. GraalVM(native-maven-plugin)で「JEP 290: Java Serialization Filtering」の仕組みを利用する
- 15. Java標準機能でHttpClient
- 16. AtCoder Beginner Contest 235をやった(Java)
- 17. 【Spring Boot】GET・POSTの実装
- 18. Java Silver SE11 4章
- 19. 【OOP】02_メンバー変数・メソッド・コンストラクター
- 20. Webで使えるJavaのUIフレームワークのVaadinをさわってみた
Javaを使用してPDFでテキストの回転と傾きを設定する
##背景
この記事では、Javaプログラムを使用してPDFドキュメントのテキストの回転と傾きを設定する方法を紹介します。テキストの傾きを設定するときは、メソッドTransformText(page);を定義し、page.getCanvas().skewTransform(float angleX、float angleY);を設定して、テキストの傾きを実現します。テキストの回転を設定するときは、メソッドRotateText(page)を定義します。 ;そしてpage.getCanvas()。rotateTransform(float angle);を設定して、テキストの回転を実現します。詳細なコードについて以下の内容をご参照ください。注:PDFクラスライブラリツール**[Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java.html)**を使用する必要があります。jarパッケージをダウンロードするか、libフォルダー内のjarファイルを解凍してjavaプログラムにインポートするか、mavenリポジトリ
【OOP】04_継承
こんにちは、コイキングです。
本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、
継承について、説明したいと思います。******
# 1. 継承とは?
**親クラスのメンバー変数とメソッド**を子クラスから**継承して使えること**を言います。※ extendsキーワードを用いて継承する親クラスを定義し、継承かんけいを設定する事ができます。
public class 子クラス extends 親クラス {
}
※ 例示コード
“`java:Animal.java
public class Animal {
protected String name;
protected int age;public Animal() {}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}public void printName() {
System.out.prin
MyBatisGeneratorのMapper自動生成機能をカスタマイズして見た
MyBatisでSpringプロジェクトの環境構築をして、MyBatisGeneratorのDto,Dao,Mapperの自動生成機能を使って見たが、いくつ改善したいところがあります。
・Springのアノテーションを自動追加したい
・Lombokを対応したい
・DtoとDaoのファイル名を馴染みなXXXDto.javaとXXXDao.javaに改修したい
以上の課題を解決するため、MyBatisGeneratorのPluginAdapterによって自動生成機能をカスタマイズして見ました。##環境構成
・eclipse
・Java
・MyBatis-Spring
・MyBatisGenerator
・Spring-boot
・Lombok
・Maven##依頼注入一覧
“`pom.xml
Wekaを使おう-数値データの推測
# Javaで機械学習したくない?
機械学習といえばPythonって風潮ですが、Javaが得意な人は、今更Python学ぶのかなという気持ちになるでしょう。できれば、得意なJavaで機械学習できたら嬉しいですね。自分が開発したソフトに組み込めるし。
そんなことで、機械学習エンジンのWekaのAPIで色々と試してみようということで書き始めたいと思います。(間違いがあったらご指摘お願いします)
まずは、数値データの推測からはじめます。
こちらの書籍(機械学習コレクション Weka入門) https://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-Weka%E5%85%A5%E9%96%80-I%E3%83%BB-BOOKS-%E5%92%8C%E7%94%B0/dp/4777520889 に出ているサンプルをAPIを使ってやってみることにしましょう。
CSVデータは以下の通り。末尾から2行目の売上が「?」となっ
MouseController
“`java
package org.tei;import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;import javax.swing.JButton;
import javax.swing.JFrame;public class MouseController implements Runnable {
private Robot robot;
private boolean isStop = false;public MouseController() {
try {
ControllerFrame fr
KotlinでviewBindingを使う
## ブロジェクト作成
赤のMainActivityを開きSplitで開くと、コードとデザインを同時に確認できます。
水色が`texttView`のコードとエディタです。
![スクリーンショット 2022-01-17 16.48.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/9abe33b5-9bb7-281c-fd0d-fa209cba6ad8.png)## ボタン追加
ボタンを追加すると、コードとデザイン両方追加されます。
![スクリーンショット 2022-01-17 17.05.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/c56b9b9c-4324-34bb-abad-889b3d0051b3.png)## 背景色も変更してみる
赤枠のbackgroundをいじれば変更できました。
![スクリーンショット 2022-01-17 17.08.42.png](https
プロジェクト間共通ライブラリを GitLab Package Registry に登録して使う
そこそこ以上の規模のプロジェクトを作る際、どうしても複数プロジェクト間で共有する共通ライブラリ(`*.jar`など)を作りたいことがあると思うのですが、GitLabには [GitLab Package Registry](https://docs.gitlab.com/ee/user/packages/package_registry/) という **共通ライブラリをGitLabに登録できる便利な機能** があります。
通常であれば、 [Sonatype Nexus](https://www.sonatype.com/products/repository-oss) や [JFrog](https://jfrog.com/ja/) といったアーティファクトマネージャを別個で立てなければならないのですが、これを使えばGitLab一つで済むので非常に楽です。
従来は有料版のみの機能だったのですが、なんと 13.3 から全エディションで利用可能になっています。
そういうことで、実際に仕事で使ってみたのですが、ややドキュメントが分かりづらかったので、概要を適当にまとめておきます。
#
Spring Boot と Scalar DB を用いた API の作り方③
こちらの記事は[Spring Boot と Scalar DB を用いた API の作り方②](https://qiita.com/yoshi-kinoshita/private/44363a4aeacf83efcff3)の続きになります。
前回までの記事をご覧になってない方は先にそちらに目を通すようにお願いします。
– [Spring BootとScalar DBを用いたAPIの作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)
– [Spring BootとScalar DBを用いたAPIの作り方②](https://qiita.com/yoshi-kinoshita/items/44363a4aeacf83efcff3)
– Spring BootとScalar DBを用いたAPIの作り方③(本記事)# 目次
1. [Spring Securityによるアクセス制限](#spring-securityによるアクセス制限)
1. [実装方針](#実装方針)
1. [実装方法]
Spring Boot と Scalar DB を用いた API の作り方①
# TL;DR
[株式会社Scalar](https://scalar-labs.com/)が開発している分散トランザクションマネージャScalar DBを使ってトランザクション処理を行うAPIを作りました。その中で学んだScalar DBの特徴やScalar DBを使ったAPIの開発手法について説明していこうと思います。
長くなりますので3回に分けて投稿します。
– Spring BootとScalar DBを用いたAPIの作り方①(本記事)
– [Spring BootとScalar DBを用いたAPIの作り方②](https://qiita.com/yoshi-kinoshita/items/44363a4aeacf83efcff3)
– [Spring BootとScalar DBを用いたAPIの作り方③](https://qiita.com/yoshi-kinoshita/items/1cb6c0b11be5ab087ed6)完成したプロジェクトは[GitHub](https://github.com/yoshi-kino/sample-api-using-sca
Spring Boot と Scalar DB を用いた API の作り方②
この記事は[Spring Boot と Scalar DB を用いた API の作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)の続きになります。
– [Spring BootとScalar DBを用いたAPIの作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)
– Spring BootとScalar DBを用いたAPIの作り方②(本記事)
– [Spring BootとScalar DBを用いたAPIの作り方③](https://qiita.com/yoshi-kinoshita/items/1cb6c0b11be5ab087ed6)# 目次
1. [モデル・DTOの作成](#モデル・DTOの作成)
1. [モデル](#モデル)
1. [DTO](#dto)
1. [リポジトリクラスの作成](#リポジトリクラスの作成)
1. [Scalar DBを使ったCRUD処理の実装](#scal
【UiPath】OrchestratorのAPIを使ってみる④~トリガーを取得してみる~
# はじめに
[前回](https://qiita.com/yoshiyuki-iwata/items/eb839db0cde4ff8c4102)、JavaでUiPathの認証APIを叩いてみました。
今回はトリガーの一覧を取得するAPIの使い方を解説します。# トリガーを取得するAPI
トリガーの取得は `[GET] /odata/ProcessSchedules` を実行することで取得できます。
しかし、APIのマニュアルを見ると、`X-UIPATH-OrganizationUnitId`なるものを指定する必要があるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517338/b1c9b49b-b401-d3ca-afee-4fe65f8befa5.png)## X-UIPATH-OrganizationUnitIdってなに?
すごく簡単に説明すると、「テナントとかフォルダーとかに、一意にふられている番号」です。
今回は、モダンフォルダーで構成されているフォ
Excelから単体テストデータを投入する(SpringBoot + SQLServer + DBUnit)
## 初めに
単体テスト時のテストデータの生成・管理って、結構めんどくさいですよね。
そこで今回は、「テストデータをExcelで予め用意しておいて、テストメソッド実行時にDB登録する」ことでテストの効率化を図る仕組みを作ってみます。既存の記事(例えば[こんなの](https://tanaka653.hatenadiary.jp/entry/2021/03/14/111033))だと、テストメソッド内で明示的にテストデータ生成を行うものが多かったのですが、これだとテストメソッドが肥大化してしまいます。
個人的にはテストメソッドの肥大化は好きじゃないので、本記事ではこれを防ぐためにspring-test-dbunitライブラリの**LookUpクラス**を使用することとします。
## 前提
### 使用技術
|技術|バージョン|用途|
|–|–|–|
|Java|amazon-correto 16|プログラミング言語|
|SpringBoot|2.6.1|Webフレームワーク|
|SQL Server|2017-latest|データベース(dockerで用意)|
|
【OOP】03_カプセル化
こんにちは、コイキングです。
本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、カプセル化について、説明したいと思います。
******
# 1. カプセル化とは?
カプセル化とは関りがあるデータと行為をまとめて、’クラス’という’カプセル’に盛り付け事を意味します。
実はクラス作る際に知らず知らずのうちにカプセル化をしていたとも言えます。# 2. カプセル化の理由
## 1) コードの活用・管理
例えると犬クラスに翼という属性を定義すると、犬クラスに翼属性があるとは思えないでしょう?
つまり、関りがない属性とメソッドはちゃんと活用されたり、管理されることが難しいでうs。
関りがある物だけクラスというカプセルに集めておくとソースコードを再活用・管理する事がより良くなります。## 2) 情報隠蔽
クラス内に集めておいたメンバー変数とメソッドをどこにでも呼び出せると**クラスの元の設計された意図通り動作しない可能性が高くなります。この様なことを予防するための特性が情報隠蔽**です。
どこにでもメンバー
GraalVM(native-maven-plugin)で「JEP 290: Java Serialization Filtering」の仕組みを利用する
GraalVMのnative-imageコンパイラで生成したnative-imageの中で[Serialization Filtring](https://docs.oracle.com/en/java/javase/11/core/serialization-filtering1.html#GUID-0A1D23AB-2F18-4979-9288-9CFEC04F207E)を利用する方法がわかったのでメモっておきます。
# ビルドツール
* Maven([native-maven-plugin](https://docs.oracle.com/cd/F44923_01/enterprise/21/docs/reference-manual/native-image/NativeImageMavenPlugin/))
# 指定方法
`buildArgs`にフィルタリングルールを指定すればOK!
“`xml
org.graalvm.buildtools
native-maven-plugi
Java標準機能でHttpClient
普段はSpringBootを使った開発をしているため[RestTemplate](https://spring.pleiades.io/guides/gs/consuming-rest/)を使うのだが、いざSpringBootに依存しない実装が必要となったときに、[Apache HttpClient](https://hc.apache.org/httpcomponents-client-4.5.x/) を使わなくてもJavaの標準機能だけで簡単に実装できるようになったことを恥ずかしながら最近知ったので、昨年Java17がリリースされた今となってはもう古い記事になってしまうが、今更ながらJava標準機能でHttp通信するクライアントプログラムについて簡単にまとめておくことにした。
# 本記事の前提
– Java11以上であること(Java8ではサポートされてない機能)
– サーバ側のコードは割愛
– Jsonとのマッピング機能はJacksonを想定# 受信するデータ型
“`java
public class ResponseDto {
private String me
AtCoder Beginner Contest 235をやった(Java)
AtCoder Beginner Contest 235をやった。
記事投稿サボってました。自己満投稿ですが、これからもよろしくお願いします。
C問題はTLEになったので参考にしないでください。
※もし、Javaで解かれた方いましたら、コメントいただきたく!!##[A](https://atcoder.jp/contests/abc235/tasks/abc235_a)
3つの数字の並び替え問題
詳細は例題にある通り。直感的に3回並び替えて足し算する方法が楽かなと思ったのでそれでやりました。“`Java
import java.util.*;public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String abc = scan.nextLine();
int sum = 0;for(int i = 0
【Spring Boot】GET・POSTの実装
最近、仕事で Spring Boot を使っているので、勉強した内容について書いていきます。
#開発環境
Eclipse(日本語化プロジェクト)の最新のJava版をダウンロードして使用します。
`Spring Boot`を使うとなると、`Eclipse Spring Tool Suite (STS) `が必要になりますが、`Pleiades All in One Eclipse`をダウンロードすれば、既に使えるような状態になっているかと思います。#プロジェクトの作成
eclipseで workspace を開きます。
新規プロジェクト作成ウィンドウを開き、「Spring Boot スターター・プロジェクト」を作成します。
これにより、デフォルトのSpring boot プロジェクトが作成されたかと思います。
Java Silver SE11 4章# Java Silver SE11 4章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。## while文
繰り返し処理に使用される構文。
条件式がtrueの間は処理を繰り返す。
中カッコ{}を省略した場合、次の1行が繰り返し処理の対象になる。例
“`java:while
public class Main {public static void main(String[] args) {
int num = 0;
while (num < 5) { System.out.println("num = " + num); num++; System.out.println("num++ の結果は " + num); } } } ``` ```java:結果 nu
【OOP】02_メンバー変数・メソッド・コンストラクター
こんにちは、コイキングです。
本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、メンバー変数・メソッド・コンストラクターについて、説明したいと思います。
******
※説明に使うコード
“`java:Dog.java
public class Dog {// メンバー変数
String name;
int hp;// 静的(static) メンバー変数
static String breed;
static final String cryingSound = “Wang~!”;// インスタンスメソッド
public void eat() {
System.out.println(“eat”);
}// メソッドオーバーロード
public void eat(String food) {
System.out.println(“eat : “+food);
}public String getName() {
retur
Webで使えるJavaのUIフレームワークのVaadinをさわってみた
## モチベーション(動機)
この記事の執筆に至る経緯の発端は、Apache Wicket製プロジェクトを新システムに移行するのにどうするかという課題を筆者が持つ所以である。筆者は十数年Javaをメインにしている。最近はニューラルネットや機械学習でpythonをさわることが多くなっている。Webアプリを作るといえばReactやらVueやらでてくるのでReactを勉強しているがTypeScriptの型のサポート具合がどうにもしっくりこないやらバージョンアップのたびにばっさりと下位互換性をきりすてる具合にはついていけるかどうか一抹の不安が拭えないという印象がある。自身のできないことをできるようにすることは大事であるが、自身の強みを生かして伸ばすことも同様に大事だと気づいた。初心に立ち返ってJavaでがんばるには最近はどうしたらいいのだろうということで筆をとった次第である。## Vaadinとは
JavaでWebのUIを作ることができるフレームワーク。Pure Javaで書けそう。同類としてはApache Wicket。最近はFlowとFusionという仕組みを用意してPure Java