1、首先創建實體類
這個實體類用於和數據庫進行對接。
2、在sqlMapConfig.xml文件中定義該實體類的別名person。方便在mapper文件中使用
3、定義這個類的接口Dao類。這個是要和mapper文件對應的。其中所有用到的接口都要在這聲明,具體的sql執行在mapper文件中。
其中mapper的命名空間必須爲dao的路徑,這樣才能將兩者關聯。dao中的接口名和裏面<select>方法的id名字是一致的。
<resultMap id="給ID名" type="實體類" >
<result column="數據庫字段名" property="實體類屬性" jdbcType="數據庫字段類型" />
</resultMap>
4、然後創建service類,裏面是和dao一樣的接口聲明。
5、然後具體的實現在impl裏面實現。創建時要繼承service類
序號1:因爲是實現service,所以創建類時必須是繼承
序號2:真正使用到的其實是dao裏面的接口,dao裏面的接口是操作數據庫的,然後通過dao來操作數據庫的結果之後,在這裏進行運用。
注意:在dao中接口的返回值爲person,也就是model裏面的,但是因爲在前臺得要的字段不同我們可以自己定義組成一個新的實體類,即PersonDto類
因爲dao裏面返回的是person實體類,我們就需要在這裏把前臺需要用到的字段賦值到persondto中。這樣的返回值就是我們需要的dto。
6、然後就是對spring文件的bean裝配
其中1就是將dao進行bean裝配,3的名字必須要和裝配的id一致。2中的4要和2中的定義的PersonDao的UI想名一致。
7、client層的內容基本就是前臺所需要的字段組成的實體類persondto。然後還有需要用到的接口。
8、client中的接口的具體實現是在impl層的。
因爲是對client層的實現,所以在創建時要繼承client裏面的接口類。
序號1的定義對象名字必須和biz層裏面spring文件中裝配的名稱一樣。也就是第6題目中的2號。
9、然後就是在impl層中spring裝配。
同樣將impl文件進行裝配。3的名字必須和impl裏面的實現接口類中定義的一樣。而4ref的是需要和biz裏面裝配的名字一樣。其中編號2用於dubbo發佈服務。
10、後臺測試:
package com.ouc.mkhl.platform.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ouc.mkhl.platform.person.dto.PersonDto;
import com.ouc.mkhl.platform.person.service.PersonServiceClient;
public class PersonTest {
private static final Logger LOG = LoggerFactory.getLogger(TestChenzf.class);
private static PersonServiceClient personServiceClient;
public static void main(String[] args) {
ClassPathXmlApplicationContext cxt = new ClassPathXmlApplicationContext(
new String[] {
"classpath*:/console/audit/console-audit.xml",
"classpath*:/console/dubbo/spring-external.xml",
"classpath*:/console/message/console-message-provider.xml",
"classpath*:/spring/cache/spring-*.xml",
"classpath*:/spring/jmx/spring-jmx-mbean.xml",
"classpath*:/spring/security/spring-*.xml",
"classpath*:/spring/person/spring-person.xml",
"classpath*:/spring/spring-common.xml",
"classpath*:/spring/spring-config-toolkit.xml",
"classpath*:/spring/spring-datasource.xml",
"classpath*:/spring/spring-external.xml",
"classpath*:/spring/spring-log.xml",
"classpath*:/spring/spring-monitor.xml",
"classpath*:/spring/spring-transaction.xml",
"classpath*:/spring_service/person/spring-Person-provider.xml",
"classpath*:/spring_service/spring-dubbo.xml",
"classpath*:/spring-auth/spring-config.xml"
});
cxt.start();
LOG.info("啓動成功");
personServiceClient=(PersonServiceClient)cxt.getBean("personServiceClient");//這裏要和spring裏面的一致,第6標題圖片中的2
PersonDto personDto=personServiceClient.selectByName("00575050");
System.err.println(personDto.getUserName()+personDto.getTrueName()+personDto.getProduct());
}
}