springcloud写法(含熔断,负载均衡)

1、创建工程,maven然后选quicstart。项目名common-xxxx(公共模块)。Projectlocation中写文件夹地址,Module name写项目名。

2、建立数据库连接,写sql脚本。在common-xxxx中的src,java。。。下创建vo文件,在里面写实体类,写序列化 implements serializable,写tostring方法。

3、点右边侧边栏Maven Projects,点common-xxxx 中的install运行它(打公共组件)。

4、 从springInitializr 中创建eureka-server 选Web里的 spring web和spring Cloud Discovery 里的Eureka Server.

5、在eureka-server中的resources中的application中写配置文件:

server.port=8761
Spring.appliaction.name=eureka-server
Eureka.client.register-with-eureka=false
Eureka.client.fetch-registry=false
Eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

6、在eureka-server中java的src的EurekaServerApplication中上部注解@EnableEurekaServer(开启服务的意思)

7、运行EurekaServerApplication,看是否有错误

8、用maven springInitializr创建新项目,命名用eureka-provider-one (提供者)开头,下一步。选web spring web,SQL MySQL Driver、JDBC API、MyBatis Framework,spring cloud Discovery Eureka Discovery Client。

9、在 provider-0ne 的pom里加一个架包,输入关键字common就行。加分页架包(需要分页的情况下)

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper-spring-boot-starter</artifactId>		
                <version>1.2.3</version>
</dependency>
改musql库改为
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

10、在provider-one项目下建立service文件夹,建立实体类的service接口,查询所有用List<Map<String,Object>> 方法名(实体类 实体类别名)多对一括号里才有参数。
根据Id查详情,写作 Map<String,Object> infoData(Student student);
如果有分页,写作PageInfo<Map<String,Object>> showPage(Integer pageNo,实体类名 实体类重命名);

11、在ptovider-one 的java中创建mapper文件夹,写mapper接口,在接口内的接口方法上方写相应注解和sql语句查询条件。List集合上不能写sql语句。
curdate() 函数:返回当前的日期。用于add的sql语句获取日期。
如果有分页,写作PageInfo<Map<String,Object>> showPage(Integer pageNo,实体类名 实体类重命名);。
**********在service文件夹中写service接口的实现类。配注解@Service,@Transactional(上部)。里面加注解@Autowired 分别私有化XXXmapper接口,并重命名。返回 重命名.方法名();有参就带参。查单条info,写:

public Map<String, Object> infoData(Student student) {
        		Map<String ,Object> map = new HashMap<>();
       		 map.put("stu",studentMapper.showData(student).get(0));
       		 return studentMapper.showData(student).get(0);
 		  }

实现类一对多。上部注解@Service 下部注解@Autowired 。
如果有分页,写作:

PageHelper.startPage(pageNo,4);    // 数字是一页显示的条数
 List<Map<String ,Object>> list=invitationMapper.optionData(inv);   //与集合相同接口名,同方法名参数
 rerurn new PageInfo<Map<String, Object>>(list); 

12、在provider-one项目中的resources文件夹下创建文件夹mapper,建立文件XXXmapper.xml 。namespace写mapper文件夹中的多对一的接口类路径。 select id 写接口方法名,showdata,parameterType写实体类名,resyltType写map,然后写查询方法。列名 like concat(’%’,#{列名},’%’)模糊查询所用。order by 。。。。desc 降序排列。

13、在provider-one项目的Java文件夹中创建controller文件夹创建CenterController类,里面写service实现类,内容为serviceImpl里的所有接口实现。不需要写implements和接口名。先上部写注解@RestController,内部写注解@Autowired 私有化service接口 重命名。 所有接口方法公共化,上部加注解@RequestMapping(“/方法名。do”), 返回值为 重命名.方法名()。有参带参。info方法写法:

public Map<String, Object> infoData(Student student) {
    return studentFeign.infoData(student);
  }

,与查询全部的方法,只是方法名不同。分页的返回值 私有化的接口重命名 .对应方法名(pageNo,类别名)。

14、在provider-one项目的java文件夹中的EurekaProviderApplication上部写注解@MapperScan(“cn.kgc.mapper”)
@EnableEurekaClient

14、在provider-one项目的resources文件夹中的application写配置:

server.port=8762

spring.application.name=provider

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/数据库名
spring.datasource.username=root
spring.datasource.password=123
mybatis.type-aliases-package=cn.kgc.vo
mybatis.mapper-locations=classpath:mapper/*.xml

15、用maven springInitializr创建新项目,命名用eureka-provider-two 开头,下一步。选web spring web,SQL MySQL Driver、JDBC API、MyBatis Framework,spring cloud Discovery Eureka Discovery Client。

16、在provider-two 项目中的resources文件夹中的application文件与provider-one相同,只需要改端口号为8763。

17、provider-two 项目中java文件夹下结构与内容与provider-one一致,直接贴provider-one的就行。Resources文件夹下的mapper文件与provider-one内容一致。provider-two 下pom.xml文件内容与provider-one一致。

18、maven springInitializer 建立项目eureka-consumer(调用者)。Web spring web,Spring Cloud Discovery Eureka Discovery Client,Spring Colud Routing Openfeign。

19、建立feign文件夹写,写接口类xxxxFeign,内容为one项目下CenterController类相同,其中,删掉上部注解@RestController。加注解@FeignClient(name=“provider”)(提供者的名字),删掉私有化内容,将 public后的类型改为String,删掉方法后的返回值内容,也就是花括号的全部。在pom.xml文件中加common架包。Common-类名(多对一的类)
分页写作public String showPage(@RequestParam(“pageNo”) Integer pageNo, @RequestBody Members members) ; 要加@RequestParam,@RequestBody这两个注解

20、在eureka-consumer项目下的java文件夹中的feign文件夹下建立xxxx(实体类名)FeignFallBack类在xxxxFeign类中的注解@FeignClient(name=“provider”,fallback=实体类类名FeignFallBack.class)。xxxxFeignFallBack类实现xxxFeign的接口。上部加注解@Component。 下部不能写 @Autowired,不能写私有化接口名
返回值按照方法不同为各种 操作不成功的失败的提示。

21、在eureka-consumer项目下java文件夹下建立Controller文件夹,写CenterController类。上部加注解@RestController ,内部加注解@Autowired,私有化 xxxxFeign接口 重命名。内容与one项目下CenterController类相同,只是将 public后的类型改为String,返回值 改为 xxxFeign.方法名()有参的就带参。

修改EurekaConsumerApplication文件,加上部注解@EnableEurekaClient,@EnableFeignClients。
如果提示: ‘url’ attribute is not specified and no embedded datasource could be configured.
那么就在@SpringBootApplication后加:(exclude = {DataSourceAutoConfiguration.class})

22、在eureka-consumer项目下resources文件夹下的application文件,贴One项目的同名文件。修改端口号为8764 修改application.name=consumer。删掉数据库相关,和其下面部分内容。添加feign.hystrix.enabled=true(开启熔断),
provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule.(负载均衡)

22、maven sprigInitializr 建立项目eureka-zuul(网关)。选web spring web,Spring Cloud Discovery Eureka Discovery Client,Spring Cloud Routing Zuul。打开java文件夹打开EurekaZuulApplication,加上部注解@EnableEurekaClient,@EnableZuulProxy。 resources文件夹下application贴consumer项目中的同名文件。修改端口号为8765。application.name=zuul。删掉feign和provider.ribbon。添加

zuul.routes.provider=/pro/**/
zuul.routes.consumer=/con/**/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值