SpringCloud(第 001 篇)简单用户微服务
一、大致介绍
通过 RestAPI 接口 /simple/{id} 来简单获取 H2 数据库中的用户信息,并且数据库中的字段与实体 User 类的字段相互映射 。
二、实现步骤
2.1 添加 maven 引用包
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <artifactId>springms-simple-provider-user</artifactId> 8 <version>1.0-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <parent> 12 <groupId>com.springms.cloud</groupId> 13 <artifactId>springms-spring-cloud</artifactId> 14 <version>1.0-SNAPSHOT</version> 15 </parent> 16 17 <dependencies> 18 <!-- 访问数据库模块 --> 19 <dependency> 20 <groupId>org.springframework.boot</groupId> 21 <artifactId>spring-boot-starter-data-jpa</artifactId> 22 </dependency> 23 24 <!-- web模块 --> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-web</artifactId> 28 </dependency> 29 30 <!-- h2数据库模块 --> 31 <dependency> 32 <groupId>com.h2database</groupId> 33 <artifactId>h2</artifactId> 34 <scope>runtime</scope> 35 </dependency> 36 37 <!-- 支持Apache Solr搜索平台,包括spring-data-solr --> 38 <dependency> 39 <groupId>org.springframework.boot</groupId> 40 <artifactId>spring-boot-starter-data-solr</artifactId> 41 </dependency> 42 </dependencies> 43 44</project>
2.2 添加应用配置文件(springms-simple-provider-user\src\main\resources\application.yml)
1server: 2 port: 8000 3spring: 4 application: 5 name: springms-simple-provider-user #全部小写 6 jpa: 7 generate-ddl: false 8 show-sql: true 9 hibernate: 10 ddl-auto: none 11 datasource: 12 platform: h2 13 schema: classpath:schema.sql 14 data: classpath:data.sql 15logging: 16 level: 17 root: INFO 18 org.hibernate: INFO 19 org.hibernate.type.descriptor.sql.BasicBinder: TRACE 20 org.hibernate.type.descriptor.sql.BasicExtractor: TRACE 21 com.springms: DEBUG 22
2.3 添加 H2 数据库脚本(springms-simple-provider-user\src\main\resources\schema.sql)
1drop table user if exists; 2 3CREATE TABLE USER( 4 id BIGINT GENERATED by default as identity, 5 username VARCHAR(40), 6 name VARCHAR(20), 7 age int(3), 8 balance DECIMAL(10, 2), 9 PRIMARY KEY(id) 10); 11
2.4 插入 H2 数据库一些初始化数据(springms-simple-provider-user\src\main\resources\data.sql)
1INSERT into user (id, username, name, age, balance) values (1, 'user1', '张三', 20, 100.00); 2INSERT into user (id, username, name, age, balance) values (2, 'user2', '李四', 22, 100.00); 3INSERT into user (id, username, name, age, balance) values (3, 'user3', '王五', 24, 100.00); 4INSERT into user (id, username, name, age, balance) values (4, 'user4', '赵六', 26, 100.00); 5INSERT into user (id, username, name, age, balance) values (5, 'user5', '李逵', 27, 100.00); 6INSERT into user (id, username, name, age, balance) values (6, 'user6', '张远', 10, 100.00); 7INSERT into user (id, username, name, age, balance) values (7, 'user7', '迪拜', 60, 100.00); 8INSERT into user (id, username, name, age, balance) values (8, 'user8', '哈士奇', 40, 100.00); 9INSERT into user (id, username, name, age, balance) values (9, 'user9', '关羽', 30, 100.00); 10
2.5 添加访问底层数据模型的DAO接口(springms-simple-provider-user\src\main\java\com\springms\cloud\repository\UserRepository.java)
1package com.springms.cloud.repository; 2 3import com.springms.cloud.entity.User; 4import org.springframework.data.jpa.repository.JpaRepository; 5import org.springframework.stereotype.Repository; 6 7@Repository 8public interface UserRepository extends JpaRepository<User, Long> { 9 10} 11
2.6 添加实体用户类User(springms-simple-provider-user\src\main\java\com\springms\cloud\entity\User.java)
1package com.springms.cloud.entity; 2 3import java.math.BigDecimal; 4 5import javax.persistence.Column; 6import javax.persistence.Entity; 7import javax.persistence.GeneratedValue; 8import javax.persistence.GenerationType; 9import javax.persistence.Id; 10 11@Entity 12public class User { 13 @Id 14 @GeneratedValue(strategy = GenerationType.AUTO) 15 private Long id; 16 17 @Column 18 private String username; 19 20 @Column 21 private String name; 22 23 @Column 24 private Short age; 25 26 @Column 27 private BigDecimal balance; 28 29 public Long getId() { 30 return this.id; 31 } 32 33 public void setId(Long id) { 34 this.id = id; 35 } 36 37 public String getUsername() { 38 return this.username; 39 } 40 41 public void setUsername(String username) { 42 this.username = username; 43 } 44 45 public String getName() { 46 return this.name; 47 } 48 49 public void setName(String name) { 50 this.name = name; 51 } 52 53 public Short getAge() { 54 return this.age; 55 } 56 57 public void setAge(Short age) { 58 this.age = age; 59 } 60 61 public BigDecimal getBalance() { 62 return this.balance; 63 } 64 65 public void setBalance(BigDecimal balance) { 66 this.balance = balance; 67 } 68} 69
2.7 添加用户Web访问层Controller(springms-simple-provider-user\src\main\java\com\springms\cloud\controller\MsSimpleProviderUserController.java)
1package com.springms.cloud.controller; 2 3import com.springms.cloud.entity.User; 4import com.springms.cloud.repository.UserRepository; 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.web.bind.annotation.GetMapping; 7import org.springframework.web.bind.annotation.PathVariable; 8import org.springframework.web.bind.annotation.RestController; 9 10/** 11 * 用户微服务Controller。 12 * 13 * @author hmilyylimh 14 * 15 * @version 0.0.1 16 * 17 * @date 2017/9/17 18 * 19 */ 20@RestController 21public class MsSimpleProviderUserController { 22 23 @Autowired 24 private UserRepository userRepository; 25 26 @GetMapping("/simple/{id}") 27 public User findById(@PathVariable Long id) { 28 return this.userRepository.findOne(id); 29 } 30} 31 32
2.8 添加简单用户微服务启动类(springms-simple-provider-user\src\main\java\com\springms\cloud\MsSimpleProviderUserApplication.java)
1package com.springms.cloud; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6/** 7 * 简单用户微服务类。 8 * 9 * @author hmilyylimh 10 * 11 * @version 0.0.1 12 * 13 * @date 2017/9/17 14 * 15 */ 16@SpringBootApplication 17public class MsSimpleProviderUserApplication { 18 19 public static void main(String[] args) { 20 SpringApplication.run(MsSimpleProviderUserApplication.class, args); 21 System.out.println("【【【【【【 简单用户微服务 】】】】】】已启动."); 22 } 23} 24
三、测试
1/**************************************************************************************** 2 一、简单用户微服务接口测试: 3 4 1、启动 springms-simple-provider-user 模块服务,启动1个端口; 5 2、在浏览器输入地址 http://localhost:8000/simple/1 可以看到信息成功的被打印出来。; 6 ****************************************************************************************/
四、下载地址
https://gitee.com/ylimhhmily/SpringCloudTutorial.git
SpringCloudTutorial交流QQ群: 235322432
SpringCloudTutorial交流微信群: 微信沟通群二维码图片链接
欢迎关注,您的肯定是对我最大的支持!!!