使用 Maven 完成 service 层
# 112.使用 Maven 完成 service 层
上一篇我们完成了 dao 层的代码,这一节我们来完成 service 层的
# 新建 service 接口
package com.peterjxl.service;
public interface ItemsService {
String findById(Integer id);
}
1
2
3
4
5
6
2
3
4
5
6
# 新建 service 实现类
由于我们目前 service 层没有什么业务逻辑,直接返回 dao 的查询结果即可:
package com.peterjxl.service.impl;
import com.peterjxl.dao.ItemsDao;
import com.peterjxl.domain.Items;
import com.peterjxl.service.ItemsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ItemServiceImpl implements ItemsService {
@Autowired
private ItemsDao itemsDao;
@Override
public Items findById(Integer id) {
return itemsDao.findById(id);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 配置 service
我们在 Spring 的配置文件加入如下配置:
<!-- service层配置开始 -->
<!-- 扫描service包下所有使用注解的类型,并交给 Spring 管理 -->
<context:component-scan base-package="com.peterjxl.service"/>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务的通知 -->
<tx:advice id="active">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 配置事务切入(切面) -->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.peterjxl.service.impl.*.*(..))"/>
<aop:advisor advice-ref="active" pointcut-ref="pointcut"/>
</aop:config>
<!-- service层配置结束 -->
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 添加测试方法
在测试类中,新增测试代码:
//service测试
ItemsService itemsService = ac.getBean(ItemsService.class);
Items items1 = itemsService.findById(1);
System.out.println(items1);
1
2
3
4
2
3
4
输出结果和之前是一样的。
# 源码
本项目已将源码上传到 Gitee (opens new window) 和 GitHub (opens new window) 上。并且创建了分支 demo5Service,读者可以通过切换分支来查看本文的示例代码
上次更新: 2024/10/1 19:22:42