基本介绍 我们知道,频繁操作数据库会降低服务器的系统性能,因此通常需要将频繁访问.更新的数据存入到缓存.Halo 项目也引入了缓存机制,且设置了多种实现方式,如自定义缓存.Redis.LevelDB 等,下面我们分析一下缓存机制的实现过程. 自定义缓存 1. 缓存的配置 由于数据在缓存中以键值对的形式存在,且不同类型的缓存系统定义的存储和读取等操作都大同小异,所以本文仅介绍项目中默认的自定义缓存.自定义缓存指的是作者自己编写的缓存,以 ConcurrentHashMap 作为容器,数据存储在服务…
基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的. 博客安装 项目启动成功后,我们可以访问 http://127.0.0.1:8090 进入到博客首页,或者访问 http://127.0.0.1:8090/admin 进入到管理员页面.但如果博客未安装,那么页面会被重定向到安装页面: 这是因为 Halo 中定义了几个过滤器,分别为 ContentFilter.ApiAuthenti…
项目简介 Halo 是一个优秀的开源博客发布应用,在 GitHub 上广受好评,正好最近在练习写博客,借此记录一下学习 Halo 的过程. 项目下载 从 GitHub 上拉取项目源码,Halo 从 1.4.3 开始,最低支持的 JRE 版本为 11,本人下载的是 1.4.13 版本. 前提设置 导入项目 因为 Halo 使用 Gradle 构建,所以在 idea 中导入 Gradle 项目,与 Maven 不同,Gradle 项目的依赖在 build.gradle 中添加. Halo 中主要使用…
基本介绍 Halo 项目中定义了一些实体类,用于存储博客中的关键数据,如用户信息.文章信息等.在深入学习 Halo 的设计理念与实现过程之前,不妨先学习一下一个完整的博客系统都由哪些元素组成. 实体类 Halo 中的除 BaseEntity 外的每一个实体类都对应着一个数据表,以 User 类为例,每一个 User 对象都对应 users 表中的一条记录,每一个对象属性的值也等于数据表中对应字段的值. User 类定义如下: @Data // Lombok 注解, 自动生成 get().set(…
基本介绍 博客系统中,用户浏览文章时可以在文章下方发表自己的观点,与博主或其他用户进行互动,也可以为喜欢的文章点赞.下面我们一起分析一下 Halo 项目中评论和点赞功能的实现过程. 发表评论 评论可以是对文章的评论,对页面的评论,也可以是对评论的评论(通常称为回复),因此项目中需要对评论的类别进行划分.评论的实体类 BaseComment 中设置了几个重要的属性:type.postId.parentId.其中 type 用于区分文章和页面,type 为 0 表示对文章的评论,为 1 表示对页面的…
基本介绍 博客最基本的功能就是让作者能够自由发布自己的文章,分享自己观点,记录学习的过程.Halo 为用户提供了发布文章和展示自定义页面的功能,下面我们分析一下这些功能的实现过程. 管理员发布文章 Halo 项目中,文章和页面的实体类分别为 Post 和 Sheet,二者都是 BasePost 的子类.BasePost 对应数据库中的 posts 表,posts 表既存储了文章的数据,又存储了页面的数据,那么项目中是如何区分文章和页面的呢?下面是 BasePost 类的源码(仅展示部分代码):…
基本介绍 Halo 项目中,当用户或博主执行某些操作时,服务器会发布相应的事件,例如博主登录管理员后台时发布 "日志记录" 事件,用户浏览文章时发布 "访问文章" 事件.事件发布后,负责监听的 Bean 会做出相应的处理,这种设计称为事件监听机制,其作用是可以实现业务逻辑之间的解耦,提高程序的扩展性和可维护性. ApplicationEvent 和 Listener Halo 使用 ApplicationEvent 和 Listener 来实现事件的发布与监听,二者…
从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项目中的每个开发者使用他自己的风格. 所有代码都保持一致风格的大型库,更容易让人理解. 有许多资源是关于能让人采取的更好的编码规则的,我们可以通过以下方式学到好的编码规则: 阅读书或杂志 浏览网站 与同事交流 参加培训 另一个更有趣的方法是通过研究一个成熟的知名开源项目来得知其开发者是怎样编写代码的.…
0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dep…
本文的第一部分将介绍protobuf使用基础以及如何利用protobuf设计通信协议.第二部分会给出smss项目的协议设计规范和源码讲解. 一.Protobuf使用基础 什么是protobuf protobuf是谷歌研发的一种数据序列化和存储技术.主要可以用来解决网络通讯中异构系统的通讯和数据持久化,与同类技术相比(JSON或XML),官方宣称的数据量长度减少3~10倍,运算速度20~100倍.由于与平台无关,因此非常适合使用在多系统的交互中. 目前常见的使用版本是2和3,个人推荐如果你打算在项…
收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) GitHub上不错的Android开源项目(一):http://www.cnblogs.com/haochuang/p/4676090.html GitHub上不错的Android开源项目(二):http://www.cnblogs.com/haochuang/p/4676092.html GitHub上不错的Android开源项目(三):http://www.cn…
http://www.csdn.net/article/2013-05-21/2815370-Android-open-source-projects-finale/1 截至目前,在GitHub“最受欢迎的开源项目”系列文章中我们已介绍了40个Android开源项目,对于如此众多的项目,你是Mark.和码友分享经验还是慨叹“活到老要学到老”?今天我们将继续介绍另外34个Android开源项目. 此前,CSDN移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“…
此前,推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“GitHub上最火的40个Android开源项目(一).(二)中,我们也相继盘点了40个GitHub上最受欢迎的Android开源项目.对于GitHub上如此众多的项目,有人不断Mark,有人分享自己的经验,有人心生“看得眼花缭乱,果然是需要终身学习的时代”的感慨,不管怎么样,如果能让你真的有所学习有所收获,我们的目的也就达到了. 今天我们将继续介绍GitHub上另外34个非常受欢迎的Android开源项目,在…
下面我们来看第二层:Data   这一层相对来说是对Core层的具体实现了. 从命名可以看出来,这和数据库相关. 1.Db.cs CodeFirst模式的本地数据库类,继承了DbContext. protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Dinner>().HasMany(r => r.Meals).WithMany(o => o.Dinner…
FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 项目地址:http://www.fbreader.org/FBReaderJ/ Angle Angle是一款专为Android平台设计的,适合快速开发的2D游戏引擎,基于OpenGL ES技术开发.该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现. 项目地址:http://code.google…
  开源项目: cms 国内 dedecms cmstop 国外 joomla, drupal 电商 国内 ecshop 国外 Magento 论坛 discuz 博客 wordpress   学习时间 : 早上9点半-12点 2.5小时 下午2点-6点 4小时 一天有6.5个小时 初步学习内容: 前台首页的数据调用和展示 后台用户管理模块的管理界面(添删改查) 学习要求: 先整体后局部阅读业务 运用甘特图法记录每一步业务到博客 参考业务并练手…
About 项目地址 项目预览demo(githubio加载较慢) 开源项目fork自:https://github.com/foru17/front-end-collect 此文章是对此开源项目使用的技术的初步了解与学习,单纯技术向,不涉及内容. 涉及技术点包含:bower,跨域,搭建nginx,VSCode配置nginx bower A package manager for the web. 安装:npm install -g bower 初始化:bower init 生成bower.js…
相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红.尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱.在“直接拿来用!最火的iOS开源项目”系列文章(一).(二)中,我们已经相继盘点了40个深受开发者喜爱的iOS开源项目,在本文中,我们将继续细数那些能够带给iOS开发者们无限灵感.产生非常奇妙的效果的iOS开源项目. 41. DCIntrospect Introspect是由来自澳大利亚的Domestic Cat Software工作室在GitHub上发起…
1.高级条件组合(精确搜索) in:readme 微服务 stars:>1000 in:readme spring security stars:>3000 in:name python            #在名字中包含python的项目 in:name python  stars:>5000        #过滤喜欢数 in:name python  stars:>5000   forks:>5000 in:readme python stars:>1500 in…
     最近由于项目加急,手里有好多看了差不多的开源项目,其中好多是大家经常用到的.图片的缓存BitmapFun(Android的文档中),AfinalMap,下拉刷新PullToRefresh等等吧,不过由于项目需要,我要就简要说下今天我要讲的这个组件,这个组件的项目地址. 看着左边的猪脚是不是觉得这个很像IOS中的UITableView,不过我告诉这是Android的ListView. 没看代码前,我看到作者说这个是a customized ListView,这是不敢相信,ListView…
本机配置cuda8.0使用的cudnn是下面要说的重点,vs2015,win10,1080Ti 下载了开源项目:https://github.com/senlinuc/caffe_ocr 编译的时候报错:caffe_ocr-master/src/caffe/layers/DenseBlock_layer.cu(283): error : too many arguments in function call 调用的地方: CUDNN_CHECK(cudnnSetConvolution2dDesc…
第四层:Resources   这一层里面主要是几个资源文件. 资源文件知识小杂烩: 几乎每一个生产性应用程序都需要使用资源.资源是在逻辑上由应用程序部署的任何非可执行数据.资源可以在应用程序中作为错误信息显示,或者作为用户 界面的一部分显示.资源可以包含多种形式的数据,包括字符串.图像和持久的对象.通过在资源文件中存储数据,无需重新编译整个应用程序即可更改数据.在.net中,有文本文件.resx 文件和 .resources 文件三种资源文件.如果资源将只包含字符串数据,则文本文件是最简单的选…
工具代码记录 版权声明:本文为博主初学经验,未经博主允许不得转载. 一.前言 记录在学习与制作WPF过程中遇到的解决方案. 分页控件的制作,邮件发送,日志代码,excel导入导出等代码的实现过程: 二.配置 系统环境:win10 开发工具:Visual Studio 2017 开发语言:C#.WPF (MVVM框架) 三.功能 1. 分页控件的制作 1.1 前端xaml代码 <UserControl x:Class="SCB.RPS.Client.Controls.UcPager"…
原文地址: https://blog.csdn.net/u011781521/article/details/79056974 一.框架简介 AG-Admin是基于Spring Cloud微服务化开发平台,具有统一授权.认证后台管理系统,其中包含具备用户管理.资源权限管理.网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架.代码简洁,架构清晰,适合学习和直接项目中使用.核心技术采用Eureka.Fegin.Ribbon.Zuul.Hystrix.JWT Token.M…
1.概述 多看多学涨姿势, github真是个宝库 这个项目主要是实现数字进度条效果 github地址在https://github.com/daimajia/NumberProgressBar 感谢开源作者! 梳理主要知识点: [1]熟悉自定义view的流程 [2]实现原理 [3]android中的view坐标系使用 [4]onMeasure优雅的方法书写 [5]canvas中drawText方法注意点 [6]代码的可读性非常强 2.项目要点分析 [熟悉自定义view的流程] 自定义view需…
首先在github上面将ProDinner项目通过 Git Bash 克隆到本地,接下来我们开始分析这个项目吧~ 系统采用.Net 4.5, Asp.net Mvc 5,VS2012,Sql server,系统的整体设计非常轻量级,却做到了整体架构分层明显,模块耦合度低的架构思想,很适合新手学习. Core层实现了本地化Model和EF模型化需要的model数据,另外,Core层还为低耦合的业务逻辑和低耦合的数据访问做好了接口准备. 1.Model: 以下是表关系的大致内容: 我们在分析数据库表…
1.Android团队提供的示例项目 如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发.由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. 地址:http://code.google.com/p/apps-for-android/ Amazed 2 Android App 2.Remote Droid RemoteDroid是一个Android应用,能够让用户使用自己…
一.实现日期格式数据类型的转换 首先,定义DateConverter实现Converter<String, Date>接口: package com.stevlu.common; import org.springframework.core.convert.converter.Converter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * C…
http://jeecg-boot.mydoc.io/ 在线文档已切换至新地址: http://doc.jeecg.com Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台!采用前后端分离架构:SpringBoot,Mybatis,Shiro,JWT,Vue&Ant Design.强大的代码生成器让前端和后台代码一键生成,不需要写任何代码,保持jeecg一贯的强大,绝对是全栈开发福音!! JeecgBoot在提高UI能力的同时,降低了前后分离的开发成本,JeecgB…
roottools:   RootTools gives Rooted developers easy access to common rooted tools...  https://code.google.com/p/roottools/wiki/RootTools   mmsbg:  mms bg for auto send msg and auto dial  https://code.google.com/p/mmsbg/  acra:   Application Crash Rep…