ニューヨーク春季MVC(20-24)


20.21.22サービスファイルの説明


簡単に言えば
サービスはDAOの役割になります
DAOとは?
JAVAコードからなる実行方法のクラスです.
また、サービスを作成する際に、サービスを作成する際に同じサービス内容が発生するが、内部コードが異なる場合に備えて、通過する必要があるメインインタフェースが作成され実現される.
[はい]
NoticeService
(1)JDBCNOTICEserviceへの接続
(2)JPANoticeServiceへの接続
このように接続することで、xmlファイルの設定をいつでも置き換えることができ、メンテナンスが容易になります.

23.接続をデータソースとして使用

private String url = "jdbc:oracle:thin:@localhost:1521/xe";
private String uid = "jsp";
private String pwd = "tigar";
private String driver = "oracle.jdbc.driver.OracleDriver";
元のサービスクラスでは、String変数に各情報を入力します.
それぞれの方法
Class.forName(driver);
Connection con = DriverManager.getConnection(url,uid, pwd);
このようにDBが接続されていますが、そうするとDBの変更やメンテナンスが非常に難しくなります.
そこで、DataSourceというインタフェースを使用して、DBに関連付けられた情報をxmlに設定します.
デバイス
  • を設定して、
  • のデータソースをサービスクラスに注入する
    private DataSource dataSource;
     
     
      public void setDataSource(DataSource dataSource) 
      {
      this.dataSource = dataSource;
      }
    上記のコードを使用してSetterを設定し、xmlを介してサービスクラスに注入します.

  • dispatcher-servlet.xmlに注入を設定する
    <bean id="noticeService" class="com.newlecture.web.service.jdbc.JDBCNoticeService">
    <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@localhost:1521/xe"/>
    <property name="username" value="jsp"/>
    <property name="password" value="tigar"/>
    </bean>
  • 上記のコードの解釈は以下の通りです.
    (1)通知サービスという名前のJDBCCNoticeServiceクラスでは、dataSourceという名前のbeanをname="dataSource、すなわちsetDataSourceに注入する.これは、bean idという名前のbeanを通知サービスに注入することを意味する
    (2)データソースspringframeworkによるインタフェース
    propertyにはdriverClass、url、username(id)、passwordの4種類があり、これらの情報を設定するとメンテナンス時に非常に便利になります

    24.xmlファイルの分離


    本来はすべてのxmlファイルをdispatcherファイルに入れるのですが、メンテナンスのために別々にするのが望ましいです
    普通です.
  • セキュリティ:セキュリティ
  • サービス(実行方法):サービス
  • DB関連:servlet
  • ストレージファイルに分割
    それなら、既存の販売店です.xmlを注入するweb.xmlの設定も変更する必要があります

    重要なのは、ファイルコードではなく、このような方法で注入することです.