开发者社区> Isaac Zhang> 正文

[Spring cloud 一步步实现广告系统] 5. 投放系统配置+启动

简介: 广告投放系统启动主类说明 /** * SponsorApplication for 广告赞助商/投递服务启动类 * 添加注解{@link EnableFeignClients}之后,当前微服务就可以调用别的微服务, * 但是当前服务是广告提供,不需要调用别的微服务,在此只是为了在dashbo...
+关注继续查看
广告投放系统启动主类说明
/**
 * 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上下载源码。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Boot实现文件上传
Spring Boot实现文件上传
233 0
软件测试|Spring Boot 的 RESTful API 设计与实现
软件测试|Spring Boot 的 RESTful API 设计与实现
55 0
Spring Boot+Netty实现远程过程调用(RPC)
Spring Boot+Netty实现远程过程调用(RPC)
67 0
Spring Boot整合OpenOffice实现Word、Excel、PPT在线预览
Spring Boot整合OpenOffice实现Word、Excel、PPT在线预览
468 0
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
一文看懂Spring Boot整合Rabbit MQ实现多种模式的生产和消费
114 0
Spring Boot 实现图片上传并回显
Spring Boot 实现图片上传并回显
99 0
手把手教你Spring Cloud Alibaba系列教程:Nacos实现服务注册与发现
手把手教你Spring Cloud Alibaba系列教程:Nacos实现服务注册与发现
107 0
【学习Seata1.6源码#02】通过Spring AOP 实现声明式事务机制
【学习Seata1.6源码#02】通过Spring AOP 实现声明式事务机制
152 0
两种方式实现Spring 业务验证
验证在任何时候都非常关键。考虑将数据验证作为业务逻辑开发有利也有弊,Spring 认为,验证不应该只在Web 端进行处理,在服务端也要进行相应的处理,可以防止脏数据存入数据库中,从而避免为运维同学和测试同学造成更大的困扰,因为数据造成的bug会更加难以发现,而且开发人员关注点也不会放在数据本身的问题上,所以做服务端的验证也是非常有必要的。考虑到上面这些问题,Spring 提供了两种主要类型的验证:
209 0
listener不能交给spring进行管理,需要自己new,不能注入其他对象,不能实现数据库操作
listener不能交给spring进行管理,需要自己new,不能注入其他对象,不能实现数据库操作。 mybatis原生
71 0
+关注
Isaac Zhang
做一个好人,为事业和爱情都执着。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多