{"id":15180582,"url":"https://github.com/justlive1/earth-snow","last_synced_at":"2025-07-02T20:05:25.320Z","repository":{"id":57743808,"uuid":"127238087","full_name":"justlive1/earth-snow","owner":"justlive1","description":"基础服务，包括常用工具、异常处理等","archived":false,"fork":false,"pushed_at":"2018-08-31T03:12:54.000Z","size":243,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-18T10:18:21.132Z","etag":null,"topics":["base","framework","spring","vertx"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justlive1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-29T04:48:54.000Z","updated_at":"2020-07-16T10:58:31.000Z","dependencies_parsed_at":"2022-09-11T09:40:32.846Z","dependency_job_id":null,"html_url":"https://github.com/justlive1/earth-snow","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlive1%2Fearth-snow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlive1%2Fearth-snow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlive1%2Fearth-snow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justlive1%2Fearth-snow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justlive1","download_url":"https://codeload.github.com/justlive1/earth-snow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223912845,"owners_count":17224205,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base","framework","spring","vertx"],"created_at":"2024-09-27T16:23:04.734Z","updated_at":"2024-11-10T04:44:30.012Z","avatar_url":"https://github.com/justlive1.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 基础服务\n\n\n## 介绍\n\n- snow-common-base J2SE基础\n- snow-common-web J2EE基础\n- snow-common-web-vertx Vertx Web扩展\n- snow-common-spring-rabbit spring-rabbit封装\n- 依赖方式\n\n```\n\u003cdependency\u003e\n    \u003cgroupId\u003evip.justlive\u003c/groupId\u003e\n    \u003cartifactId\u003esnow-common-base\u003c/artifactId\u003e\n    \u003cversion\u003e${snow.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003evip.justlive\u003c/groupId\u003e\n    \u003cartifactId\u003esnow-common-web\u003c/artifactId\u003e\n    \u003cversion\u003e${snow.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003evip.justlive\u003c/groupId\u003e\n    \u003cartifactId\u003esnow-common-web-vertx\u003c/artifactId\u003e\n    \u003cversion\u003e${snow.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003evip.justlive\u003c/groupId\u003e\n    \u003cartifactId\u003esnow-common-spring-rabbit\u003c/artifactId\u003e\n    \u003cversion\u003e${snow.version}\u003c/version\u003e\n\u003c/dependency\u003e\n\n```\n\n\n## 特性\n\n* 基于properties配置进行项目定制\n* 极简xml\n* 自动装载 依赖jar配置properties无需额外配置\n\n## 开发\n\t\n\t\n\tsnow-common-base\n\t\t公共常量\n\t\t异常处理封装\n\t\t工具类\n\tsnow-common-web\n\t\tweb异常处理封装\n\t\twebmvc基本组件配置提供\n\t\t用户相关工具类\n\t\t公共对外rest接口提供\n\t\t\n\tsnow-common-web-vertx\n\t\t扩展Route增加注解实现\n\t\t\n\tsnow-common-spring-rabbit\n\t\tspring-rabbit的封装\n\t\t\n\n## 使用\n\n### Response返回\n\nRestController返回使用vip.justlive.common.base.domain.Response进行包装\n\n```\n# 成功返回  成功编码 00000\nResponse.success(T t);\n# 错误返回 默认错误码 99999\nResponse.error(String msg);\n# 自定义错误编码\nResponse.error(String code, String msg);\n\n```\n\n### 异常处理\n\n代码中需要throw异常时需要使用vip.justlive.common.base.exception.Exceptions进行包装，抛出CodedException\n\n注意：\n- 异常尽量不要try catch\n- WebExceptionHandler统一处理了异常\n\n```\n# 构造ErrorCode\nErrorCode err = Exceptions.errorCode(String module, String code);\nErrorCode err = Exceptions.errorMessage(String module, String code, String message);\n\n# 异常包装，抛出unchecked异常\nthrow Exceptions.wrap(Throwable e);\nthrow Exceptions.wrap(Throwable e, String code, String message);\nthrow Exceptions.wrap(Throwable e, ErrorCode errorCode, Object... arguments);\n\n# 抛出业务逻辑异常，不含堆栈信息\nthrow Exceptions.fail(ErrorCode errCode, Object... params);\nthrow Exceptions.fail(String code, String message, Object... params);\n\n# 故障型异常，包含堆栈信息\nthrow Exceptions.fault(ErrorCode errCode, Object... params);\nthrow Exceptions.fault(String code, String message, Object... params);\nthrow Exceptions.fault(Throwable e, ErrorCode errCode, Object... params);\nthrow Exceptions.fault(Throwable e, String code, String message, Object... params)\n\n```\n\n### rabbit\n\n依赖jar\n\n```\n\u003cdependency\u003e\n    \u003cgroupId\u003evip.justlive\u003c/groupId\u003e\n    \u003cartifactId\u003esnow-common-spring-rabbit\u003c/artifactId\u003e\n    \u003cversion\u003e${snow.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n生产者开发\n- 消息的发送方只需要写以下代码，就可以实现消息的发送\n- MessageProducer需要通过Spring注入\n- sendMessage方法，第一个参数是交换机名称，第二个参数是队列的名称，第三个参数是消息实体\n- sendMessageWithDelay方法，第一个参数是交换机名称，第二个参数是队列的名称，第三个参数是消息实体，第四个参数是延迟的时间，单位毫秒\n\n```\n  @Autowired\n  MessageProducer producer;\n\n  @Test\n  public void testRabbit() throws IOException {\n    Vo message = new Vo();\n    message.setCode(\"12313\");\n    message.setDate(new Date());\n    producer.sendMessage(\"e.sms\", \"q.sms\", message);\n  }\n```\n\n消费者开发\n- delay=true 是延迟消息 。使用延迟消息 ，务必加上此注解\n- 实现MessageProcess接口，在process方法体内做消息的业务处理\n- 加上@Rqueue注解，如果程序要消费多个不同的队列，那就再写多个这样的类，实现MessageProcess\n- 自动配置需要加上vip.justlive.common.spring.rabbit包的扫描\n\n```\n@Rqueue(queueName = \"q.sms\", exchangeName = \"e.sms\")\npublic class MessageProcessDemo implements MessageProcess\u003cVo\u003e {\n\n  @Override\n  public void process(Vo message) {\n    System.out.println(\"process message -\u003e \" + JSON.toJSON(message));\n  }\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustlive1%2Fearth-snow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustlive1%2Fearth-snow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustlive1%2Fearth-snow/lists"}