1. ホーム
  2. Java

Springの構成でエラーなくIntelliJのアイデア、アセンブリオブジェクトは、自動配線できませんでした。

2022-02-11 23:36:21

  ブログアドレス: http://blog.csdn.net/u010334295/article/details/78076510

  事例:私は <スパン IntelliJ idea 2017.2を使ってSSMアプリケーションを開発しています。 Junit Testのテストを行う際、Resourceアノテーションを介してDAOを組み立てる際にERRORエラーが発生しました( Could not autowire. no beans of "XXX" type found ). しかし、ユニットテストがうまくいったので、実際にオブジェクトがmybatis-springで正しくアセンブルされたと仮定して、気にしませんでした。

  しかし、このエラーは後にServiceレイヤーでDAOオブジェクトをAutowiredで組み立てる際にも繰り返され、私の設定でないことを確認するためにspringとmybatisの設定項目をチェックした後に再び発生しました。それでもユニットテストはパスしました。しかし、OCDのプログラマとしては、1つのプロジェクトでこのERRORレベルのヒントが連続するのは絶対に許せないので、様々な原因を調査し始めたのです。

<スパン 百度を調べてみると、大牛は一貫してCtrl+C/Vを間違った方向に何度も何度も使い、「Naiveすぎる」と嘲笑していることがわかった。 だから私はまた、どのように強力な米国ウォレスを見に行くために外出したい、すべてのstackoverflowの国際的な友人もより多くのこの問題が発生しました上のチェック。後でその理由は、命名規約の設定項目で、春のXMLファイルを解析する際のアイデアは、静的チェックエラー補正機構のサポートがあまりにも良いされていることがわかった。だから、ERRORは、実際にあなたのアプリケーションに影響を与えません。

方法1(新規)。

DAOレイヤーに@Repositoryアノテーションを追加します。 これはSpring 2.0から追加された新しいアノテーションで、Springの開発を簡素化するためのものです。これはデータアクセス層のクラスをSpring Beanとして識別し、またアノテーションされたクラスが投げるアクセス例外をSpringアクセス例外型としてカプセル化するものです。しかし、まずSpring XML設定ファイルでBeanの自動スキャンを有効にする必要があります。  <context:component-scan base-package="... "/>すると、その中の Springbootでは、以下のように設定する必要はありません。 .

(コメント欄で、ここにメソッドを追加するようにとのご指摘をありがとうございました↑)

方法2(旧)。

アセンブリオブジェクトは、コンストラクタのメソッドで渡されます。 コンストラクタ・メソッドに @Autowired アノテーションを付けます。@SuppressWarnings("SpringJavaAutowiringInspection") というアノテーションを付けます。 Resourceアセンブリの警告も消えました。実はこれ、何かの記事でERRORの警告をWARNINGに下げるのと似ているんです。しかし、@SuppressWarningsを使う方が理にかなっているし、作業する側もそのアノテーションで何が起こっているのかが分かる。

  これが解決策図です。

  この質問は終了しました。

  ブログアドレス: http://blog.csdn.net/u010334295/article/details/78076510