首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

Kotlin 1.3.50 发布,新一代安卓开发语言

Kotlin 1.3.50 发布了,此版本除了质量和工具改进之外,还有以下更新亮点: 设计了一个新的持续时间和时间测量 API(预览功能)。 改进 Java-to-Kotlin 转换器。 Gradle Kotlin/JS 项目中生成 npm 依赖项的外部声明(使用 Dukat,实验性功能)。 引入一个用于在 IntelliJ IDEA Ultimate 中调试 Kotlin/Native 代码的单独的插件。 多平台项目中的 Java 编译支持。 详情查看: https://blog.jetbrains.com/kotlin/2019/08/kotlin-1-3-50-released

优秀的个人博客,低调大师

SpringBoot开发案例之分布式集群共享Session

前言 在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用。 那么问题来了,如果使用传统管理 Session 的方式,我们会遇到什么样的问题? 案例 这里拿下单举例,用户小明在天猫上相中了一个的娃娃,觉得不错,果断购买,选尺寸,挑身高,然后确认选择,赶紧提交订单,然后就跳转到了登录页面!小明表示很郁闷,大写的问号??? 小明进入娃娃页面,此时请求通过代理服务发送到业务系统一。 小明选尺寸,挑身高,此操作并没有对后端服务发送请求。 小明提交订单,此时请求通过代理服务发送到业务系统二,然鹅,二系统此时并没有查询到小明的登录信息,就被无情的跳转到登录页了。 方案 HttpSession 默认使用内存来管理 Session,通常服务端把用户信息存储到各自的 Jvm 内存中。所以小明下单的时候找不到登录信息,那么我么何不把用户信息集中存储!? 为了测试效果,这里我们搭建一个演示案例,项目涉及 SpringBoot、spring-session、redis、nginx 等相关组件。 pom.xml引入依赖: <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 配置 redis 参数,软件自行安装: ## redis #session存储类型 spring.session.store-type=redis spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=123456 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 spring.redis.pool.max-idle=8 spring.redis.pool.min-idle=0 spring.redis.timeout=3000 简单的用户登录实现,省略部分代码: @RequestMapping(value="login",method=RequestMethod.POST) public Result login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws Exception { SysUser user = userService.getUser(username); if(user==null) { return Result.error("用户不存在"); }else { if(user.getPassword().equals(password)) { request.getSession().setAttribute("user", user); return Result.ok(); }else { return Result.error("密码错误"); } } } 配置代理实现,基于 Nginx: server { listen 80; server_name blog.52itstyle.vip; location / { proxy_pass http://192.168.1.2:8080; } location /cart { proxy_pass http://192.168.1.3:8080$request_uri; } location /order { proxy_pass http://192.168.1.4:8080$request_uri; } } 配置成功后登录系统,在 redis 中查询用户信息: 127.0.0.1:6379> keys * 1) "spring:session:expirations:1562577660000" 2) "spring:session:sessions:1076c2bd-95b1-4f23-abd4-ab3780e32f6f" 3) "spring:session:sessions:expires:1076c2bd-95b1-4f23-abd4-ab3780e32f6f" 小结 这样,小明就可以开心的买娃娃了!

优秀的个人博客,低调大师

Google 推出免费利器,让编程小白也能开发游戏

雷锋网消息,6 月 13 日,Google 在一篇博客中表示,使用 Google 原型游戏生成器 Game Builder,用户无需具备代码知识,就能通过一些列卡牌来创建属于自己的 3D 游戏。 这就意味着,创建游戏不再是程序员的专利,普通游戏玩家也可以随心所欲地创造自己的游戏王国。 创建自己的游戏 Game Builder 的设计旨在边玩边建,让玩家在创建游戏的同时,又能享受到玩游戏的快乐。比如,玩家建立起台阶之后,游戏里的人物会爬上台阶完成任务。 多人协同游戏/创建 玩家创建的个人游戏并不是一个完全封锁的世界,他还可以邀请朋友们一起来玩自己设计的游戏,甚至邀请朋友们参与游戏的建设工作,享受多人协同的过程。 卡牌代替编码知识 Game Builder 里面还会提供海量可视卡牌,当系统向你提问要怎样建设游戏时,你可以拖动卡牌来回答问题,比如,“您希望爆炸的样式是什么?”,你可以拖动自己喜欢的爆炸样式,然后将卡牌拖动到相应的回答框。这样一来,图片就代替了代码。 成千上万的 3D 模型 除了海量卡牌,Game Builder 还提供了成千上万的 3D 模型来帮助玩家丰富游戏内容,比如汽车、飞机、甚至宠物。 实时 JavaScript 编程 用于技术专长的玩家可以选择使用 JavaScript,并调整现有的应用程序编程接口(API),从而编写游戏里的内容。而且,所有代码都是实时的,所以只需要进行更改并保存,无需编译。 需要说明的是,用户要想使用 Google Game Builder,需要通过 PC 和 Mac 上的 Steam 平台里来找到 ,而且是完全免费的。 雷锋网(公众号:雷锋网)注:本文图片来自 Google Blog 雷锋网版权文章,未经授权禁止转载。详情见转载须知。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册