Web層からの要求に応じて呼び出される業務アプリケーションを作成します。業務アプリケーションでは、データベースとのやり取りなどの処理を行い、処理結果をWeb層に返します。
■EmployeeDao.java(DAOのインタフェース)
package test; public interface EmployeeDao { public void init(); public void destroy(); public String[] execDaoSelect(); public boolean execDaoInsert(String Employee); public boolean execDaoDelete(String Employee); } |
■EmployeeDaoImpl.java(DAOの実装クラス)
package test; public class EmployeeDaoImpl implements EmployeeDao{ public void init() { // 初期処理 } public void destroy() { // 終了処理 } // AOPが差し込まれる対象となるメソッド public String[] execDaoSelect(){ String[] data = null; // データベースから社員全員の名前を取得します //data[] = ... return data; } // AOPが差し込まれる対象となるメソッド public boolean execDaoInsert(String Employee){ boolean ret = true; // データベースに指定した社員名を登録します //ret = ... return ret; } // AOPが差し込まれる対象となるメソッド public boolean execDaoDelete(String Employee){ boolean ret = true; // データベースから指定した社員を削除します //ret = ... return ret; } } |
■ListService.java(業務アプリケーションのインタフェース)
package test; public interface ListService { public String[] getEmployeeList(); } |
■ListServiceImpl.java(業務アプリケーションの実装クラス)
package test; public class ListServiceImpl implements ListService { private EmployeeDao employeeDao; public void setEmployeeDao(EmployeeDao employeeDao) { // DIによって生成されたインスタンスが格納されます this.employeeDao = employeeDao; } public String[] getEmployeeList() { // 社員の名前一覧を返却します String[] employeeList = employeeDao.execDaoSelect(); return employeeList; } } |
■aopDatabaseCheck.java(AOPで差し込む処理)
package test; import org.aspectj.lang.ProceedingJoinPoint; public class aopDatabaseCheck{ // データベースに関するチェック処理を指定されたメソッドの前後で処理を行います public Object aroundMessage( ProceedingJoinPoint pjp ) throws Throwable { try{ // DBチェック処理 }catch(Exception e){ throw e; } // AOPによって処理を差し込んだため、もとの処理を呼び出します Object retval = pjp.proceed() ; // メッセージ System.out.println("..."); return retval ; } } |