通用的 CURD controller service 层
主要用于:controller 指定固定的 curd 地址 和 简单通用
spring boot 通用 mapper 测试
pom.xml
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--添加tk-mapper依赖-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
启动类
@SpringBootApplication
@MapperScan(basePackages = "com.example.dao")
public class ServiceTestApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceTestApplication.class);
}
}
大体结构
dao
public interface UserDao extends BaseMapper<UserPOJO> {
}
通用 service 和 impl
BaseService
public interface BaseService<T> {
//根据id 查询
T selectById(Integer id);
//可以添加 增删改 ...
}
BaseServiceImpl
//T 是 POJO TD 是 POJO 的 dao 不过必须要继承 BaseMapper
public class BaseServiceImpl<T, TD extends BaseMapper<T>> implements BaseService<T> {
@Resource
private TD td;
@Override
public T selectById(Integer id) {
return td.selectByPrimaryKey(id);
}
}
普通 service 和 impl 没有任何方法 定义壳子
//普通 service
public interface UserService extends BaseService<UserPOJO> {
}
//普通 serviceImpl
@Service
public class UserServiceImpl extends BaseServiceImpl<UserPOJO, UserDao> implements UserService {
}
通用 controller
public class BaseController<T, TS extends BaseService<T>> {
@Autowired
private TS ts;
@GetMapping("/{id}")
T selectById(@PathVariable Integer id) {
return ts.selectById(id);
}
}
普通 controller
@RestController
@RequestMapping("/user")
public class UserController extends BaseController<UserPOJO, UserService> {
}
进行访问: http://localhost:8081/user/4