这是接上一篇博客ssm框架搭建(一)-Dao层搭建-mybatis,有需要请跳转:ssm框架搭建(一)-Dao层搭建-mybatis
Service层主要是写业务逻辑。
还是先上文件结构图
Service接口类:UserService.java
package com.ssm.service;
import com.ssm.entity.User;
/**
* @author zx
* @Date 2017年10月11日 上午8:47:57
* @Class UserService.java
*/
public interface UserService {
/**
* 通过userId查询User
* @author zx
* @date 2017年10月11日 上午8:49:10
* @param userId
* @return
*/
User queryUserByUserId(int userId);
}
Service接口实现类:UserService.java
package com.ssm.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ssm.dao.UserDao;
import com.ssm.entity.User;
import com.ssm.service.UserService;
/**
* @author zx
* @Date 2017年10月11日 上午8:49:58
* @Class UserServiceImpl.java
*/
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;
@Override
public User queryUserByUserId(int userId) {
// TODO Auto-generated method stub
User user = userDao.queryUserByuserId(userId);
return user;
}
}
spring中的配置:spring-service.xml(事务管理器,如果项目中有需要就配置,只需要在Service实现类中加上注解@Transactional即可,如果不需要可以不配置)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 扫描service包下所有使用注解的类型-->
<context:component-scan base-package="com.ssm.service"></context:component-scan>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 注入数据库的链接池 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 配置基于注解的声明式事务
默认使用注解来管理事务行为
-->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
测试类:UserServiceTest.java
package com.ssm.service;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.ssm.entity.User;
/**
* @author zx
* @Date 2017年10月11日 上午8:57:28
* @Class UserServiceTest.java
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"classpath:spring/spring-dao.xml",
"classpath:spring/spring-service.xml"})
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testQueryUserByUserId() {
int userId = 1;
User user = userService.queryUserByUserId(userId);
System.out.println(user.getUserName());
}
}