2016-08-27 9 views
1

多くのガイドの助けを借りて、春のセキュリティと休止状態を使用して私の最初のログインページを作成できたばかりです。春のMVC、休止状態と春のセキュリティを説明してください

私が直面した問題の大部分は、ガイドが非常に徹底した説明をしていなかったことでした。だから私は皆さんから何か答えを得ることができたと思っていました。

質問1: たとえば、UserDaoなどのインターフェースクラスを作成する理由を教えてください。私はこのインタフェースの目的がある種のデータベースにアクセスすることを知っています。しかし、私のUserDaoには次のものしか含まれていません:

public interface UserDao { 

User findByUserName(String userName); 

boolean insertUser(User user); 

} 

代わりにクラスを作成することはできませんか?

質問2:私は、実行時に実際に舞台裏で何が起こる

@Override 
protected void configure(AuthenticationManagerBuilder auth) throws Exception { 
    auth.userDetailsService(userDetailsService); 
} 

質問3:

@Service 
@Transactional 
public class UserDetailsServiceImpl implements UserDetailsService { 

@Autowired 
private UserDao userDao; 

@Override 
public UserDetails loadUserByUsername(String userName) throws 
UsernameNotFoundException { 
code... 
} 
    } 

とどのようにこのクラスが呼び出されるのでしょうか?

私はほとんどのドキュメントを読んできましたが、まだ理解していません。

ありがとうございます! DAOインターフェイス無しQ1

プログラミングのため

+0

を持つOracleやMySQLのサポートをプラグインすることができ、あなたはドキュメントを勉強しましたか?あなたの質問はこのサイトでは広すぎます。包括的な回答は時間がかかり、ドキュメントを複製するだけです。 –

+0

はい、述べたように、私はドキュメントを読んで、書かれたものを理解することはできませんでした。また、最初の2つの質問はそれほど広範ではないと確信しています。私は本当に重複を求めていません、私が求めているのは、別の観点からの説明です。 – JustinCredible

答えて

0

回答。

  • 新しい要件に従ってコンポーネントを追加する責任がある巨大なシステムのプログラマです。
  • あなたのシステムは、MySQLで動作するように実装されています。
  • 新しい要件のために、プロジェクトマネージャは、Oracleのサポートを実装するよう依頼しました。 (必要な場合はいつでも、MySQLとOracle間でDBサポートを切り替える必要があります)
  • MySQLクエリとOracleクエリが異なります。
  • システムは、hibernateのようなORMフレームワークでは実装されていません。
  • 特に、DAOインターフェイスはありません。すべてDBと通信するための具体的なクラスです。
  • これで、Oracleに関連するクエリを含むメソッドでJavaクラスを実装しようとしています。あなたが困っている
  • お使いのシステムこれは、サービス層のコードやドキュメンテーションを調べなければ、複雑なビジネスロジック
  • が含まれ
  • 巨大であり、あなたは
  • することはできません(あなたがサービス層を変更することはできません知っていますコード)
  • どのクラス/メソッドをどの名前で実装する必要がありますか。
  • メソッドの入力パラメータとは何か。
  • 出力する内容。
  • システムの複雑さによっては、数ヶ月かかることがあります。

(時間短縮は、ソフトウェアプロジェクトのキーポイントである)しかし、あなただけのDAOインタフェースを実装し

  • ので、DAOインタフェース

    • では、Oracle固有のクエリについて考えるだけで済みます
    • 自動的にDAOインターフェイスがあなたをトラックに入れます。
    • 正しいメソッド名を使用するには
    • 正しい入力パラメータを使用する
    • 正しい戻り変数を使用する
    • あなたがトラックから外れた場合、コンパイルは失敗します。
    • そして、あなたは簡単に豆注入
  • 関連する問題