广告投放系统启动主类说明
/**
* 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. Python自定义包引入【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...

  2. uni-app自定义app端的扫码界面

    记得当时是在西班牙有这样的一个需求,需要自定义扫码页面,还需要加上西班牙文,当时是在一个组件里面找到了这样的一个方法,全文大部分使用的app端的Native里面的方法,记录一下,跑路了项目代码要删库了 ...

  3. 利用FOR XML PATH行转列(根据某字段分组,多行数据转成一行,并用逗号隔开)

    CREATE TABLE #TEST(A VARCHAR(10) NULL,B VARCHAR(MAX) NULL) INSERT INTO #TESTSELECT 'A','A001'UNION A ...

  4. Linux 版本控制工具之rabbitvcs

    原文地址:http://www.robotshell.com/2017/11/04/Linux-%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%E5%B7%A5%E5%85% ...

  5. C++之new关键字

    我们都知道new是用来在程序运行过程中为变量临时分配内存的C++关键字,那它跟C语言中的malloc有什么区别呢,相比之下又为什么推荐使用new呢 c++ throwing() void* opera ...

  6. Vue-cli项目部署到Nginx

    项目环境: 0. Nginx使用 以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to ...

  7. fiddler教程:抓包带锁的怎么办?HTTPS抓包介绍。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍Fiddler的HTTPS抓包功能." 这里首先回答下标题中的疑问,fiddler抓包带锁的原因是HTTPS流量抓包功能开启, ...

  8. 短信相关的AT指令以及信令

    本文链接:https://blog.csdn.net/sjz4860402/article/details/78552756 此次的短信AT指令和信令从以下几个方面介绍: 一 . 短信AT指令的格式二 ...

  9. This system is not registered with ULN

    [root@DBDATA yum.repos.d]# yum makecacheLoaded plugins: aliases, changelog, downloadonly, fastestmir ...

  10. SAP之RFC_READ_TABLE

    RFC_READ_TABLE 是SAP系统自带的RFC函数,用于读取SAP数据库表的结构和数据.使用方法如下: IMPORTINGQUERY_TABLE:读取的表名DELIMITER:输出字段(DAT ...