首页 资讯 社群 我的社区 搜索

微服务 : 使用eclipse 来搭建一个简单的微服务

LM123
2019-05-05 17:11:36

下载地址:https://download.csdn.net/download/qq_18430613/10642372

1.先看看整体项目的一个架构,parent 项目父依赖包,用于管理我们的依赖,provider 服务提供方,consumer 消费者。

2.创建parent 项目

1)创建无骨架的maven pom项目

2)修改pom包 如下步骤:

https://projects.spring.io/spring-cloud/ 修改maven parent

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

<dependencyManagement>
        <dependencies>

<!-- 添加spring-cloud 依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

<!-- 定义JDK编译环境 -->

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

<!-- 添加子模板 -->

<modules>
        <module>../provider</module>
    </modules>

3.添加provider 服务提供项目

右键选择》new 》spring-start-project


修改provider服务提供方pom文件如下:

修改application.properties文件为yml 文件(红色部分为大小写转换)

编写代码部分:

@Service
public class UserServiceImpl implements UserService {
	
	@Autowired
	private UserMapper userMapper;
 
	@Override
	public UserInfo getUserInfo(Integer userId) {
		return userMapper.getUserById(userId);
	}
 
}
 
 
@Mapper
public interface UserMapper {
	
	@Select("SELECT user_id,user_name,user_birth FROM tb_user WHERE user_id = #{userId}")
	public UserInfo getUserById(@Param(value = "userId") Integer userId);
 
}
 
 
public class UserInfo implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Integer userId;
	private String userName;
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date userBirth;
	
	public Integer getUserId() {
		return userId;
	}
	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public Date getUserBirth() {
		return userBirth;
	}
	public void setUserBirth(Date userBirth) {
		this.userBirth = userBirth;
	}
	
}

服务提供方到此完成 可以启动访问:http://localhost:8080/book/books

4.添加消费consumer项目,直接复制provide修改相关文件如下

provider-consumer pom文件修改

添加代码部分:

@SpringBootApplication
@RestController
public class ProviderApplication {
	
	@Value("${spring.application.name}")
	private String applicationName;
	
	@Bean
	public RestTemplate restTemplate() {
		return new RestTemplate();
	}
 
	public static void main(String[] args) {
		SpringApplication.run(ProviderApplication.class, args);
	}
	
}
 
@RestController
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	private RestTemplate restTemplate;
 
	@RequestMapping("/warp/get/{userId}")
	public UserInfo getUser(@PathVariable Integer userId) {
		return restTemplate.getForObject("http://localhost:8099/user/get/"+userId, UserInfo.class);
	}
}
 
public class UserInfo implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Integer userId;
	private String userName;
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date userBirth;
	
	public Integer getUserId() {
		return userId;
	}
	public void setUserId(Integer userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public Date getUserBirth() {
		return userBirth;
	}
	public void setUserBirth(Date userBirth) {
		this.userBirth = userBirth;
	}
	
}
 
//application.yml文件
server:
  port: 8100
 
spring:
  application:
    name: provider-consumer

测试:http://localhost:8100/user/warp/get/1

用户评论