[解決済み] UnsatisfiedDependencyException。という名前のビーンの作成に失敗しました。
質問
数日前から、SpringのCRUDアプリケーションを作ろうとしています。私は混乱しています。 私はこのエラーを解決することはできません。
<ブロッククオートorg.springframework.beans.factory.UnsatisfiedDependencyException.UnsatisfiedDependencyException.UnsatisfiedDependencyException の略です。Error creating bean with name 'clientController': メソッド 'setClientService' パラメータ 0 で表される依存関係が満たされていません。ネストされた例外は org.springframework.beans.factory.UnsatisfiedDependencyException.UnsatisfiedDependencyException です。名前 'clientService' を持つ Bean の作成に失敗しました。また、このメソッドには、次のメソッドが含まれます。com.kopylov.repository.ClientRepository' タイプの修飾された Bean は利用できません。依存関係アノテーション。{を使用することで、この問題を解決できます。
そしてこれ
org.springframework.beans.factory.UnsatisfiedDependencyException.UnsatisfiedDependencyException.UnsatisfiedDependencyException の略です。名前 'clientService' を持つ Bean の作成に失敗しました。また、このような場合、"Next" をクリックすると、"Next" をクリックしたことになります。com.kopylov.repository.ClientRepository' タイプの修飾された Bean は利用できません。依存関係アノテーション。{を使用することで、この問題を解決できます。
ClientController
@Controller
public class ClientController {
private ClientService clientService;
@Autowired
@Qualifier("clientService")
public void setClientService(ClientService clientService){
this.clientService=clientService;
}
@RequestMapping(value = "registration/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute Client client){
this.clientService.addClient(client);
return "home";
}
}
ClientServiceImpl
@Service("clientService")
public class ClientServiceImpl implements ClientService{
private ClientRepository clientRepository;
@Autowired
@Qualifier("clientRepository")
public void setClientRepository(ClientRepository clientRepository){
this.clientRepository=clientRepository;
}
@Transactional
public void addClient(Client client){
clientRepository.saveAndFlush(client);
}
}
クライアントリポジトリ
public interface ClientRepository extends JpaRepository<Client, Integer> {
}
同じような質問にたくさん目を通しましたが、どの回答も私を助けてくれません。
どのように解決するのですか?
ClientRepository には、アノテーションを付ける必要があります。
@Repository
タグを使用します。
現在の設定では、Spring はこのクラスをスキャンして、それに関する知識を得ることはできません。起動時や配線時にClientRepositoryクラスが見つかりません。
EDIT
を追加した場合
@Repository
タグで解決しないのであれば、今のところ、問題は
ClientService
と
ClientServiceImpl
.
アノテーションを付けてみてください。
ClientService
(インターフェース) を
@Service
. サービスの実装はひとつだけでよいので、オプションのパラメータである
@Service("clientService")
. Springはインターフェースの名前に基づいてそれを自動生成します。
また、ブルーノが言ったように
@Qualifier
は必要ありません。
ClientController
サービスの実装は1つだけだからです。
ClientService.java
@Service
public interface ClientService {
void addClient(Client client);
}
ClientServiceImpl.java (オプション1)
@Service
public class ClientServiceImpl implements ClientService{
private ClientRepository clientRepository;
@Autowired
public void setClientRepository(ClientRepository clientRepository){
this.clientRepository=clientRepository;
}
@Transactional
public void addClient(Client client){
clientRepository.saveAndFlush(client);
}
}
ClientServiceImpl.java (オプション2/優先)
@Service
public class ClientServiceImpl implements ClientService{
@Autowired
private ClientRepository clientRepository;
@Transactional
public void addClient(Client client){
clientRepository.saveAndFlush(client);
}
}
ClientController.java
@Controller
public class ClientController {
private ClientService clientService;
@Autowired
//@Qualifier("clientService")
public void setClientService(ClientService clientService){
this.clientService=clientService;
}
@RequestMapping(value = "registration", method = RequestMethod.GET)
public String reg(Model model){
model.addAttribute("client", new Client());
return "registration";
}
@RequestMapping(value = "registration/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute Client client){
this.clientService.addClient(client);
return "home";
}
}
関連
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Javaでユーザー入力を待機させる方法
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み] テスト
-
[解決済み】予期しない型エラー
-
[解決済み】koch snowflake java recursion
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】破損したjarファイル
-
[解決済み】javaで無効な文字定数