タグ

javaに関するbittersoulsのブックマーク (278)

  • Tomcat JDBC Connection Poolの存在を忘れてました - Qiita

    はじめに 少し前まで業務でSeasar2 FWを使っていたためコネクションプールはSeasar2のものを利用していました。S2のコネクションプールの実装はシンプルだったし業務で利用していても特にそこがボトルネックになることはありませんでした。 別のプロジェクトに移ってDBCPを触っていたのですが、実装になんとなく疑問を感じたので調べてみました。 tomcat jdbc connection poolとは? tomcatで実装したConnectionPoolの実装です。(DBCPとは異なります。) tomcat 7.0.19から利用できます。 tomat-jdbc.jarに含まれています。 DBCPからの切り替えはfactoryを変更するだけです。 tomcatのdefaultではDBCPが選択されていますので明示的に変更が必要です。 どこに違いがあるのか。 パフォーマンス DBCPよりパフ

    Tomcat JDBC Connection Poolの存在を忘れてました - Qiita
  • FAT JARを簡単に作る | DevelopersIO

    はじめに JAVAのWEBアプリを実行する際はwar形式にして実行することが多いかと思いますが、spring bootなどのフレームワークではjarの中にtomcatなどのアプリケーションも含めてしまいjar形式で実行することができます。jarの中に色々なライブラリのjarも含めて1つのjarファイルにすることをfat jarと呼んだりします。 fat jarにすることで実行ファイルが1つにまとまるため、WEBアプリやバッチアプリの起動がお手軽にできるようになります。そこで今回はfat jarの簡単な作り方を紹介したいと思います。 fat jarを作ってみる では、早速作ってみたいと思います。今回はgradleというビルドツールを使います。gradleはeclipse4.5では標準で使えるようになっているためeclipse4.5で作成します。 eclipseでファイル->その他->Grad

    FAT JARを簡単に作る | DevelopersIO
  • Spring Boot + Thymeleaf + Tomcat + Gradleで業務系アプリ 躓いた所6点 - Qiita

    JavaでWEBアプリケーションを作りたい!!という要望に今答えられるフレームワークはいくつかあるが、 その中でSpring Bootは大きな存在感があると思う。 短期間で業務系アプリを構築してほしいという要望が来たのでSpring Bootを使って開発した。 いくつか躓いた点をメモしていたので、それについて共有します。 ※注意:これは実際使ってみて困った点を共有するために記述しています。 ※Spring Bootを使ったことがないというかたは、こちらの方が参考になるかと思います。:http://qiita.com/opengl-8080/items/05d9490d6f0544e2351a システム全体像 ・フレームワーク:Spring Boot ・実行環境:開発中は組込みTomcat。番運用はTomcat7上で。 ・ログイン認証:Spring Security ・プレゼンテーション層

    Spring Boot + Thymeleaf + Tomcat + Gradleで業務系アプリ 躓いた所6点 - Qiita
  • JAX-RSのユニットテストまわり - 日々常々

    JAX-RSのClient APIを確認した流れで、ユニットテストまわりも眺めてみる。 Jersey - 2.17 RESTEasy - 3.0.9.Final 各実装のテストサポート 軽くコード書いてみたりしつつ思ったことをば。 Jerseyさん Chapter 25. Jersey Test Framework Jerseyさんのテスティングフレームワークを使うには、jersey-test-framework-core と、テストで使うコンテナのproviderが要ります。providerはいくつか用意されているので、好きなのを依存に追加しましょう。 testCompile "org.glassfish.jersey.test-framework:jersey-test-framework-core:${jerseyVersion}" // grizzly2, inmemory, jd

    JAX-RSのユニットテストまわり - 日々常々
  • JPA 2 Tutorial – Relationships – Many To Many

    JBay Solutions Development Blog on Java, Android, Play2 and others So, we have already dabbled into Relationships in JPA, in particular One-To-Many and Many-To-One. It is now time to give a look into Many-To-Many, which is very similar to One-To-Many Relationships. So at this point you should have read the previous two tutorials on JPA 2, but if for some reason you don't know what I'm talking abou

  • ジョブスケジューラ「Rundeck」を試してみる | DevelopersIO

    森永です。 最近は大逆転裁判をやりながら寝落ちするという毎日を送っています。 サーバ構築する上で、ジョブをどうするかというのは考慮が必要な点です。 簡単に実現するにはcronを使えばいいのですが、要件によってはジョブスケジューラを使わないと厳しいということがあります。 かと言って、エンタープライズで使われている格的なジョブスケジューラを使うのも大げさすぎる、というのもわかります。 そこで今回は、簡単に構築ができてそれなりに痒いところには手が届くジョブスケジューラ「Rundeck」を試してみます。 Rundeckとは OSSのジョブスケジューラです。 特徴として以下の様なものがあげられます。 エージェントレス SSH接続できればジョブを実行できます。 なので、別サブネットはもちろん、別VPCでも別AWSアカウントでもはたまたオンプレでもRundeckサーバからSSH接続とジョブを実行できる

    ジョブスケジューラ「Rundeck」を試してみる | DevelopersIO
  • quartz APIの基礎 - Qiita

    はじめに 相変わらずツマラナイサンプルですが、社内の人に向けて書いてみました。 quartz APIについての情報が少ないのでまとめておきます。 基的なこと quartzにはJOBとTriggerという概念があります。 JOB実行したい処理を書きます。JOBインタフェースをimplementsすればなんでもかけます。 Triggerはスケジュールを表現するクラスです。cron expressionが使えますが、cronexpressionを使わずともAPIを使って同じことはできます。(今回は割愛) 上記のJOBとTriggerをScheduleインタフェースを使って操作します。 JOBとTriggerをまとめて登録 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); JobDetail job = JobBui

    quartz APIの基礎 - Qiita
  • Injection in my quartz job

    I would like to know how can I use injection in my job using guice. As I can't use @Inject on the default constructor may I use it directly on the attribute as follow (I always got a NullPointerException with PersonDAO) ? I know that a DAO has nothing to do here but it's just for testing. public class SimpleQuartzJob implements Job { @Inject PersonDao Person; private static Logger logger = Logger.

    Injection in my quartz job
  • Set up JBeret · JBeret User Guide

    Set up JBeret Maven Repositories All JBeret artifacts are available in either Maven Central or jboss.org repository. To use jboss.org repository, add the following to pom.xml: <repositories> <repository> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public/</url> </repository> </repositories> JBeret Artifacts

    Set up JBeret · JBeret User Guide
  • Jbatch実践入門 #jdt2015

    Java Day Tokyo 2015 jBatch実践入門セッションのスライドです。Read less

    Jbatch実践入門 #jdt2015
  • jBatch(JBeret)をJava SE環境で動かす - CLOVER🍀

    先ほど書いたこちらのエントリについてですが、 はじめてのjBatch http://d.hatena.ne.jp/Kazuhira/20150607/1433663452 バッチなのに、WARにパッケージングしてアプリケーションサーバにデプロイを繰り返すのが面倒と思いまして…。 やっぱり、Java SE環境で動くようにしたいですよね。というわけで、そのようにしてみました。 ここで、jBatchの実装はJBeretとします。 JBeret https://github.com/jberet/jsr352 その他、CDIとJPAも利用しています。 変更するソースコード まず、バッチの起動はJava EE環境では@Scheduleでやっていましたが、こちらは利用できなくなるので削除します。 あとは、EntityManagerを利用するクラスをJava SE環境向けに修正。 src/main/sc

    jBatch(JBeret)をJava SE環境で動かす - CLOVER🍀
  • Guavaをどっぷり紹介(I/O編) - Kengo's blog

    イヤホンを新調したら雨夢楼と光のストライドがきれいに聴こえて嬉しいeller86です。洗濯機イヤホンを洗濯してしまったときは絶望の淵に立たされていた気がしますが、あの絶望がこの喜びにつながるとは一体誰が想像したでしょうか。 さて前回のGuava紹介記事がそこそこ人気?だったようなので、I/Oにもう少し突っ込んだ内容も書いてみたいと思います。 イディオムを隠蔽化するFilesクラス 前回イディオムを排除できるクラスとしてCloseablesを紹介しましたが、Filesクラスもまた役立ちます。少なくとも以下のメソッドはおさえておくと役立つはずです。 ファイルから読むためのBufferedReaderを作ってくれるnewReader(File, Charset) ファイルに書くためのBufferedWriterを作ってくれるnewWriter(File, Charset) Sun Java5以

    Guavaをどっぷり紹介(I/O編) - Kengo's blog
  • AssertJ / Fluent assertions for java

    AssertJ Core site has moved to https://assertj.github.io/doc/ This site is still maintained for AssertJ modules (until their documentation is migrated) Rich and easy to use AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability and is designed to be super easy to use within your favorite IDE. Get started right away with the one minute starting guide

  • JavaのテストにはAssertJがオススメ - Qiita

    JavaでのテストはJUnit4が使われていると思いますが、自分としては、それに加えてAssertJをオススメします。 AssertJ AssertJが使いやすい理由 JUnit4のassertThatと比べてAssertJが使いやすい理由は2つあります。 流れるようなインターフェース AssertJは「Fluent assertions for java」とトップページに大きく書かれているように、流れるようなインターフェースが最大の特徴です。いちいちドキュメントを調べなくても、IDEの補完機能で適切なメソッドを調べられるので、JUnit4のassertThatに比べて書きやすいです。 拡張がMatcherに比べて遥かに楽 Matcherの拡張対象は「比較方法」で、AssertJの拡張対象は「クラス」なので比較するのは適切ではないかもしれませんが、Matcherの拡張がの上から足を掻く感

    JavaのテストにはAssertJがオススメ - Qiita
  • package 配下のクラス一覧を取得する方法いろいろ - A Memorandum

    簡単にできそうで意外と面倒な package 配下のクラス一覧を取得する方法について。 Guava の ClassPath 利用 Reflections 利用 Spring ライブラリ利用なし ToolProvider で取得 Guava の ClassPath 利用 ClassPath を使えば簡単に取得できる。 ClassLoader loader = Thread.currentThread().getContextClassLoader(); Set<Class<?>> allClasses = ClassPath.from(loader) .getTopLevelClasses("my.package").stream() .map(info -> info.load()) .collect(Collectors.toSet()); 再帰的に取りたい場合は getTopLevel

    package 配下のクラス一覧を取得する方法いろいろ - A Memorandum
  • Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita

    Java8で新たに追加されたクラスにjava.util.Optionalがあります。 Optionalを使用することで、プログラムの堅牢性を高めたり、煩雑な記述を減らすことが期待されます。 Optionalとは? Optionalは値をラップし、 その値がnullかもしれない ことを表現するクラスです。 使い方 メソッドgetHoge()はnullを返す場合があるとします。 これまでなら次のような感じでnullチェックをしていたと思います。 String hoge = getHoge(); // hogeはnullかも if (hoge != null) { // nullチェック System.out.println(hoge.length()); // hogeがnullじゃないのでlengthメソッドを呼ぶ } nullかもしれない変数hogeのメソッドを呼ぶ場合、事前にnullチェ

    Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita
  • Jettyを使ったリバースプロキシ構成のときに本当のアクセス元の情報が知りたいんですけど〜って時 - その手の平は尻もつかめるさ

    Jettyを使ったリバースプロキシ構成をやっている時に,プロキシではなく当のアクセス元の情報を知りたいという事があります.例えばHttpServletRequest#getRemoteAddr()とかで取りたい,みたいな.というかほとんどの場合でそういった欲求があります. そういった時にどうするか,みたいなのを調べたのでメモを記します.なおJettyのバージョンは9です. プロキシの方は当然ながらX-Forwarded-*系のヘッダを正しく取り扱える様に編集しておきます. Nginxとかだとこんな感じになるでしょう. location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host

    Jettyを使ったリバースプロキシ構成のときに本当のアクセス元の情報が知りたいんですけど〜って時 - その手の平は尻もつかめるさ
  • オブジェクトのアップロード - Amazon Simple Storage Service

    Amazon S3 にファイルをアップロードすると、S3 オブジェクトとして保存されます。オブジェクトは、オブジェクトを記述するファイルデータとメタデータから構成されます。バケット内のオブジェクトの数に制限はありません。Amazon S3 バケットにファイルをアップロードするには、バケットに対する書き込みアクセス許可が必要です。アクセス許可の詳細については、Amazon S3 での Identity and Access Management を参照してください。 ファイルタイプ (イメージ、バックアップ、データ、ムービーなど) を問わず、各種のファイルを S3 バケットにアップロードできます。Amazon S3 コンソールを使用すると、アップロードできるファイルの最大サイズが 160 GB になります。160 GB を超えるファイルをアップロードするには、AWS Command Line

  • Javaで画像縮小 - クノスケ日記

    Javaで画像をリサイズすることになったので、試した結果を纏めてみます。 Javaで画像処理した人なら、ImageMagickを使えるJMagickやOpenCVを使えるJavaCVを使うかなと思います。 今回はサーバ等にインストールしないで使えるLibrary等を使って軽く検証。 画像ファイルの読み込み書き込みは共通の以下のコード public static BufferedImage readImageFile(File file) { return ImageIO.read(file); } public static void writeImageFile(BufferedImage image) { try { ImageIO.write(image, "JPG", new File("hoge.JPG")); } catch (IOException e) { e.printS

    Javaで画像縮小 - クノスケ日記
  • JJUGのエキスパートが語るエンタープライズ・アーキテクチャの過去、現在、未来──SOAP・RESTからIoT・ウェアラブルまで

    JJUGのエキスパートが語るエンタープライズ・アーキテクチャの過去、現在、未来──SOAP・RESTからIoT・ウェアラブルまで 吉川 徹 特集企画「アプリケーションアーキテクチャ最前線」では、さまざまな視点からアプリケーションアーキテクチャをエキスパートたちに語っていただきます。今回は、エンタープライズ・アーキテクチャについて取り上げます。 HTML5・モバイル・IoT・ウェアラブルなどビジネス環境が激変する中、エンタープライズ・アーキテクチャはどういう課題を抱えていて、どうあるべきなのか。今回は、JJUG (日Javaユーザーグループ)でご活躍中のお二人に話を伺うことにしました。 アーキテクチャを主軸に第一線で活躍しているグロースエクスパートナーズ株式会社 執行役員の鈴木雄介さんと、「流しのアーキテクト」を自称する株式会社アーキテクタス 代表取締役の細川努さんを交えて、エンタープライ

    JJUGのエキスパートが語るエンタープライズ・アーキテクチャの過去、現在、未来──SOAP・RESTからIoT・ウェアラブルまで