21-服务提供者 user
目录
本节课我们来实现服务提供者 user,user 为系统提供用户相关服务,包括添加用户、查询用户、删除用户,具体实现如下所示。
在父工程下创建建名为 user 的 Module,pom.xml 添加相关依赖
user 配置文件从 Git 仓库拉取,所以需要添加 Spring Cloud Config 相关依赖;同时需要访问数据库,因此还要添加 MyBatis 相关依赖
<!-- eurekaclient --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!-- 配置中心 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> <!-- MySQL 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency>
在 resources 目录下创建 bootstrap.yml,在该文件中配置拉取 Git 仓库相关配置文件的信息
spring: cloud: config: name: user # 对应的配置文件名称 label: master # Git仓库分支名 discovery: enabled: true serviceId: configserver # 连接的配置中心名称 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/
在 Git 仓库配置文件 order.yml 中添加配置信息,服务提供者 user 集成 MyBatis 环境
server: port: 8050 spring: application: name: user datasource: name: orderingsystem url: jdbc:mysql://localhost:3306/orderingsystem?useUnicode=true&characterEncoding=UTF-8 username: root password: 123456 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true mybatis: mapper-locations: classpath:mapping/*.xml type-aliases-package: com.southwind.entity
创建entity包,新建 User 类,对应数据表 t_user
@Data public class User { private long id; private String username; private String password; private String nickname; private String gender; private String telephone; private Date registerdate; private String address; }
新建 UserVO 类为 layui 框架提供封装类
@Data public class UserVO { private int code; private String msg; private int count; private List<User> data; }
创建 repository 包,新建 UserRepository 接口
public interface UserRepository { List<User> findAll(int index, int limit); int count(); void save(User user); void deleteById(long id); }
在 resources 目录下创建 mapping 文件夹,存放 Mapper.xml
新建 UserRepository.xml,编写 UserRepository 接口方法对应的 SQL
<mapper namespace="com.southwind.repository.UserRepository"> <select id="findAll" resultType="User"> select * from t_user order by id limit #{param1},#{param2} </select> <select id="count" resultType="int"> select count(*) from t_user </select> <insert id="save" parameterType="User"> insert into t_user(username,password,nickname,gender,telephone,registerdate,address) values(#{username},#{password},#{nickname},#{gender},#{telephone},#{registerdate},#{address}) </insert> <delete id="deleteById" parameterType="long"> delete from t_user where id = #{id} </delete> </mapper>
将 Mapper 注入,在启动类添加注解
@MapperScan("com.southwind.repository")
新建 UserHandler,将 UserRepository 通过 @Autowired 注解进行注入,完成相关业务逻辑
@RestController @RequestMapping("/user") public class UserHandler { @Autowired private UserRepository userRepository; @GetMapping("/findAll/{page}/{limit}") public UserVO findAll(@PathVariable("page") int page, @PathVariable("limit") int limit){ UserVO userVO = new UserVO(); userVO.setCode(0); userVO.setMsg(""); userVO.setCount(userRepository.count()); userVO.setData(userRepository.findAll((page-1)*limit,limit)); return userVO; } @PostMapping("/save") public void save(@RequestBody User user){ user.setRegisterdate(new Date()); userRepository.save(user); } @DeleteMapping("/deleteById/{id}") public void deleteById(@PathVariable("id") long id){ userRepository.deleteById(id); } }
依次启动注册中心、configserver、UserApplication。调用接口
curl -X GET http://localhost:8050/user/findAll/1/100 curl -X POST http://localhost:8050/user/save -d '{"username":"tuyrk","password":"123456","nickname":"神秘的小岛岛","gender":"男","telephone":"18382471393","address":"三色路"}' -H "Content-Type: application/json" curl -X DELETE http://localhost:8050/user/deleteById/6
总结
本节课我们讲解了项目实战 user 模块的搭建,作为一个服务提供者,user 为整个系统提供用户服务,包括添加用户、查询用户、删除用户。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com
文章标题:21-服务提供者 user
文章字数:928
本文作者:神秘的小岛岛
发布时间:2020-07-14, 11:43:06
最后更新:2020-07-14, 23:02:05
原始链接:https://www.tuyrk.cn/gitchat/springcloud-minimal/21-provider-user/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。