國外做燈的網(wǎng)站市場(chǎng)推廣方案
示例代碼
提示
查看 JPetstore 6 demo 了解如何在完整的 Web 應(yīng)用服務(wù)器上使用 Spring。
您可以在 MyBatis-Spring 的 代碼倉庫 中查看示例代碼:
所有示例都能在 JUnit 5 下運(yùn)行。
示例代碼演示了事務(wù)服務(wù)從數(shù)據(jù)訪問層獲取域?qū)ο蟮牡湫驮O(shè)計(jì)。
FooService.java
作為服務(wù):
@Transactional
public class FooService {private final UserMapper userMapper;public FooService(UserMapper userMapper) {this.userMapper = userMapper;}public User doSomeBusinessStuff(String userId) {return this.userMapper.getUser(userId);}}
它是一個(gè)事務(wù) bean,所以當(dāng)調(diào)用它的任何方法時(shí),事務(wù)被啟動(dòng),在方法結(jié)束且沒有拋出任何未經(jīng)檢查的異常的時(shí)候事務(wù)將會(huì)被提交。注意,事務(wù)的行為可以通過 @Transactional
的屬性進(jìn)行配置。這不是必需的;你可以使用 Spring 提供的任何其他方式來劃分你的事務(wù)范圍。
此服務(wù)調(diào)用使用 MyBatis 構(gòu)建的數(shù)據(jù)訪問層.。該層只包含一個(gè)接口,UserMapper.java
,這將被 MyBatis 構(gòu)建的動(dòng)態(tài)代理使用,在運(yùn)行時(shí)通過 Spring 注入到服務(wù)之中。
public interface UserMapper {User getUser(String userId);}
注意,為了簡(jiǎn)單起見,我們使用了接口 UserMapper.java
。在使用 DAO 的場(chǎng)景中,一個(gè) DAO 類應(yīng)該分為一個(gè)接口和一個(gè)實(shí)現(xiàn)類?;氐竭@個(gè)例子里,準(zhǔn)確來說,這個(gè)接口應(yīng)該叫 UserDao.java
。
我們將看到不同的方法來發(fā)現(xiàn)映射器接口,將其注冊(cè)到 Spring 并將其注入到服務(wù) bean 中:
測(cè)試場(chǎng)景
樣例測(cè)試 | 描述 |
---|---|
SampleMapperTest.java | 演示基于 MapperFactoryBean 的基本配置,這將動(dòng)態(tài)構(gòu)建 UserMapper 的一個(gè)實(shí)現(xiàn)。 |
SampleScannerTest.java | 演示如何使用 MapperScannerConfigurer 來自動(dòng)發(fā)現(xiàn)項(xiàng)目中所有的映射器。 |
SampleSqlSessionTest.java | 演示如何基于 Spring 管理的 SqlSession 手動(dòng)編寫 DAO,并在 UserDaoImpl.java 中提供你自己的實(shí)現(xiàn)。 |
SampleEnableTest.java | 演示如何使用 Spring 的 @Configuration 和 @MapperScann 注解來自動(dòng)發(fā)現(xiàn) mappers. |
SampleNamespaceTest.java | 演示如何使用自定義 MyBatis XML 命名空間. |
SampleJavaConfigTest.java | 演示如何基于 Spring 的 @Configuration 來手工創(chuàng)建 MyBatis 的 bean。 |
SampleJobJavaConfigTest.java | 演示如何在 Java 配置中使用 Spring Batch 中的 ItemReader 和 ItemWriter 。 |
SampleJobXmlConfigTest.java | 演示如何在 XML 配置中使用 Spring Batch 中的 ItemReader 和 ItemWriter 。 |
查看不同的 applicationContext.xml
文件以了解 MyBatis-Spring 在實(shí)踐中是如何運(yùn)用的。