基本介绍 我们知道,频繁操作数据库会降低服务器的系统性能,因此通常需要将频繁访问.更新的数据存入到缓存.Halo 项目也引入了缓存机制,且设置了多种实现方式,如自定义缓存.Redis.LevelDB 等,下面我们分析一下缓存机制的实现过程. 自定义缓存 1. 缓存的配置 由于数据在缓存中以键值对的形式存在,且不同类型的缓存系统定义的存储和读取等操作都大同小异,所以本文仅介绍项目中默认的自定义缓存.自定义缓存指的是作者自己编写的缓存,以 ConcurrentHashMap 作为容器,数据存储在服务…
基本介绍 博客最基本的功能就是让作者能够自由发布自己的文章,分享自己观点,记录学习的过程.Halo 为用户提供了发布文章和展示自定义页面的功能,下面我们分析一下这些功能的实现过程. 管理员发布文章 Halo 项目中,文章和页面的实体类分别为 Post 和 Sheet,二者都是 BasePost 的子类.BasePost 对应数据库中的 posts 表,posts 表既存储了文章的数据,又存储了页面的数据,那么项目中是如何区分文章和页面的呢?下面是 BasePost 类的源码(仅展示部分代码):…
基本介绍 Halo 项目中定义了一些实体类,用于存储博客中的关键数据,如用户信息.文章信息等.在深入学习 Halo 的设计理念与实现过程之前,不妨先学习一下一个完整的博客系统都由哪些元素组成. 实体类 Halo 中的除 BaseEntity 外的每一个实体类都对应着一个数据表,以 User 类为例,每一个 User 对象都对应 users 表中的一条记录,每一个对象属性的值也等于数据表中对应字段的值. User 类定义如下: @Data // Lombok 注解, 自动生成 get().set(…
基本介绍 博客系统中,用户浏览文章时可以在文章下方发表自己的观点,与博主或其他用户进行互动,也可以为喜欢的文章点赞.下面我们一起分析一下 Halo 项目中评论和点赞功能的实现过程. 发表评论 评论可以是对文章的评论,对页面的评论,也可以是对评论的评论(通常称为回复),因此项目中需要对评论的类别进行划分.评论的实体类 BaseComment 中设置了几个重要的属性:type.postId.parentId.其中 type 用于区分文章和页面,type 为 0 表示对文章的评论,为 1 表示对页面的…
基本介绍 Halo 项目中,当用户或博主执行某些操作时,服务器会发布相应的事件,例如博主登录管理员后台时发布 "日志记录" 事件,用户浏览文章时发布 "访问文章" 事件.事件发布后,负责监听的 Bean 会做出相应的处理,这种设计称为事件监听机制,其作用是可以实现业务逻辑之间的解耦,提高程序的扩展性和可维护性. ApplicationEvent 和 Listener Halo 使用 ApplicationEvent 和 Listener 来实现事件的发布与监听,二者…
项目简介 Halo 是一个优秀的开源博客发布应用,在 GitHub 上广受好评,正好最近在练习写博客,借此记录一下学习 Halo 的过程. 项目下载 从 GitHub 上拉取项目源码,Halo 从 1.4.3 开始,最低支持的 JRE 版本为 11,本人下载的是 1.4.13 版本. 前提设置 导入项目 因为 Halo 使用 Gradle 构建,所以在 idea 中导入 Gradle 项目,与 Maven 不同,Gradle 项目的依赖在 build.gradle 中添加. Halo 中主要使用…
基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的. 博客安装 项目启动成功后,我们可以访问 http://127.0.0.1:8090 进入到博客首页,或者访问 http://127.0.0.1:8090/admin 进入到管理员页面.但如果博客未安装,那么页面会被重定向到安装页面: 这是因为 Halo 中定义了几个过滤器,分别为 ContentFilter.ApiAuthenti…
从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项目中的每个开发者使用他自己的风格. 所有代码都保持一致风格的大型库,更容易让人理解. 有许多资源是关于能让人采取的更好的编码规则的,我们可以通过以下方式学到好的编码规则: 阅读书或杂志 浏览网站 与同事交流 参加培训 另一个更有趣的方法是通过研究一个成熟的知名开源项目来得知其开发者是怎样编写代码的.…
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理 Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强. 1…
FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 项目地址:http://www.fbreader.org/FBReaderJ/ Angle Angle是一款专为Android平台设计的,适合快速开发的2D游戏引擎,基于OpenGL ES技术开发.该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现. 项目地址:http://code.google…
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…
     最近由于项目加急,手里有好多看了差不多的开源项目,其中好多是大家经常用到的.图片的缓存BitmapFun(Android的文档中),AfinalMap,下拉刷新PullToRefresh等等吧,不过由于项目需要,我要就简要说下今天我要讲的这个组件,这个组件的项目地址. 看着左边的猪脚是不是觉得这个很像IOS中的UITableView,不过我告诉这是Android的ListView. 没看代码前,我看到作者说这个是a customized ListView,这是不敢相信,ListView…
  开源项目: cms 国内 dedecms cmstop 国外 joomla, drupal 电商 国内 ecshop 国外 Magento 论坛 discuz 博客 wordpress   学习时间 : 早上9点半-12点 2.5小时 下午2点-6点 4小时 一天有6.5个小时 初步学习内容: 前台首页的数据调用和展示 后台用户管理模块的管理界面(添删改查) 学习要求: 先整体后局部阅读业务 运用甘特图法记录每一步业务到博客 参考业务并练手…
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…
下面我们来看第二层:Data   这一层相对来说是对Core层的具体实现了. 从命名可以看出来,这和数据库相关. 1.Db.cs CodeFirst模式的本地数据库类,继承了DbContext. protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Dinner>().HasMany(r => r.Meals).WithMany(o => o.Dinner…
本机配置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…
信息收录项目 版权声明:本文为博主初学经验,未经博主允许不得转载. 一.前言 记录在学习与制作WPF过程中遇到的解决方案.  需求文案.设计思路.简要数据库结构.简要流程图和明细代码,动图细化每步操作,入门级引导文章: 项目功能包括:登录.首页.数据维护 和 全文搜索等增删查改的常用操作: 二.配置 系统环境:win10 开发工具:Visual Studio 2017 开发语言:C#.WPF (MVVM框架) 数据库:SQLiteStudio 三.附件 vs_enterprise.exe   在…
原文地址: https://blog.csdn.net/u011781521/article/details/79056974 一.框架简介 AG-Admin是基于Spring Cloud微服务化开发平台,具有统一授权.认证后台管理系统,其中包含具备用户管理.资源权限管理.网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架.代码简洁,架构清晰,适合学习和直接项目中使用.核心技术采用Eureka.Fegin.Ribbon.Zuul.Hystrix.JWT Token.M…
首先在github上面将ProDinner项目通过 Git Bash 克隆到本地,接下来我们开始分析这个项目吧~ 系统采用.Net 4.5, Asp.net Mvc 5,VS2012,Sql server,系统的整体设计非常轻量级,却做到了整体架构分层明显,模块耦合度低的架构思想,很适合新手学习. Core层实现了本地化Model和EF模型化需要的model数据,另外,Core层还为低耦合的业务逻辑和低耦合的数据访问做好了接口准备. 1.Model: 以下是表关系的大致内容: 我们在分析数据库表…
1.概述 多看多学涨姿势, github真是个宝库 这个项目主要是实现数字进度条效果 github地址在https://github.com/daimajia/NumberProgressBar 感谢开源作者! 梳理主要知识点: [1]熟悉自定义view的流程 [2]实现原理 [3]android中的view坐标系使用 [4]onMeasure优雅的方法书写 [5]canvas中drawText方法注意点 [6]代码的可读性非常强 2.项目要点分析 [熟悉自定义view的流程] 自定义view需…
第四层:Resources   这一层里面主要是几个资源文件. 资源文件知识小杂烩: 几乎每一个生产性应用程序都需要使用资源.资源是在逻辑上由应用程序部署的任何非可执行数据.资源可以在应用程序中作为错误信息显示,或者作为用户 界面的一部分显示.资源可以包含多种形式的数据,包括字符串.图像和持久的对象.通过在资源文件中存储数据,无需重新编译整个应用程序即可更改数据.在.net中,有文本文件.resx 文件和 .resources 文件三种资源文件.如果资源将只包含字符串数据,则文本文件是最简单的选…
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…
https://blog.csdn.net/guolin_blog/article/details/87900605 https://medium.com/androiddevelopers/viewmodels-a-simple-example-ed5ac416317e…
https://github.com/liuhongjun719/react-native-DaidaiHelperNew 借贷助手https://github.com/liuhongjun719/react-native-BabyHealth- 仿宝宝健康https://github.com/nihgwu/react-native-sudoku 数独https://github.com/attentiveness/reading readinghttps://github.com/CoderG…
一.流程分析 二.代码 1.view层 (1)list.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="…
1.效果预览 1.1.需要做到的真实效果 1.2.触发的点击事件 在MediaArticleVideoViewBinder的每一个item点击事件中: VideoContentActivity.launch(bean); 在NewsArticleVideoViewViewBinder的每一个item点击事件中: VideoContentActivity.launch(item); 2.视频详情的活动 2.1.首先看一下第三方库==>视频播放==>jiecaovideoplayer的使用 git…
Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai.me/ Linux:  https://github.com/torvalds/linux Android: https://github.com/android Android 官方资源:https://github.com/kesenhoo Android 技术开发周报:http://www.…