前言
类似之前dubbo的小例子,本文接着对SSM与SpringCloud、SpringBoot进行整合,并集成Eureka、Feign与Hystrix,这些都是SpringCloud中的套件,使用起来非常方便。
1、cloudserver
服务端的项目结构如下:
服务端包括Eureka注册中心以及登录服务loginserver,分开放完全也是可以的。
1.1 Eureka服务注册中心
服务注册中心的核心代码包括以下两个部分:
服务中心启动类
package com.jhz.cloudserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class CloudserverApplication {
public static void main(String[] args) {
SpringApplication.run(CloudserverApplication.class, args);
}
}
只需要加个@EnableEurekaServer注解,即可标记为服务中心的启动类(对比zookeeper实在方便太多了)
applcation.yml
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eurka-server
在applcation.yml中配置下端口号和地址就搞定了,接着启动服务注册中心,输入localhost:8671,
即可看到服务治理中心,这里的down表示下线的服务。
1.2 登录服务
如图,登录服务主要负责对登录信息的验证以及与数据库的交互,整合了SSM框架,与之前的dubbo一样,但是可以发现,使用SpringBoot来管理这些框架,基本不需要什么配置文件,只需要一个application.yml即可:
server:
port: 8762
spring:
application:
name: service-login
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
#mybatis配置
spring.datasource.url: "jdbc:mysql://localhost:3306/chatmarket?useSSL=false"
spring.datasource.username: "root"
spring.datasource.password: "root"
spring.datasource.driver-class-name: com.mysql.jdbc.Driver
mybatis.type-aliases-package: "com.jhz.pojo"
mybatis.mapper-locations: "classpath*:/mappers/**Mapper.xml"
这里定义的暴露服务的端口、服务名、服务治理中心以及mybatis的配置,spring的配置都可以通过注