欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

結(jié)合Service層講解DAO層的異常處理操作

 更新時(shí)間:2021年06月07日 12:01:50   作者:南下尋  
這篇文章主要介紹了結(jié)合Service層講解DAO層的異常處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

domain:只是定義一個(gè)javabean。

dao:對(duì)于數(shù)據(jù)庫的操作,都放到dao層,也就是dao里面通常是對(duì)數(shù)據(jù)庫的增、刪、改、查等操作。

service:完成相應(yīng)的業(yè)務(wù)邏輯處理,調(diào)用dao層。

(web)servlet:完成界面請(qǐng)求、對(duì)界面進(jìn)行跳轉(zhuǎn)等等。servlet調(diào)用service層。

例子:

在domain包中,新建Xxx.java;在dao包中,新建IXxxDAO.java;在impl包中,新建XxxDAOImpl類;在test包中,新建XxxDAOTest.java,在XxxDAOImpl.java中編寫具體方法,核心步驟為“賈璉欲執(zhí)事”。

注:

①IXxxDAO.java為接口,在其中編寫需要使用的方法,主要是增(save)刪(delete)改(update)查(get&list–查詢?nèi)?。 ②Xxx.java中的變量均為私有,并且與數(shù)據(jù)庫中的列名,屬性相同。

J2EE三層架構(gòu):

令DaoException繼承RuntimeException, 處理異常的時(shí)候可以將其拋給Service層(UserService.java),如果要處理那么就try,catch,否則就令其報(bào)錯(cuò)

用AOP捕捉 Service中調(diào)用Dao的異常

PersonDao和PersonDaoImpl,并在PersonDaoImpl中制造異常

public interface PersonDao {
 public void savePerson();
 public void updatePerson();
}
public class PersonDaoImpl implements PersonDao {
 
 public void savePerson() {
  int a = 1/0;
 }
 
 public void updatePerson() {
  Long.parseLong("aaa");
 }
 
}

目標(biāo)類和目標(biāo)方法

public interface PersonService {
 void savePerson();
 void updatePerson();
}
public class PersonServiceImpl implements PersonService {
 
 private PersonDao personDao;//在這里選擇set方式在spring的配置文件中進(jìn)行注入
 
 public PersonDao getPersonDao() {
  return personDao;
 }
 public void setPersonDao(PersonDao personDao) {
  this.personDao = personDao;
 }
 public void savePerson() {
  personDao.savePerson();
 }
 public void updatePerson() {
  personDao.updatePerson();
 }
}

切面(定義一個(gè)異常類和異常方法)

public class Exception {
 
 /**
  * 這是一個(gè)異常通知
  */
 public void exceptionMethod(JoinPoint joinPoint,Throwable ex){
  System.out.println(ex.getMessage());
 }
 
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
       xmlns:aop="http://www.springframework.org/schema/aop"  
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
       xsi:schemaLocation="http://www.springframework.org/schema/beans   
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
           http://www.springframework.org/schema/aop   
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  
          
    <bean id="personDao" class="com.mo.dao.PersonDaoImpl"></bean>     
    
    <bean id="personService" class="com.mo.service.PersonServiceImpl">
     <!-- 用set方法注入 -->
     <property name="personDao" ref="personDao"></property>
    </bean>  
    
    <bean id="Exception" class="com.mo.exception.Exception"></bean>
      
    <aop:config>  
        <!-- 切入點(diǎn)表達(dá)式,確定目標(biāo)類 -->  
        <aop:pointcut   
            expression="execution(* com.mo.service.PersonServiceImpl.*(..))"   
            id="perform"/>  
              
        <!-- ref指向的對(duì)象就是切面 -->  
        <aop:aspect ref="Exception">  
             <aop:after-throwing method="exceptionMethod" pointcut-ref="perform" throwing="ex"/>  
        </aop:aspect>  
    </aop:config>  
</beans>

單元測試類

@Test
public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
        PersonService personService = (PersonService)context.getBean("personService");
        personService.savePerson();
}

輸出

/ by zero

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文詳解Java中枚舉類的使用

    一文詳解Java中枚舉類的使用

    這篇文章主要介紹了深入淺出講解Java中的枚舉類,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友可以了解下
    2022-11-11
  • SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例

    SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例

    本篇文章主要介紹了SpringBoot JPA實(shí)現(xiàn)增刪改查、分頁、排序、事務(wù)操作等功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Spring?Cloud灰度部署實(shí)現(xiàn)過程詳解

    Spring?Cloud灰度部署實(shí)現(xiàn)過程詳解

    這篇文章主要為大家介紹了Spring?Cloud灰度部署實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java編程實(shí)現(xiàn)游戲中的簡單碰撞檢測功能示例

    Java編程實(shí)現(xiàn)游戲中的簡單碰撞檢測功能示例

    這篇文章主要介紹了Java編程中的簡單碰撞檢測功能,涉及java針對(duì)坐標(biāo)點(diǎn)的相關(guān)數(shù)學(xué)運(yùn)算操作技巧,需要的朋友可以參考下
    2017-10-10
  • 理解Java中的靜態(tài)綁定和動(dòng)態(tài)綁定

    理解Java中的靜態(tài)綁定和動(dòng)態(tài)綁定

    這篇文章主要幫助大家理解Java中的靜態(tài)綁定和動(dòng)態(tài)綁定,在Java中存在兩種綁定方式,一種為靜態(tài)綁定,另一種就是動(dòng)態(tài)綁定,亦稱為后期綁定,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java多線程中的CyclicBarrier使用方法詳解

    Java多線程中的CyclicBarrier使用方法詳解

    這篇文章主要介紹了Java多線程中的CyclicBarrier使用方法詳解,CyclicBarrier是一種同步輔助工具,它允許一組線程都等待對(duì)方到達(dá)公共障礙點(diǎn),在涉及固定大小的線程的程序中,CyclicBarriers非常有用,這些線程間必須相互等待,需要的朋友可以參考下
    2023-12-12
  • SpringBoot bean依賴屬性配置詳細(xì)介紹

    SpringBoot bean依賴屬性配置詳細(xì)介紹

    Spring容器是Spring的核心,一切SpringBean都存儲(chǔ)在Spring容器內(nèi)??梢哉fbean是spring核心中的核心。Bean配置信息定義了Bean的實(shí)現(xiàn)及依賴關(guān)系,這篇文章主要介紹了SpringBoot bean依賴屬性配置
    2022-09-09
  • 深入理解Java動(dòng)態(tài)代理與靜態(tài)代理

    深入理解Java動(dòng)態(tài)代理與靜態(tài)代理

    這篇文章主要介紹了深入理解Java動(dòng)態(tài)代理與靜態(tài)代理,靜態(tài)代理,代理類和被代理的類實(shí)現(xiàn)了同樣的接口,代理類同時(shí)持有被代理類的引用,動(dòng)態(tài)代理的根據(jù)實(shí)現(xiàn)方式的不同可以分為JDK動(dòng)態(tài)代理和CGlib動(dòng)態(tài)代理
    2022-06-06
  • Java利用endorsed如何覆蓋jdk提供的類詳解

    Java利用endorsed如何覆蓋jdk提供的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用endorsed如何覆蓋jdk提供的類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • gateway網(wǎng)關(guān)與前端請(qǐng)求跨域問題的解決方案

    gateway網(wǎng)關(guān)與前端請(qǐng)求跨域問題的解決方案

    這篇文章主要介紹了gateway網(wǎng)關(guān)與前端請(qǐng)求跨域問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論