[解決済み] 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";
}
}
関連
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] getContentPane()は具体的に何をするのですか?
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] IntegerからBigIntegerへの変換
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]