タグ

javaに関するsurume000のブックマーク (102)

  • DIコンテナのインジェクション方法の使い分けについて - 日々常々

    DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこと。 コンテナ管理 インスタンスのライフサイクルをコンテナが管理していること。雑に言えば、使う側で new しないってこと。 インジェクション Dependency Injectionのこと。 Short Answer コンストラクタインジェクションを使いましょう。使い分けなくていいです。 3種類のインジェクション インジェクションには3種類ありますね。他あっても知らない。 フィールドインジェクション セッターインジェクション コンストラクタインジェクション フィールドインジェクション 一番よく見るかな。 class Hoge { @Inject

    DIコンテナのインジェクション方法の使い分けについて - 日々常々
    surume000
    surume000 2017/04/19
    フィールドインジェクションが一番コードが見やすい。
  • SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....

    SpringでField InjectionよりConstructor Injectionが推奨される理由を調べてみたメモです。 (2016/12/30) サンプルコードにfinalをつけるように修正 (2017/03/29) Immutabilityについて追記 --- 家でも会社でもIntelliJを使って開発しているのですが、 Spring Bootで@Autowired(@Inject)を使うと下記のような警告が出るようになりました。 警告内容を見てみると、フィールドインジェクションは推奨されません、とのこと。 「Field injection is not recommended.」 警告の詳細を見てみると下記のように書いてあります。 「Field injection is not recommended. Spring Team recommends: "Always use

    SpringでField InjectionよりConstructor Injectionが推奨される理由 - abcdefg.....
    surume000
    surume000 2016/12/30
    Lombokなしじゃ醜すぎる。コンストラクタインジェクションのメリットが弱すぎるように思う。
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • 10のJava9で変わるJava8の嫌なとこ!

    Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4bitter_fox

    10のJava9で変わるJava8の嫌なとこ!
    surume000
    surume000 2016/09/03
    module以外どうでもいい
  • [随時更新]SpringBoot(with Thymeleaf)チートシート - Qiita

    はじめに SpringBoot 1.3.5で書き直しました。 SpringFrameworkはグローバルで利用され、枯れたフレームワークなので品質的にも安心感がありますし、SpringとSpringのサブプロジェクトの機能は非常に多岐に渡ります。 SpringBootは私のようにSpringに詳しくなくても簡単にWebアプリケーションを作ることができます。 SpringFrameworkの情報はWeb上に沢山存在しますが、Spring初心者にはどれがどのバージョンで利用できることなのかがわかりにくく戸惑うことが多いのです。そこで、今回勉強したことを検索しやすいように1ページにまとめてみました。 できるだけ公式サイトへの参照を貼ってあります。また、探す糸口がわかると良いと思ったので探し方もできるだけ記載しておきました。 自分のメモ的な感じで記載しているので記載が荒いところはご容赦ください。間

    [随時更新]SpringBoot(with Thymeleaf)チートシート - Qiita
  • 作って理解するWebフレームワーク - きしだのHatena

    前回、簡単なDIコンテナを作ってみたので、次はこれを使ってWebフレームワークを作ってみたいと思います。 Webサーバーをつくる まず、WebフレームワークなのでHTTPサーバーが必要ですね。なので簡単なものを作ります。 とりあえずブラウザからリクエストを受け取ったら200 OKとHTMLを返すだけのサーバーです。 今回は、そこらのブラウザからアクセスできればいいや、ということで、RFCとかの仕様に準拠することは考えません。 public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSoc = new ServerSocket(8989); for (;;) { Socket s = serverSoc.accept(); new Thread((

    作って理解するWebフレームワーク - きしだのHatena
    surume000
    surume000 2016/04/20
    HTTPサーバはWebフレームワークに含まれますか?
  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • Eclipse/プラグイン開発のTIPS集/ソースコードを解析するパーサASTParser - きのさいと

    ASTParserとは † さてさて、いままでEclipseのウィジェットとか、リスナーとか比較的IDEよりでないところを見てきましたが、今回はソースコードを解析するパーサ、ASTParserを見てみたいと思います。 ASTParserはパッケージエクスプローラなどに表示されているJavaソースからソースコードを取得し解析するとか、ユーザ入力値に応じてJavaのソースコードを生成するとか、Javaソースをプログラマブルに操作するときに使用します。 ↑ やってみる † 触ってみましょう。ソースコード情報はパッケージエクスプローラから取得するとして、そのクラスを操作するリーダを作ってみました。 package nu.mine.kino.plugin.astsampless; import java.util.Iterator; import org.apache.log4j.Logger; i

  • 2006/01/06 日記: Apache Jakarta BCELを用いたクラスファイル(バイトコード)解析サンプル

    2006/01/06 日記: Apache Jakarta BCELを用いたクラスファイル(バイトコード)解析サンプル [いがぴょんの日記v2,diary,igapyon,Apache,BCEL,バイトコード] blancoDb Enterprise Edition 1.4.0, blancoResourceBundle 0.4.5, BlancoSqlEditorPlugin 0.3.4について、出荷候補版をリリースします。 広告: BlancoEclipseDistribution 最新安定版 (3.4-20080626) リリース 07/04 最新版の Eclipse である Eclipse Classic (SDK) 3.4 一式 (日語化済み) が Windowsインストーラを用いてインストールできます。 BlancoEclipseDistribution は Ecl

  • OutOfMemoryError の調べ方 - Qiita

    OutOfMemoryError (以下 OOME)が起こったときにお手上げ状態にならないためにも、 Java のメモリ管理の仕組みとか、 OOME が起こったときの調査方法とかを調べる。 環境 OS Windows 7 > java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも J

    OutOfMemoryError の調べ方 - Qiita
  • 次世代のEclipse、Webブラウザで動作する「Eclipse Che」が正式公開。コードをDockerコンテナへデプロイし実行可能

    Eclipse Foundationは、“次世代のEclipse IDE”として新しく開発した、Webブラウザから利用できる統合開発環境「Eclipse Che」(エクリプス・チェ)のリリースを発表しました。 Eclipse Cheは、体となるChe ServerにWebブラウザから接続し、Webブラウザから利用する統合開発環境。チームで開発するためのプロジェクトなどを設定可能で、GitやSubversion、Diffなどに対応。 エディタ部分ではJavaJavaScriptのオートコンプリートや開発中のコード内容がダイナミックに反映されるIntelliSenseなどを備えています。 開発したコードはEclipse Cheの開発画面から、プロジェクトにひも付けされたDockerコンテナにデプロイして実行し、デバッガなどを利用できます。サーバサイドの実行環境まで連係することがEclips

    次世代のEclipse、Webブラウザで動作する「Eclipse Che」が正式公開。コードをDockerコンテナへデプロイし実行可能
  • PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json

    (3/15 : タイトル修正しました。wは小文字ですね、すみません・・・) PlayFrameworkが流行り始めてから割と経ちますので、そろそろ正式採用しようと考える方も多いのではないかと思います。 強力な静的型付けで守られたPlayは、ミッションクリティカルなシステムや数万行を超える大規模システムの構築に特に向いているような気がします。 また、Servletを使っていないのに加えてMVC構造がベースなので、今までRailsなどで開発をしていた人でもシームレスに移行できると思います。 しかし、忘れてはならないのがPlayのアーキテクチャが全ての処理が非同期で行われることを前提としているという事です。 ここを忘れてPlayをただの強力な静的型付けで守られたMVCフレームワークとだけ考えて開発を進めてしまうと、番環境で稼動させた時にパフォーマンスが上がらずに困ることになるかもしれません。今

    PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json
  • Android Javaでフィールドにmプレフィクスをつけるのはやめよう - Islands in the byte stream

    Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Contributors  |  Android Open Source Project これはいわゆるハンガリアン記法の変種で、こういうやつですね。 class Recipe { private String mTitle; private List<String> mSteps; // ... } これについての態度はプロジェクトごとに様々ですが、たとえばクックパッド社のJavaのスタイルガイドでは明確に否定しています。 styleguide/

    Android Javaでフィールドにmプレフィクスをつけるのはやめよう - Islands in the byte stream
    surume000
    surume000 2016/01/24
    俺も本当にそう思う。公式はなんでこんな古臭いスタイル使ってんのかね
  • Javaのログ出力: 道具と考え方

    Concepts and tools of logging in Java. Javaにおけるログ出力の考え方と道具について説明. CC Attribution Licenseの元に公開します.Read less

    Javaのログ出力: 道具と考え方
  • JavaFXでHelloWorld - Qiita

    JavaFX の Hello World 作成方法メモ。 e(fx)clipse は使ってないけど、後々必要になるので入れておく。 環境 OS Windows7 64bit 1.7.0_25 IDE Eclipse Juno Scene Builder 1.1 準備 Java FX のインストール Java のバージョンが 1.7.0_6 以上なら標準でバンドルされてるので不要。 Scene Builder のインストール Oracle が提供してるフリーの Java FXGUI デザインツール。 ここからダウンロードできる。 1.1 の Windows 版をダウンロードして、インストーラに従ってインストール。 Eclipse プラグイン(e(fx)clipse)のインストール e(fx)clipse という Java FX 用のプラグインがあるので、マーケットプレースからインストー

    JavaFXでHelloWorld - Qiita
  • Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita

    関連記事 この記事も古くなりましたね。執筆時の実装バージョンKotlin 0.12から1.0.2へのアップグレード対応をした際の知見を記事にしました。 Kotlinを実案件で使いました 先日、僕の勤め先のQonceptは『リアル鬼ごっこ』×富士急ハイランド 巨大遊園地からの逃走を開発、リリースしました。 富士急ハイランドで実際に鬼ごっこをする企画で、一般のお客さんがスマホで専用アプリを使いながらクリアを目指します。園内には鬼役のスタッフや、ゲーム進行に関わる設備などがあり、これらとスマホがiBeacon(BluetoothLE)を用いて連動することで、ダメージを受けたり、アイテムを使用したり、クイズを解いたりなどします。 Qonceptの開発範囲は、iOSアプリ(とAppleWatchアプリ)、Androidアプリ、サーバサイドでした。 受注確定となった時点で、残り日数と開発者リソースに対

    Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita
  • Java使いをScalaに引き込むサンプル集(その2) | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルするとclassファイルになり、出来上がったclassファイルをJadなどで逆コンパイルするとJavaのソースを生成できてしまうという、かなりJavaに近いプログラミング言語です。 JDKの機能やJavaのライブラリをそのまま利用することができるので、Javaプログラマが既存の知識を活用できる言語でもあります。 今回はJavaを利用している際に発症しがちな様々な症例を題材として、Scalaを利用した際に得られるメリットを紹介していきたいと思います。 興味のある方はその1も併せてご覧ください。 CPUの遊んでいるコアを死ぬほど働かせてみたいあなたに 最近のパソコンはCPUのコア数も増えてきて、4コアとか6コアのマシンも割と手頃な価格で手に入るようになってきました。 でも、そういったマシンのCPU使用率を見てみると、たいて

  • Java使いをScalaに引き込むサンプル集 | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 記事では、ScalaJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaJava

    surume000
    surume000 2015/09/27
    記事が公開されて4年と半年。コンパイラはいまだに遅い
  • GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して

    GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内

    GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して
  • Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD

    この記事は、JavaScalaの例外分析・パフォーマンス監視のツール Takapiblog に投稿されたものです。 Javaのマイクロフレームワークとは何か、推奨される理由とは? どんなプログラミング言語にも、長所と短所はあるものです。例えばJavaは、安全性の高さや、厳しいテストを経ていること、後方互換性などの利点を持つ言語です。しかし、その代償として、アジリティ(俊敏性)や合理性といった面が少なからず犠牲になっています。冗長で、Java自体が肥大化しているという事実も否定できません。とはいえ、新規開発や大規模な開発を行いたい場合、JVM(Java仮想マシン)はバックエンドとして非常に魅力的です。JVMはパワフルな上に、非常に厳しい環境でテストされています。このような利点があるため、結果的にJavaは広く使用され、積極的にデプロイされているのです。 しかし、このJavaの現状を皆

    Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD