springboot

如何使用MongoDB+Springboot实现分布式ID

守給你的承諾、 提交于 2019-12-04 11:12:26
如何实现分布式id,一般会给出这几种方案 使用数据库自增Id 使用reids的incr命令 使用UUID Twitter的snowflake算法 利用zookeeper生成唯一ID MongoDB的ObjectId mongodb如何实现分布式ID MongoDB的ObjectId设计成轻量型的,不同的机器都能用全局唯一的同种方法方便地生成它。MongoDB 从一开始就设计用来作为分布式数据库,处理多个节点是一个核心要求。使其在分片环境中要容易生成得多。 实现方式 1.引入mongodb依赖 <!--mongodb --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.创建一个实体类 public class Customer { @Id public String id; public String firstName; public String lastName; public Customer() {} 此处省略get,set } 3.创建mongodb 接口类 public interface CustomerRepository extends

SpringBoot之Dubbox

橙三吉。 提交于 2019-12-03 11:46:33
上次springboot集成dubbo写过一个简单的demo调用的方式,由于spring版本的问题,这次使用duboox,完全基于注解的方式。 dubbox 地址: https://github.com/dangdangdotcom/dubbox 由于dubbox没有发布到maven中央仓库,需要自己安装到本地maven库或者私库 git clone https://github.com/dangdangdotcom/dubbox 在dubbox目录执行mvn install -Dmaven.test.skip=true来尝试编译一下dubbo(并将dubbo的jar安装到本地maven库) 1.导入maven依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.101tec</groupId>

SpringBoot,返回JSON,Long前端精准度丢失,Jackson自定义序列化规则

别来无恙 提交于 2019-12-02 14:25:47
已经很久没写过springboot的相关博客了,前面一段时间一直在写clojure,导致基本很少关注springboot的一些情况,刚好最近在写一些小玩意,期间,遇到一些问题,然后整理了一下,避免其他小伙伴跟我遇到一样的问题,而浪费时间 先介绍一下开发环境: JDK版本1.8 springboot的版本是 1.5.2 开发工具为 intellij idea 开发环境为 15款MacBook Pro 问题介绍,在springboot跟spring返回json的数据中,如果long类型超过18位长度,会导致前端js接收参数丢失精准度问题 ------------------------------------分割线------------------------------- 出现以上问题,我们有2个解决方案. 我们将每个Long类型都手动转换成字符串 我们将返回给前端数据之前,序列化json的时候在指定将Long或者其他的转换成我们指定的类型 显然,第一种很繁琐.所有地方都要处理,第二种更合理,在序列化的时候做统一的处理,将类型转换了,我们就来弄第二种吧. ------------------------------------show code------------------------------- 首先,我们都知道,springmvc返回给前端的消息转换接口是

SpringBoot16 之 Listener and Filter

吃可爱长大的小学妹 提交于 2019-12-01 21:49:32
在Springboot的启动类上必须添加@ServletComponentScan这个标签,否则不会有效果 @ServletComponentScan作用就是扫描相应的Servlet包; 1、创建一个myFilter类。实现Filter中的方法。 /** * Created by hua on 2016/12/2. */ @WebFilter(filterName="myFilter",urlPatterns="/*") public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("过滤器初始化"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("执行过滤操作"); chain.doFilter(request, response); } @Override public void

Spring Mvc boot解决静态url带jsessionid问题

岁酱吖の 提交于 2019-11-30 17:25:21
1.jsessionid是什么? Jsessionid 只是 tomcat 的对 sessionid 的叫法,其实就是 sessionid ;在其它的容器也许就不叫 jsessionid 了。 2.那么有什么问题? 首先这是一个保险措施 因为Session默认是需要Cookie支持的,但有些客户浏览器是关闭Cookie的,所以在这个时候就需要在URL中指定服务器上的session标识,也就是EDE802AB96CD1E0CA2AFB3830D18FB10,每当用户第一次访问页面的时候,后端获取的地址是包含 jsessionid参数,这样拼接 静态资源或者A标签或Form的地址的时候,链接就变成了: http://localhost:8080?jsessionid= EDE802AB96CD1E0CA2AFB3830D18FB10home/user 造成访问相关页面404. 3.解决方法 web.xml配置 <session-config> <tracking-mode>COOKIE</tracking-mode> <tracking-mode>URL</tracking-mode> <tracking-mode>SSL</tracking-mode> </session-config> 以上是Servlet3.0最会话跟踪的三个方式,Servlet 3

Springboot 随笔(1) -- 自动引入配置与启动机制

ε祈祈猫儿з 提交于 2019-11-28 17:03:17
为什么用SpringBoot? 同上题记。总结:快速开始,方便搭建,开发web时并不需要Tomcat或者Jetty,甚至连插件都不用(因为自带Tomcat或自配置成Jetty)。 肯定有缺点吧? 一个框架除了知道他的优点,肯定要知道他的缺点。 SpringBoot 缺点如下(暂时发现): 配置逻辑隐藏太深,所以如果有很多自定义的需要翻源码看,如配置多个Servlet 配置Bean化,替代XML。Bean和XML谁更优?一半一半,所以建议Bean和XML混用(SpringBoot提供这种方式),有时XML定义更加清晰。 文档略少,有时需要翻源码才知道用法。 默认加载的AutoConfig有点多,所以影响启动速度。网上有优化方式,基本思想就是去除@SpringBootApplication,使用自己编写 @Import ,但是这样SpringBoot的便捷性就没有了。 SpringBoot 的运行机制 1. 引入配置 使用 @Import 引入配置Bean,有三种方式: 1) 直接引入 configuration.class @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented @Import({DelegatingWebMvcConfiguration.class}) public

SpringBoot自定义配置文件路径

。_饼干妹妹 提交于 2019-11-28 16:32:45
代码从开发到测试要经过各种环境,开发环境,测试环境,demo环境,线上环境,各种环境的配置都不一样,同时要方便各种角色如运维,接口测试, 功能测试,全链路测试的配置,hardcode 肯定不合适,如Spring profile一样写在jar包不合适.分布式应用中一般采用集中管理配置的方式,通过使用开源软件,如阿里的diamond,netflix的consul等等,SpringBoot中提供了各种各样的配置方式,下面一一来分析下. 1.配置方式和优先级 这些 方式优先级 如下: a. 命令行参数 b. 来自java:comp/env的JNDI属性 c. Java系统属性(System.getProperties()) d. 操作系统环境变量 e. RandomValuePropertySource配置的random.*属性值 f. jar外部的application-{profile}.properties或application.yml(带spring.profile)配置文件 g. jar内部的application-{profile}.properties或application.yml(带spring.profile)配置文件 h. jar外部的application.properties或application.yml(不带spring.profile)配置文件 i.

SpringBoot 学习:(一)快速搭建项目

我是研究僧i 提交于 2019-11-28 16:11:40
一、简介 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boot 的作用在于创建和启动新的基于 Spring 框架的项目。它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用。Spring Boot 会选择最适合的 Spring 子项目和第三方开源库进行整合。大部分 Spring Boot 应用只需要非常少的配置就可以快速运行起来。 Spring Boot 包含的特性如下: 创建可以独立运行的 Spring 应用。 直接嵌入 Tomcat 或 Jetty 服务器,不需要部署 WAR 文件。 提供推荐的基础 POM 文件来简化 Apache Maven 配置。 尽可能的根据项目依赖来自动配置 Spring 框架。 提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。 没有代码生成,也没有 XML 配置文件。 二、Maven Pom文件 使用maven搭建项目更加快速。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http

Jhipster_cn中文翻译组

我们两清 提交于 2019-11-28 15:01:34
Jhipster快速入门 核心技术栈 (TODO) 这里是列表文本环境设置 安装Jhipster 配置Eclipse/Intellij (TODO) 容器编排 (TODO) Jhipster核心任务 使用Jhipster微服务架构 创建项目 创建entity (TODO) 创建service (TODO) 创建DTOs (TODO) 管理关联关系 (TODO) 国际化 (TODO) 更新项目 (TODO) 可定制模块 给应用程序添加安全机制 使用Elasticsearch (TODO) 使用Websockets (TODO) 使用Oracle (TODO) 使用MongoDB (TODO) 使用Cassandra (TODO) 开发环境 在开发环境中使用Jhipster (TODO) 管理配置文件 (TODO) 使用AngularJS (TODO) 定制Bootstrap (TODO) 测试和Q&A 运行测试 (TODO) 代码质量监测 (TODO) 代持续集成 (TODO) 生产环境 使用在生产环境 (TODO) 指标监测 (TODO) 部署到Cloud Foundry (TODO) 部署到Heroku (TODO) 部署到AWS (TODO) 模块 模块市场 (TODO) 如何创建一个模块 (TODO) 工具 Jhipster实体语言 (TODO)

springboot 开发入门,及问题汇总

一笑奈何 提交于 2019-11-27 18:02:36
1 . springboot简单介绍(http://projects.spring.io/spring-boot/) 现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而springboot的出现解 决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。 springboot的很多默认编码方式都是utf-8,真是福利啊。 org.spring 2013年新开发的框架springboot , 它让一个单独项目的创建变得更加的简单,让所有依赖spring的程序可以做到“just run”。springboot提供大量第三方libraries让我们可以非常轻松的开始创建一个spring工程,甚至不需要再去配置一些繁琐的xml配置文件 框架特点: 1:创建独立的spring应用。 2:嵌入Tomcat, Jetty Undertow 而且不需要部署他们。 3:提供的“starters”poms来简化Maven配置 4:尽可能自动配置spring应用。 5:提供生产指标,健壮检查和外部化配置 6:绝对没有代码生成和XML配置要求 2 . 简单实例演示 本文全程使用Springboot当前版本1.2.2(当前,推荐) 一个简单的helloworld 直接开始run main方法就可以了