java - @Resource作用
大家讲道理
大家讲道理 2017-04-18 09:38:48
0
5
613
@Resource
public interface MyObjectMapperExt extends MyObjectMapper {

 // TODO 
}

为什么在这个地方不加@Resource的时候,在另外一个地方注入MyObjectMapperExt会失败?

@Autowired
private MyObjectMapperExt myObjectMapperExt;

会注入失败,提示无法注入。是什么原因?而且@Resource是mybatis自动生成的。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(5)
阿神

リーリー

これは @Resource アノテーションの紹介です。@Resource がフィールドまたはメソッドで使用されると、Spring はコンテナから必要なタイプの Bean を検索します。それをリソースとして Spring コンテナーに置きます。 @Resource

アノテーションは、Spring コンテナにこの Bean を自動的に挿入させることを意味します。@Autowired アノテーションを使用しない場合、Spring コンテナに現在アノテーションが付けられているクラスを引き渡すことを意味します。コンテナはこのタイプの Bean をロードしません。注入が必要な場合は、当然エラーが報告されます @Resource @Resourceインターフェースでの

の使用には問題があります。これは実装クラス

に配置する必要があります。

いいねを押す +0
刘奇

統合され、春の経営陣に引き継がれる

いいねを押す +0
左手右手慢动作

最初のインターフェースに @Resource が追加されていない場合、インターフェースの実装は Spring によって管理されないため、インターフェースを参照する後続のインジェクションは失敗します

いいねを押す +0
伊谢尔伦

@Resource アノテーション宣言。@Autowired を使用して Bean が見つからないと宣言したわけではありません。
このように単純に理解できます。spring と呼ばれるリソース プールでは、@Resource @Controller やその他のメソッドを使用する必要があります。プールに宣言を作成します
@Autowired @Named などのメソッドを使用して取り出します

いいねを押す +0
Ty80

@Resource
は、Bean が Spring コンテナーによって管理されることを意味します。通常、リソースはインターフェイスに直接ではなく、クラスまたはインターフェイスの実装クラスに書き込まれます。 Spring コンテナーで管理するということは、クラスをインスタンス化するときに Spring が自動的にオブジェクトを作成することを意味します。

@Autowired
は、属性 (通常は属性または set メソッドに記述されます) が Spring によって自動的に挿入されることを示します。リソースが Spring コンテナーに存在する場合にのみ (リソースが追加された Bean はリソースとして扱われます)、Spring はそれを自動的に注入できます。 Spring コンテナーにそのようなリソースがない場合、それを自動的に挿入すると、確実にリソースを見つけることができず、エラーが報告されます。

適切な例と不適切な例
駅に荷物レジ (スプリングコンテナ) があり、そのコンテナに荷物を保管したいと考えています。パッケージに @Resource タグを付けると、スタッフがリソースがあなたのものであることを示す小さなメモを渡します。パッケージを取得する (リソースを取得する) 場合は、ストリップ (@Autowired) を取得して、パッケージ レジスタ内のリソースを見つけることができます。
あなたのバッグが実際にコンテナに保管されている場合、そのバッグはあなたのメモに従ってあなたに渡されます。
バッグをコンテナに預けていないが、スタッフにバッグを要求したい場合は、エラーを報告してください。あなたはスタッフとの決闘を開始します。 。 。 。 。 。 。 。 。 。 。 。 。 。
春はとてもまっすぐです。持っていない場合は、差し上げます。リソースがない場合は、もう一度要求してください。エラーを報告させていただきます! ! !
追伸: 示されている例はわかりにくいので、ご自身で理解してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート