3 在线学习接口 3.1 需求分析
根据下边的业务流程,本章节完成前端学习页面请求学习服务获取课程视频地址,并自动播放视频。
Java的新项目学成在线笔记-day15(七)_第1张图片
3.2 搭建开发环境
3.2.1 创建数据库
创建xc_learning数据库,学习数据库将记录学生的选课信息、学习信息。
导入:资料/xc_learning.sql
3.2.2 创建学习服务工程
Java的新项目学成在线笔记-day15(七)_第2张图片
参考课程管理服务工程结构,创建学习服务工程:


pom.xml 
[mw_shl_code=applescript,true]                 org.springframework.cloud           spring‐cloud‐starter‐netflix‐eureka‐client                        com.squareup.okhttp3         okhttp
    
[/mw_shl_code]
[mw_shl_code=applescript,true]             org.springframework.cloud             spring‐cloud‐starter‐openfeign                       com.netflix.feign         feign‐okhttp         8.18.0                   com.xuecheng         xc‐service‐api         1.0‐SNAPSHOT                   com.xuecheng         xc‐framework‐model         1.0‐SNAPSHOT                   com.xuecheng         xc‐framework‐utils         1.0‐SNAPSHOT                   com.xuecheng         xc‐framework‐common         1.0‐SNAPSHOT                   org.springframework.boot         spring‐boot‐starter‐web                   mysql         mysql‐connector‐java                   com.alibaba         druid‐spring‐boot‐starter         1.1.10                   com.alibaba         druid                   org.mybatis.spring.boot         mybatis‐spring‐boot‐starter                   com.github.pagehelper
        pagehelper‐spring‐boot‐starter
                org.springframework         spring‐orm         ${springframework.version}  
       
    
     org.springframework.boot       
  spring‐boot‐starter‐data‐jpa  
      
      
     com.alibaba      
   fastjson  
    
        
     commons‐io     
    commons‐io
       
        
    org.apache.commons     
    commons‐lang3  
      
      
     org.springframework.boot   
      spring‐boot‐starter‐test   
   
         
    org.springframework.boot     
    spring‐boot‐starter‐amqp  
    
[/mw_shl_code]
[mw_shl_code=applescript,true]server:   port: ${PORT:40600} spring:   application:  
   name: xc‐service‐learning   datasource:  
   druid:       url: ${MYSQL_URL:jdbc:mysql://localhost:3306/xc_learning?characterEncoding=utf‐8}   
    username: root     
  password: mysql      
driverClassName: com.mysql.jdbc.Driver  
     initialSize: 5  #初始建立连接数量  
     minIdle: 5  #最小连接数量      
maxActive: 20 #最大连接数量   
    maxWait: 10000  #获取连接最大等待时间,毫秒  
     testOnBorrow: true #申请连接时检测连接是否有效   
    testOnReturn: false #归还连接时检测连接是否有效  
     timeBetweenEvictionRunsMillis: 60000 #配置间隔检测连接是否有效的时间(单位是毫秒)
minEvictableIdleTimeMillis: 300000  #连接在连接池的最小生存时间(毫秒) eureka:   client:  
   registerWithEureka: true #服务注册开关     fetchRegistry: true #服务发现开关 
    serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址,多个中间用逗号分隔   
    defaultZone: ${EUREKA_SERVER:http://localhost:50101/eureka/}   instance:  
   prefer‐ip‐address:  true  #将自己的ip地址注册到Eureka服务中    
ip‐address: ${IP_ADDRESS:127.0.0.1}  
   instance‐id: ${spring.application.name}:${server.port} #指定实例id ribbon:  

MaxAutoRetries: 2 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试,如果eureka中找不 到服务则直接走断路器
MaxAutoRetriesNextServer: 3 #切换实例的重试次数
OkToRetryOnAllOperations: false #对所有操作请求都进行重试,如果是get则可以,如果是post,put等操作 没有实现幂等的情况下是很危险的,所以设置为false ConnectTimeout: 5000 #请求连接的超时时间
ReadTimeout: 6000 #请求处理的超时时间
[/mw_shl_code]
启动类:


[mw_shl_code=applescript,true]@EnableDiscoveryClient @EnableFeignClients @SpringBootApplication @EntityScan("com.xuecheng.framework.domain.learning")//扫描实体类 @ComponentScan(basePackages={"com.xuecheng.api"})//扫描接口 @ComponentScan(basePackages={"com.xuecheng.learning"})//扫描接口 @ComponentScan(basePackages={"com.xuecheng.framework"})//扫描common下的所有类 public class LearningApplication {  
     public static void main(String[] args) throws Exception {     
    SpringApplication.run(LearningApplication.class, args);  
   }     
  @Bean     
@LoadBalanced   
  public RestTemplate restTemplate() {   
      return new RestTemplate(new OkHttp3ClientHttpRequestFactory());   
  }   }[/mw_shl_code]