广告投放系统启动主类说明
/**
* SponsorApplication for 广告赞助商/投递服务启动类
* 添加注解{@link EnableFeignClients}之后,当前微服务就可以调用别的微服务,
* 但是当前服务是广告提供,不需要调用别的微服务,在此只是为了在dashboard中监控
* {@link EnableCircuitBreaker} 也是为了dashboard监控
*
* @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang</a>
* @since 2019/6/15
*/
@EnableDiscoveryClient //开启服务发现Eureka Client
@EnableCircuitBreaker //开启断路器
@EnableFeignClients //开启feign client,使其可以通过HTTP调用其他微服务
@SpringBootApplication
public class SponsorApplication {
public static void main(String[] args) {
SpringApplication.run(SponsorApplication.class, args);
}
}
配置信息
server:
port: 7000
servlet:
context-path: /ad-sponsor #http请求的根路径(请求前缀,在handle的mapping之前,需要127.0.0.1/ad-sponsor/XXXX)
spring:
application:
name: mscx-ad-sponsor
jpa:
show-sql: true #执行时是否打印sql语句,方便调试
hibernate:
ddl-auto: none
properties:
hibernate.format_sql: true
open-in-view: false #控制是否在懒加载时,有可能会找不到bean报错
datasource:
username: ***
url: jdbc:mysql://127.0.0.1:3306/advertisement?useSSL=false&autoReconnect=true
password: ***
tomcat:
max-active: 4 #最大连接数
min-idle: 2 #最小空闲连接数
initial-size: 2 #默认初始化连接数
eureka:
client:
service-url:
defaultZone: http://server1:7777/eureka/,http://server2:8888/eureka/,http://server3:9999/eureka/
创建实体对象

实体类和数据库表一般是一一对应,通常称之为entity,以用户表为例:Lombok传送门

/**
* AdUser for 数据库ad_user表对应的实体类
* {@link Basic} 标示为数据库的字段信息,如果需要一个不属于数据库的字段,标注为 {@link Transient}
*
* @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang</a>
* @since 2019/6/15
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "ad_user")
public class AdUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id", nullable = false)
private Long userId; @Basic //不写的话,默认就是@Basic,表示是数据库表的一个字段
//@Transient //如果打上@Transient 注解,表明当前字段不是表中的字段
@Column(name = "user_name", nullable = false)
private String userName; @Basic
@Column(name = "token", nullable = false)
private String token; @Basic
@Column(name = "user_status", nullable = false)
private Integer userStatus; @Basic
@Column(name = "create_time", nullable = false)
private Date createTime; @Basic
@Column(name = "update_time", nullable = false)
private Date updateTime; /**
* 创建用户时所需的必填字段
*
* @param user_name 用户名称
* @param token token
*/
public AdUser(String user_name, String token) {
this.userName = user_name;
this.token = token;
this.userStatus = CommonStatus.VALID.getStatus();
this.createTime = new Date();
this.updateTime = this.createTime;
}
} ---
/**
* CommonStatus for 通用状态枚举
*
* @author <a href="mailto:magicianisaac@gmail.com">Isaac.Zhang</a>
*/
@Getter
public enum CommonStatus {
VALID(1, "有效"),
INVALID(0, "无效状态"); private Integer status;
private String desc; CommonStatus(Integer status, String desc) {
this.status = status;
this.desc = desc;
}
}

其他的数据库对应实体类(AdUnit,AdPlan,AdCreative,AdUnitDistrict,AdUnitHobby,AdUnitKeyword,RelationshipCreativeUnit),大家可以参考上面的例子自己实现,也可以去github上下载源码。------

做一个好人。

博客园 | segmentfault | spring4all | csdn | 掘金 | OSChina | 简书 | 头条 | 知乎 | 51CTO

[Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动+实体类的更多相关文章

  1. [Spring cloud 一步步实现广告系统] 8. 检索系统配置&依赖

    工作流程 项目依赖 <dependencies> <!-- hystrix 监控面板 --> <dependency> <groupId>org.spr ...

  2. [Spring cloud 一步步实现广告系统] 7. 中期总结回顾

    在前面的过程中,我们创建了4个project: 服务发现 我们使用Eureka 作为服务发现组件,学习了Eureka Server,Eureka Client的使用. Eureka Server 加依 ...

  3. [Spring cloud 一步步实现广告系统] 19. 监控Hystrix Dashboard

    在之前的18次文章中,我们实现了广告系统的广告投放,广告检索业务功能,中间使用到了 服务发现Eureka,服务调用Feign,网关路由Zuul以及错误熔断Hystrix等Spring Cloud组件. ...

  4. [Spring cloud 一步步实现广告系统] 21. 系统错误汇总

    广告系统学习过程中问题答疑 博客园 Eureka集群启动报错 Answer 因为Eureka在集群启动过程中,会连接集群中其他的机器进行数据同步,在这个过程中,如果别的服务还没有启动完成,就会出现Co ...

  5. [Spring cloud 一步步实现广告系统] 2. 配置&Eureka服务

    父项目管理 首先,我们在创建投放系统之前,先看一下我们的工程结构: mscx-ad-sponsor就是我们的广告投放系统.如上结构,我们需要首先创建一个Parent Project mscx-ad 来 ...

  6. [Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结

    到目前为止,我们整个初级广告检索系统就初步开发完成了,我们来整体回顾一下我们的广告系统. 整个广告系统编码结构如下: mscx-ad 父模块 主要是为了方便我们项目的统一管理 mscx-ad-db 这 ...

  7. [Spring cloud 一步步实现广告系统] 1. 业务架构分析

    什么是广告系统? 主要包含: 广告主投放广告的<广告投放系统> 媒体方(广告展示媒介-)检索广告用的<广告检索系统> 广告计费系统(按次,曝光量等等) 报表系统 Etc. 使用 ...

  8. [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现

    上一节我们分析了广告索引的维护有2种,全量索引加载和增量索引维护.因为广告检索是广告系统中最为重要的环节,大家一定要认真理解我们索引设计的思路,接下来我们来编码实现索引维护功能. 我们来定义一个接口, ...

  9. [Spring cloud 一步步实现广告系统] 6. Service实现&Zuul配置&Test

    DAO层设计实现 这里我们使用Spring DATA JPA来实现数据库操作,当然大家也可以使用Mybatis,都是一样的,我们依然以用户表操作为例: /** * AdUserRepository f ...

随机推荐

  1. 《Java Spring框架》SpringXML配置详解

    Spring框架作为Bean的管理容器,其最经典最基础的Bean配置方式就是纯XML配置,这样做使得结构清晰明了,适合大型项目使用.Spring的XML配置虽然很繁琐,而且存在简洁的注解方式,但读懂X ...

  2. 为什么使用HTTP2?

    最近我们公司的官网由原来的http1.1已升级到http2,而我们前端开发对http2还是一片懵懂,更不知道为何换成了这个,故此补充了下http2的相关知识. http1.1相比于http1.0有哪些 ...

  3. IPFS学习-IPNS

    星际名称系统(IPNS)是一个创建个更新可变的链接到IPFS内容的系统,由于对象在IPFS中是内容寻址的,他们的内容变化将导致地址随之变化.对于多变的事物是有用的.但是很难获取某些内容的最新版本. 在 ...

  4. SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)

    一.什么是Ribbon: Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法. 将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连 ...

  5. 分布式事物 - 基于RPC调用 - TCC模式

    前提 前端业务(主服务)可以以同步或异步调用TCC框架,或者TCC框架本身就是同步异步兼备的. 假定TCC框架拥有断电后的自动恢复能力.同时,在下游业务出现无限失败的情况下,也会进行无限的重试,以达到 ...

  6. skyline加载arcgis发布的wms服务

    function AddWMSLayer(LayerName) {var _WMSUrl =“http://10.0.4.141:6080/arcgis/services/poss1/MapServe ...

  7. [转]加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用

    原文链接:http://www.cnblogs.com/sochishun/p/7028056.html 加密技术通常分为两大类:"对称式"和"非对称式". 对 ...

  8. REST架构指导方案

    目录 REST架构指导方案 何为REST 在WEB系统中应用REST风格 应用约束 对资源应用正确的动词语义 名词性的URI地址 RESTFUL的URL路径实践 单一资源的路径制定 复杂查询的路径制定 ...

  9. 一文带你深入了解JVM性能调优以及对JVM调优的全面总结

    目录 JVM调优 概念 基本垃圾回收算法 垃圾回收面临的问题 分代垃圾回收详述1 分代垃圾回收详述2 典型配置举例1 典型配置举例2 新一代的垃圾回收算法 调优方法 反思 一.JVM调优的一些概念 数 ...

  10. 精通awk系列(3):铺垫知识:读取文件的几种方式

    回到: Linux系列文章 Shell系列文章 Awk系列文章 读取文件的几种方式 读取文件有如下几种常见的方式: 下面使用Shell的read命令来演示前4种读取文件的方式(第五种按字节数读取的方式 ...