- 博客(40)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 Spring Cloud实战(六):Spring Cloud Gateway动态权限访问控制
一、需求在2018年写的基于OAUTH2.0统一认证授权的微服务基础架构只是基于OAUTH认证授权的入门级应用。本文基于实战目的,实现权限的动态控制。现有如下需求:基于用户-角色-权限控制权限粒度控制到具体的请求URL当用户的角色或者权限变动后,已获授权的用户需要重新登录授权本文围绕上面三个基本需求进行实现。二、工程说明设计的框架已经中间件有:Nacos 1.3Spring Cloud Hoxton.SR8JWT nimbus-jose-jwtSpring Cloud Gat
2020-10-29 16:46:04 16529 8
原创 微服务实战(一)基于OAUTH2.0统一认证授权的微服务基础架构
1.架构图技术团队通过一段时间的积累后,我们打算对往后的一些新项目采用Spring Cloud技术栈来实现。大概微服务的架构如下: Euraka注册中心集群Zuul网关集群各模块微服务集群Nginx实现负载均衡Spring Cloud Config 统一配置中心Monitor微服务监控代码传送:https://github.com/babylikebird/Micro-
2020-06-04 13:35:59 165497 141
原创 进击的码农(一)——领域驱动设计(DDD)落地实战
前言接触DDD也有一段时间了, 参考了很多前辈的分享,他们的知识和经验对自己的帮助很大。本文以一个订单服务为示例来落地,同时假设你对DDD的相关概念都已经有所了解。代码结构主流的都会采用分层架构的方式,如下:同样,还有用依赖倒置(DI)的, 都差不多。我们同样采用分层架构,分层结构如下:interfaces用户接口层:用户请求的入口,通常就是些controller。applicat...
2020-04-03 11:43:20 4725 6
原创 进击的码农(二)seata之no available service ‘default‘ found
版本seata:1.3.0spring-boot:2.2.9.RELEASEspring-cloud:Hoxton.SR6spring-cloud-alibaba:2.2.1.RELEASENacos:1.3seata配置seata server的配置文件如下:分别设置file.conf de mode为db,registry.config为nacos, 其他不变, 之后启动。然后配置客户端:seata: application-id: ${spring.application
2020-08-04 18:18:08 26382 25
原创 Feign之复杂参数传递
前言由于之前一直被问Feign如何传递复杂参数呀,如:1、小明提供的POST接口,接收的参数不是@RequstBody的,我要一个一个写@RequestParam,好繁琐啊;2、小李提供的GET接口参数太多,又不能封装对象传给他,每一个参数都要写@RequestParam,好蛋疼啊。其实这些问题都不是问题,问题是很多同学没有去看官方文档,没有去看源码。其实SpringQueryMap(Sprin...
2020-02-19 15:43:11 2774 2
原创 温故知新(四)Ribbon执行流程解析
一、准备ribbon版本2.2.5运行启动lesson1的Provider工程端口号为6667的返回“i am provider1”,端口号为6668的返回“i am provider2”。新建lesson3,只引入ribbon。 <dependencies> <dependency> <groupId&...
2019-04-08 19:11:57 1354 1
原创 温故知新(三)—— RetryTemplate与Ribbon重试
开始在上一篇中只是大致说了RestTemplate如何实现超时设置,当超时时就会直接抛出异常,在微服务时代各个服务之间互相调用难免因为网络波动导致调用失败的情况,这时候是希望能够实现重试了。把功能稍微改一下consume工程修改,把ConnectTimeout与ReadTimeoutpublic class ConsumeApplication { @Bean @LoadB...
2019-03-28 11:06:24 1379
原创 温故知新(二)—— RestTemplate超时解析
准备接上一篇,通过追踪请求,最终会调用SimpleClientHttpRequestFactory的openConnection,与prepareConnection。具体代码在InterceptingClientHttpRequest:第一个红框即调用SimpleClientHttpRequestFactory创建ClientHttpRequest,prepareConnection接...
2019-03-26 11:12:46 1770
原创 温故知新(一)—— RestTemplate
一、准备建立两个工程;Nacos作为注册中心。工程1:provider,只简单的提供一个接口provider@SpringBootApplication@EnableDiscoveryClient@RestController@Slf4jpublic class ProviderApplication { public static void main(String[] a...
2019-03-25 16:03:32 380
原创 RDS数据库文件备份恢复
前言前几天做数据更新的时候,手抖了一下,把数据删除了。幸好阿里云有7天的备份,马上下载了备份文件,想要备份。参照官方备份恢复解决方法:https://help.aliyun.com/knowledge_detail/41817.html?spm=5176.11065259.1996646101.searchclickresult.569d1aa3t4iUZc。觉得很繁琐。在想有没有更加简单的数...
2018-03-05 17:26:31 1082 1
原创 Spring security4.x浅析
一、概述最近使用Spring security进行细粒度的动态权限管理,就再花了一些时间梳理spring security的过程。其实spring security主要分为两个部分:(1)认证,Authentication。(2)授权。说实话,如果你看过源码的话,你就会知道spring security的认证授权都是通过一系列的过滤器来实现的。 官方介绍:https://spring.io/...
2018-02-27 12:49:29 1627
原创 Springboot 1.5.X不再支持Velocity
今天升级项目的SpringBoot版本到1.5.4,发现一堆问题,其中Velocity的支持已经移除,导致视图一直报错,之前知道Spring4.3废弃了Velocity,@deprecated as of Spring 4.3, in favor of FreeMarker,所以以为Springboot也只是deprecated ,谁曾想居然remove掉了。https://github.com/s
2017-06-14 13:33:01 5449 3
原创 【APP高仿系列一】Wireshark抓取数据
前言很多开发者想在空闲的时候自己写个APP来提高自己的技术能力,但是又有苦于没有UI和数据源,最好的的解决方案是找到一款自己喜欢的APP,然后抓取数据进行高仿和创新,本系列就从抓取数据开始讲起。数据抓取Wireshark想必大家都知道,不清楚的自行百度。 第一步,下载你感兴趣的APP,并安装。 第二步,确保电脑跟手机在一个局域网能。(我的做法是电脑开启热点,手机连接该热点,这样的好处是抓取的数据
2016-07-08 13:29:25 6688 1
原创 【爬虫】WebMagic结合Spring mvc爬取数据进行存储
工作4年多了,也没写过什么博客,去年回老家入职一家国企,工作稍微轻松些,没有在深圳的时候那么忙。最近感觉精力充沛(轻松的工作还是蛮养人的),想把自己研究或者使用到的相关技术做一个记录。第一、对这些知识做一个总结,因为现在发现脑袋不好使了,体会到了好记性不如烂笔头。废话不多说,那就从最近用的爬虫说起吧。另外自己对爬虫也没有什么研究,纯粹处于会使用的地步。前言最近由于工作需要,接触到了爬虫这一块。抓
2016-07-07 19:18:44 8753
原创 SpringMVC+WebSocket整合
最近项目有需求要实现全双工(android端实时更新数据),那果断采用websocket,之前对websocket没啥研究。现在spring也支持了websocket,故写此demo,经过半天的调试和查询资料,终于能通信了。pom.xml添加springmvc,websocket所依赖的jar包<dependency> <groupId>org.springframework</grou
2016-05-27 15:30:05 5896 2
转载 最全面的常用正则表达式大全
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$
2016-02-01 17:38:52 438
原创 状态栏一体化
我们知道越来越多的应用都采用了沉浸式状态栏,像QQ,QQ空间等,今天写一下关于沉浸式状态栏的实现 1、只有大于等于4.4版本状态栏的效果。在想要的Activity中设置状态栏透明效果,如下代码: private void setTranslucenttatus(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
2015-12-16 12:20:25 458
原创 Android studio创建AIDL传递复杂参数
之前一段时间在用H5做Hybrid App,原生开发已经有4个多月没做了,怕荒废了,买了本《Android开发艺术探索》一书来瞧,果然不错。在IPC一章,讲到AIDL,可惜作者用的是eclipse,AIDL传复杂参数好像没啥问题。但是既然已经转到AS已经半年多了,不能不用亲儿子啊,而且很好用。但是在AIDL开发中,传递复杂参数比如Parcelable数据但是就是报找不到该参数,算是在同一个目录
2015-12-08 09:22:31 859
转载 修改keystore密码别名等
修改Android签名证书keystore的密码、别名alias以及别名密码之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Androi
2015-09-10 15:14:12 535
原创 ToolBar样式颜色,图标设置
resources> style name="AppTheme" parent="@style/AppBaseTheme"> style> style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> -- 状态栏和标题栏颜色--> item name="c
2015-09-10 10:21:22 7045
原创 TextView加载html文本
我们可以用textView.setText(Html.fromHtml(text,imageGetter,tagHandler);来加载有img的html文本,imageGetter需要返回drawable对象,那么可以重新ImageGetter,即可。private String shopDeString;private TextView textView;Context con
2015-08-18 15:13:57 1948
原创 View事件分发
1、基础知识 (1) 所有Touch事件都被封装成了MotionEvent对象,包括Touch的位置、时间、历史记录以及第几个手指(多指触摸)等。(2) 事件类型分为ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以ACTION_DOWN开始ACTION
2015-03-30 16:35:20 417
转载 DragTopLayout.
在豌豆荚的应用详情页中有个ViewPager布局,该布局头部添加了一个可上下收展的view用于显示应用资料。实现思路基本上就是利用 ViewDragHelper进行拖动来控制头部的view的布局。当TopView可见时,手势事件被拖动层截获控制上下拖动达到TopView的折叠和展开效果。当TopView不可见时,手势事件交由ViewPager进行控制达到ListView正常滚动,并在ListVie
2015-03-12 18:56:31 2393 3
原创 ViewPager中切换界面Fragment被销毁解析
ViewPager中切换界面Fragment被销毁解析 1、应用处景ViewPager+Fragment实现界面切换,界面数量>=3 2、Fragment生命周期以及与Activity生命周期对比 3、题目描述按上图所说,只有当Fragment所
2014-11-06 18:46:54 1375
转载 SVN_cleanup死循环解决方案
svn cleanup failed–previous operation has not finished; run cleanup if it wasinterruptedsvn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。错误如下: 解决方法:清空svn的队列1.下载sqlite3.exe 2.找到你项目的.svn文件,查看是否存在wc
2014-10-27 17:54:58 1272
原创 application名称和activity名称
先转一个:今天我想修改我的android应用名称,就是手机桌面上图标下面的名称,根据我的理解我修改AndroidManifest.xml文件中application标签中的android:label="@string/app_name"改为自己想要的内容即可。但是我改了,程序发布以后没有变化,让我很不解。在我不断的尝试中发现了一个问题,就是手机桌面上图标下面的名称和手机设置中应用列
2014-08-02 23:41:51 1631
原创 eclipse整理import
如果是eclipse您可以使用Ctrl Shift o 来整理import(不止是删除 还能增加未被引入的import)
2014-07-29 14:36:41 1122
转载 Android px、dp、sp之间相互转换
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密
2014-07-24 14:41:29 700
原创 keytool 错误: java.io.FileNotFoundException: android.keystore (拒绝访问。)
主要原因是JDK安装在C盘,没有写权限,所以报错可以更改目录jiej
2014-07-21 23:05:17 17971 5
原创 FragmentTabHost切换Fragment,与ViewPager切换Fragment时重新onCreateView的问题
最新做个小项目遇到FragmentTabHost切换F
2014-07-10 16:29:59 2871
原创 下拉,下拉ListView
代码有注释 ,就不详细说明了package com.example.android.imagedownloader;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;im
2014-04-03 16:36:49 547
原创 viewpager深度页面切换效果实现
vp.setPageTransformer(true, new DepthPageTransformer());import android.support.v4.view.ViewPager;import android.view.View;public class DepthPageTransformer implements ViewPager.PageTra
2014-02-17 09:02:46 855
转载 Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
转载出处:http://blog.csdn.net/xiaanming/article/details/9401981ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的
2013-11-07 17:19:20 788
原创 当用ImageView或者RelativeLayout等设置OnTouch事件总结到的问题
imgView = (ImageView)findViewById(R.id.key_pad_bg);imgView.setClickable(true);imgView.setOnTouchListener(cKeyListener);当用ImageView或者RelativeLayout设置onTouch事件时,要设置setclike(true),不然不能触发onTouch
2013-09-26 15:32:33 3148
转载 检查有没有应用程序来接受处理你发出的intent
四、检查有没有应用程序来接受处理你发出的intent public static boolean isIntentAvailable(Context context, String action) { final PackageManager packageManager = context.getPackageManager(); final I
2013-08-21 11:13:14 898
原创 Android获取系统语言
如中文(中国)、中文(台湾)//获取当前的语言private String getLanguage(){Configuration conf = ContextUtil.getInstance().getResources().getConfiguration(); String locale = conf.locale.getDisplayName(conf.loc
2013-08-20 14:35:43 1011
原创 大图、小图缩放避免模糊的较好方式
记录积累知识static Drawable zoomDrawable(Drawable drawable, int w, int h) { int width = drawable.getIntrinsicWidth(); int height= drawable.getIntrinsicHeight();
2013-07-18 15:20:14 1218
转载 机顶盒获取U盘路径的方式
在公司做机顶盒开发,由于要做一个媒体播放器来管理外设的音视频图片已经文件等,如果是SDCard的话,可以直接调用android API获取到路径来浏览文件,但是U盘之类的,由于不同的OEM厂商提交不同的挂载路径,无法达到统一,每到更新一个平台都要重复去修改相关路径,非常的浪费时间。看到ES文件浏览器(ES_File_Explorer_3.0.4_7po.apk)能够在不同的平台都能分辨
2013-07-12 10:57:43 4536 1
原创 采用空白文件目录结构管理磁盘空间,实现磁盘空间的分配和回收
<br />实验题目:采用空白文件目录结构管理磁盘空间,实现磁盘空间的分配和回收<br /><br /><br /><br />#include"stdio.h"<br />#include"math.h"<br />#define N 5<br />char fname;<br />int xh;<br />struct freearea //空白文件目录,并初始化<br />{<br /> int startaddress;//第一个空闲块<br /> int size;//空闲块的块数<br /> i
2010-06-25 18:23:00 3137
数据结构算法演示程序(包含PASCAL / C两种语言)
2010-06-22
gradle: protocol family unavailable
2016-05-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人