問題タブ [annotations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - これらの Java アノテーションはどのような機能を果たしますか?
Java での注釈の目的については、まだ明確ではありません。最初は、それらは単なるドキュメントとして機能すると思っていました。しかし、 Google App Engine Datastoreのこのドキュメントを見ると、よくわかりません。@PersistenceCapable(identityType = IdentityType.APPLICATION)はメソッド シグネチャに似ています。
このタイプの注釈の目的は何ですか? それは何をするためのものか?
java - データベースによって生成されるJPAタイムスタンプ列を設定しますか?
私の SQL Server 2000 データベースには、デフォルト値/バインディングとして設定された型のタイムスタンプ (データ型ではなく関数内) 列がありDATETIME
ます。lastTouched
getdate()
Netbeans 6.5 で生成された JPA エンティティ クラスを使用しており、これをコードに含めています。
ただし、オブジェクトをデータベースに入れようとすると、
を に設定しようとしました@Basic
が、データベースが列の値を(optional = true)
許可していないという例外がスローされますが、これは設計上許可されていません。null
TIMESTAMP
以前はこれを純粋な Hibernate で動作させていましたが、その後 JPA に切り替えましたが、この列がデータベース側で生成されることになっていることを伝える方法がわかりません。JPA永続レイヤーとしてHibernateをまだ使用していることに注意してください。
java - Spring の @Configurable が機能する場合と機能しない場合があるのはなぜですか?
注入が必要なフィールドで @Resource を使用して Spring の @Configurable アノテーションを介して自動依存性注入を使用しようとしています。これには、spring-agent.jar を JVM に渡すなどのセットアップが必要でした。詳細については、こちらを参照してください。
それは動作します...ほとんど。Tomcat が起動すると、AspectJ の初期化メッセージが表示され、ユーザー オブジェクトは自動的に FileService 参照を取得します。
問題は、時々それが起こらないことです。完全にランダムに見えます。起動しても依存関係がインジェクトされないこともあれば、インジェクトされることもあります。以前は @Transactional が User にあることに問題がありました。競合が発生したためです。プロキシと信じています。私は JPA を使用しているため、私のユーザーは @Entity でマークされているため、現時点での最善の推測は、これが競合を引き起こしていることです。プロキシを自動プロキシできないことを読みました。競合を相殺するために、Hibernate(私のJPA impl)が使用するCGLIBとjavassistを除外することについて、オンラインで見つけたいくつかのメモに従いました。
手がかり:
- それはすべてまたは何もありません。私の @Configurable インスタンスはすべて注入されているか、どれも注入されていません。
- DB からのエンティティのリロード (再インスタンス化) は役に立たないようです。それは機能しているかどうかのどちらかです。
- Tomcat を何度でも再起動しても、問題は解決しません。再びサイコロを振るように見えるのは、再配備だけです。つまり、再デプロイすればうまくいくかもしれません。
何が問題なのかをどのように把握できますか? @Configurable を JPA で使用している人はいますか? 依存関係が実際に注入されていないのに、 dependencyCheck = trueがエラーをスローしないのはなぜですか?
実在物
aop.xml
applicationContext.xml
java - JSR305 から javax.annotation を使用するこの正しい方法はありますか?
最近、JSR305 の RI をプロジェクトに追加し、次のようにインターフェイスに注釈を追加しています。
(ここで説明されているように) JSR の精神に則って、インターフェイスでアノテーションを使用することで、アノテーションを悪用していると思いますか? 戻り値が null になる可能性があることを示したいのですが、@Nullable はメソッド「consolidate」により多く適用されると思います。私がコーディングしているとき、インターフェイスのコードは私の導きの光であるため、それらを実装に追加しません。
java - 特定のパッケージで注釈付きのメソッドを見つける方法は?
メソッドの簡単なマーカー アノテーションがあります ( Effective Java (2nd ed)の Item 35 の最初の例と同様):
次に、約 20 個のクラスを含むいくつかのサブパッケージがある特定のパッケージ (たとえばcom.acme.installer
) で、注釈が付けられたすべてのメソッドを見つけたいと思います。(単体テストで注釈付きのすべてのメソッドに関していくつかのチェックを行いたいためです。)
これを行う最も簡単な方法は何ですか?できれば、新しいサードパーティのライブラリやフレームワークを追加しないでください。
編集method.isAnnotationPresent(InstallerMethod.class)
:明確にするために、メソッドに注釈があるかどうかを確認する方法は明らかですが、この問題にはすべてのメソッドの検索が含まれます。
java - Javaカスタムアノテーションを作成して、HTMLクレンジング用のBeanプロパティをマークします
Javaカスタムアノテーションを使用して、Beanプロパティのセットまたはgetメソッドにコードを追加して、ユーザーが入力した不正なHTMLからプロパティをクレンジングできますか?私は例を探していましたが、私が拡張できると感じるものを見たことがありません。
spring - Spring SessionStatus を「Complete」としてマークするのを忘れるとどうなりますか?
Spring MVC で、次のように @SessionAttribute タグを使用して SessionAttribute を定義するとします。
次のように、SessionStatus で status.setComplete() を呼び出すのを忘れたとします。
モデルは永遠にセッションに留まりますか? ユーザーがサイトをナビゲートするにつれて、セッションがどんどん大きくなっていきますか?
java - インターフェイスを満たすために存在する空のメソッドのJavaにイディオムはありますか?
Foo
のようなインターフェースを実装するクラスがあるとしましょうMouseListener
。インターフェイスは 5 つのMouseListener
メソッドで構成されていますが、そのうちの 1 つだけをオーバーライドしたいと考えています ( mouseClicked()
)。他の方法をフォーマットする標準的で慣用的な方法はありますか?
私の傾向は次のように書くことでした:
私は、メソッドが誤って空白のままになっているのではなく、意図的に空白になっていることを明示するのが好きですが、基本的に何もないために放棄されたすべての垂直方向のスペースに夢中になっているわけではありません。次の形式も見ました。
私は一般的にこれで問題ありませんし、作者の意図も理解していますが、(推奨)@Override
注釈が追加されると非常に見苦しくなります。
私は特に経験豊富な Java コーダーではないので、慣習があるかどうか尋ねてみようと思いました。考え?
java - Java アノテーションでこれを行うことはできますか?
アプリケーションでサブバージョンのリビジョン番号と最終変更日を表示するソリューションを検討しています (GWT で記述されているため、リフレクションは使用できません)。Subversion キーワードでリビジョンをエンコードすることは、現在のファイルにのみ適用されるため機能しません。注釈を使用したより良い解決策はありますか? (たとえば、コンパイル時に実行される別のクラス、プロジェクト全体で最新のリビジョン # を取得し、リビジョンと最終変更日をソース コードに挿入します)
java - SpringMVCアノテーションベースのコントローラーと@RequestMappingの問題の絞り込み
このSpringMVCコントローラーについて考えてみましょう。
これをブラウザに入れると:
どちらのメソッドもURLと一致しているように見えるため、AmbiguousHandlerMappingExceptionなどが予想されました。
しかし、実際には最初のメソッドが呼び出されました。誰かが理由を知っていますか?