自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 自定义默认的apk名称

gradle, 重命名, android, android studio

2023-01-30 11:39:51 140

原创 在Ubuntu上搭建Nexus服务

ubuntu nexus maven gradle

2022-12-18 15:33:16 1324

原创 远程控制Ubuntu

在Ubuntu上安装team viewer或者向日葵,进行远程控制,这里记录采用team viewer方式的配置过程,向日葵等远程控制类似。

2022-10-14 16:09:51 3413

原创 Snackbar + Floating Action Button

Snackbar + Floating Action Button另外一篇文章中,有关于Snackbar的相关介绍,这里主要做一个扩展。Floating Action Button(FAB)FAB主要在页面展示重要或常用的交互入口,它大多以圆形带阴影的按钮样式“浮”在当前页面上方。FAB + Snackbar先看效果:这里模拟了一个点击FAB让按钮消失的效果,可以看出:点击FAB后,按钮Snackbar消失,同时底部出现了一条弹出消息snackbar;如果snackbar和FAB

2022-05-21 22:24:15 216

原创 弹出式消息 - Snackbar

弹出式消息 - Snackbar弹出式消息有多种,如Toast, Notification, Snackbar等,谷歌Material Design推出后,建议前台中使用Snackbar,后台中使用Notification代替Toast。Snackbar简介Snackbar是一种轻量级的消息反馈,将会在位于设备左下角显示一则简短的消息。和Toast一样Snackbar会在短暂显示后自动消失,此外Snackbar还可以和用户交互,如滑动清除,点击事件等。Snackbar的使用需要有几个条件:BaseT

2022-05-20 15:44:22 783

原创 Notification-通知

Notification-通知通知是一种消息,这种消息呈现在应用UI之外,通过通知可以对用户进行提醒、可以和其他用户收发信息等。通过点击通知,可以唤起app页面或者直接在通知上执行一些操作。下面介绍通知的一些常用用法。展示一条普通通知先来看一个效果:从这张截图上,可以看到有一条通知消息,如果要实现这个效果,参考以下实现逻辑:private static final String CHANNEL_ID_1 = "CHANNEL_ID_1";public void doNotify(View v)

2022-05-14 22:48:48 727

原创 CardView-卡片布局

CardView-卡片布局简介CardView是一个带圆角和阴影的FrameLayout,继承关系如下:java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ androidx.cardview.widget.CardView重要的属性有:圆角-对应xml属性:app:cardCornerRadius, 对应字段:ra

2022-04-26 22:11:19 478

原创 通过ItemDecoration实现RecyclerView分割线

通过ItemDecoration实现RecyclerView分割线RecyclerView分割线可以有多种实现,最简单的是父view底色+子view差色实现。这里主要用ItemDecoration方式来实现,这样的实现更加具有差异化的可定制性。创建布局文件创建布局文件:activity_recycler_view.xml<androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_vertical" andro

2022-04-19 23:41:36 577

原创 Jetpack-Room数据库

使用Room将数据保存到本地数据库简介Room持久库在SQLite之上提供了一个抽象层,以便在充分利用SQLite的强大功能的同时,能够流畅的访问数据库,具体来说,Room有以下优点:SQL查询的编译时验证提供方便的注解,能最大减少重复和易错的样板代码简化了数据库迁移路径因此建议使用Room,而不是直接操作SQLite API。设置在 build.gradle中,添加以下依赖://Kotlin annotation processing tool pluginapply plugin

2022-04-02 21:22:30 2920

原创 java-microservice-01-vue-05-template

java-microservice-01-vue-05-template 模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。 实例 <!DOCTYPE htm

2022-01-19 16:19:44 426

原创 java-microservice-01-vue-04-lifecycle

java-microservice-01-vue-04-lifecycle 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。 同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。 下面通过一个完整简单的例子,看看Vue的生命周期执行过程: <!DOCTYPE html><html lang="en"> <head&gt

2022-01-11 14:55:30 75

原创 java-microservice-01-vue-03-data-and-method

java-microservice-01-vue-03-data-and-method 命名数据对象和匿名数据对象: <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>数据与方法</title> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]

2022-01-10 15:25:26 237

原创 java-microservice-01-vue-02-introduction

java-microservice-01-vue-02-introductionVue常见用法先来看个完整例子:<!DOCTYPE html><html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml"><head> <meta charset="UTF-8"> <title>adv

2021-12-30 15:32:16 669

原创 java-microservice-01-vue-01-helloworld

java-microservice-01-vue-01-helloworld初识vueVue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。hello world工程 三步实现简单的hello world页面: &

2021-12-27 17:41:21 443

原创 ssm-03-spring-mvc-02-simple-login

ssm-03-spring-mvc-02-simple-login尝试使用spring mvc来实现简单的登录功能,pom依赖这里不一一列出来。搭建Hello World.jsp: 新建maven工程: 一直点击下一步就行,此后功能文件夹结构只有一个webapp文件夹。 配置smart tomcat: 要注意配置时,部署目录是项目所在的webapp目录。 运行空项目,验证tomcat配置: 在浏览器中输入:http://localho

2021-12-23 17:03:11 442

原创 ssm-03-spring-mvc-01-introduction

ssm-03-spring-mvc-01-introductionMVC框架简介在学习Spring MVC前,先来看看MVC框架。在经典的MVC模式中,M(Mode)指业务模型,V(View)指用户页面,C(Controller)指控制器,使用MVC的目的是让 M和V的代码实现解耦,从而使一个程序可以有不同的表现形式。 V(View):指用户看到并与之交互的界面; M(Mode):指业务规则,返回了V视图所需的数据; C(Controller):接受用户输入调用对应M模型

2021-12-13 17:28:10 230

原创 ssm-spring集成mybatis事务

ssm-spring集成mybatis事务事务MyBatis-Spring库的引入,无需创建新的MyBatis事务管理器,就能使MyBatis接入到Spring事。引入的方式既可以是注解,也可以是aop。未配置事务实例首先来看看未配置事务时,执行一组先增加后删除(删除异常)的数据库语句场景。数据库连接配置延用之前的,这里不再介绍。 编写DAO public interface StudentMapper { void add(Map<Object, Object&g

2021-11-18 17:20:39 707

原创 ssm-spring集成mybatis

ssm-spring集成mybatisMyBatis-Spring简介 MyBatis-Spring是一个依赖库,可以无缝的将MyBatis整合到Spring中。该库可以让MyBatis参与到Spring事务管理中,可以负责mapper和SqlSession的创建和注入, 可以将MyBatis中的异常转换为Spring的DataAccessException。最终让你构建的工程代码脱离MyBatis,Spring和MyBatis-Spring的依赖。快速开始 导入依赖:

2021-11-11 14:39:08 1062

原创 ssm-spring之aop(xml+annotation)

ssm-spring之aop(xml+annotation) AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离, 从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 主要功能应用

2021-09-22 21:43:54 145

原创 ssm-spring代理模式(静、动态)

ssm-spring代理模式(静、动态)一、代理模式 代理模式的定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 组成: 抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。 真实角色:实现

2021-09-02 16:02:28 119

原创 ssm-spring入门

ssm-spring入门Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核。是Spring全家桶(Sp

2021-08-30 15:51:14 75

原创 ssm-mybatis进阶之动态sql

ssm-mybatis进阶之动态sql动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦, 例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。MyBatis 动态 SQL 主要通过在mapper映射文件中,使用类似于JSTL语言进行编写。动态SQL元素MyBatis 3 之后,元素已经大大精简,主要有以下几种: if

2021-08-25 14:10:00 108

原创 ssm-mybatis进阶之复杂结果集映射

ssm-mybatis进阶之复杂结果集映射一、简单映射先准备好数据库和工程,准备工作可以参考之前的记录。下面举例简单说明将数据库中查询的数据映射为对象是如何实现的: mapper中编写方法: List<Student> getAllStudent2(); 映射文件中写查询: <select id="getAllStudent2" resultType="com.zx.mybatis.po

2021-08-23 15:58:04 145

原创 ssm-mybatis mapper补充之注解

ssm-mybatis mapper补充之注解注解说明使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句,比如:嵌套联合映射。这里对一些简单的mapper用注解方式实现数据库操作。准备工作 工程配置 工程配置这里就不细说,可以看之前的入门操作说明: https://blog.csdn.net/HenryChow_2015

2021-08-18 16:34:12 195

原创 ssm-mybatis日志和log4j

ssm-mybatis日志和log4j类型mybatis日志输出配置,可以配置的类型有: SLF4J LOG4J - 常用,需导包和配置 LOG4J2 JDK_LOGGING COMMONS_LOGGING STDOUT_LOGGING - 简单,无额外配置,系统标准输出 NO_LOGGINGSTDOUT_LOGGING标准输出配置比较简单,只需要在mybatis配置文件中,按照下图所示配置即可:配置前后对比,可以看到配置后控制台多了

2021-08-13 11:28:50 210

原创 ssm-mybatis进阶

ssm-mybatis进阶简介ssm-mybatis入门后,理解一下进阶概念,从mybatis配置和sql映射器两大方向探索。config配置文件configuration配置比较多,这里选一些常用的配置来举例。需要注意的是,配置项必须按照规定的顺序进行配置,否则会出现匹配错误: 属性(properties):属性可以在外部进行配置,并可以进行动态替换。 在resources目录下创建db.properties配置文件,并配置数据库连接参数: 在mybatis

2021-08-12 17:37:32 111

原创 ssm-mybatis入门

Mybatis入门简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。官网:https://mybatis.org/mybatis-3/zh/index.htmlhello world入门

2021-08-10 17:50:51 95

原创 java web-filter过滤器

java web-filter过滤器1、定义Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。 Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。 调用 Servlet 前调用所有附加的 Servlet 过滤器。 Servlet 过滤器是可用于 Servlet 编程的 Java 类,可以实

2021-07-29 15:21:21 85

原创 java web-cookie session

java web-cookie session1、cookieCookie 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供 该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录 用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序。Cookie是一段不超过4KB的小型 文本数据,由一个名称(Na

2021-07-28 14:59:41 192

原创 java web-转发、重定向

java web-转发、重定向这里用简单的例子分别实现转发和重定向,然后对其进行比较。1、转发(forward)首先在简单修改下index.jsp以实现最基本的登录功能:接下来编写servlet接收该请求并执行简单的登录校验:package com.zx.demo;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpSe

2021-07-27 16:30:15 101

原创 java web-servlet入门

java web-servlet入门简介java web中servlet相关操作,从idea构建工程开始。mavenMaven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。创建项目工程创建maven项目配置工程信息创建的工程只有webapp目录,此时需要手动新建两个目录

2021-07-26 19:05:36 97

原创 properties,xml,yaml配置文件解析

读取几种配置文件        java中,常见几种配置文件有:.properties,.xml,.yml,spring项目中对这些类型的配置文件通常有现成可用的封装,下面用手动解析的方式来操作这些类型配置文件;首先idea创建项目:properties根目录下创建配置文件:application.properties,和测试类Test.javaapplication.properties配置文件中,设置几个

2021-07-14 16:22:21 332

原创 腾讯互动白板+即时通讯+实时音视频,Android学生端接入

腾讯互动白板+即时通讯+实时音视频,Android学生端接入一、简介线上教学方案:腾讯云互动白板(Tencent Interactive Whiteboard,TIW)+即时通信(Instant Messaging,IM)+实时音视频(Tencent RTC)实现老师线上互动教学官方地址:https://cloud.tencent.com/product/tiwhttps://cloud.tencent.com/product/imhttps://cloud.tencent.com/produ

2021-07-07 23:06:09 874

原创 mysql-jdbc

mysql-jdbcJava通过jdbc连接远程数据库并执行最简单的sql查询获取数据。更多jdbc介绍,请参考官方文档准备假设远端有一个数据库mydb和一张简单的表student:创建Java工程: 接下来创建一个jdbc demo工程,这里使用idea,eclipse同理;然后从官网下载jdbc connector,解压后将jar包到工程lib目录,如下图所示:编写Java代码: 注册驱动->连接数据库->获取可执行sql的对象->执行查询数据->获

2021-06-06 22:59:41 113 3

原创 frp+nginx内网穿透

frp+nginx内网穿透背景:自己有台内网Linux主机,希望被外网访问(ssh、http、https);准备工作内网Linux主机-c,可以访问c主机和外网的主机-s(windows/linux)官网下载nginx到s:https://nginx.org/en/download.htmlgithub上下载windows版frp到s:https://note.youdao.com/github上下载linux版frp到c:https://note.youdao.com/s端配置步骤配

2021-05-11 23:55:43 416 2

原创 jdk keytool 自签证书

jdk keytool 自签证书https需要用到ssl证书,可以从阿里等平台申请,本文采用jdk keytool进行自签证书。生成环境:linux用jdk自带keytool工具生成密钥库keytool -genkey -keyalg RSA -alias server -keystore ./keystore.jks -storepass 123456 -validity 36500 -keysize 2048将生成的密钥库转换为p12keytool -importkeysto.

2021-05-10 22:11:30 259

原创 FFmpeg 从零开始开发简单的音视频播放器(七)(完结)

c#音视频播放器一、简单说明        前面FFmpeg 从零开始开发简单的音视频播放器(五)中,我们已经完成了一个没有声音的纯视频播放器,现在我们要在该视频播放器的基础上进行改造,添加音频播放功能。通过上一节FFmpeg 从零开始开发简单的音视频播放器(六)的开发,我们已经完成了c++部分的音频解码功能,现在就接将它整合到视频播放器中。二、暴露c++接口        在头文件中,添加以下函...

2018-03-27 17:35:08 4721 2

原创 FFmpeg 从零开始开发简单的音视频播放器(六)

添加音频解码功能一、前言        前面第四节“FFmpeg 从零开始开发简单的音视频播放器(四)”,进行了视频的解码和转码,我们这节就在该基础之上,添加音频解码功能。二、代码// FFmpegDll.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include "FFmpegDll.h"extern "C" {#include "libavc...

2018-03-26 19:49:18 1618

原创 FFmpeg 从零开始开发简单的音视频播放器(五)

c#中播放视频一、简单说明        上一节,已经完成了视频的解码和转码功能,如果现在经理提了一个需求:要用c#开发一个视频播放器。那么如何才能使用c#,将上一节打印出来的看不懂的像素,显示到页面上呢,下面就一步一步来实现。二、暴露c++接口        1、创建头文件:右击c++项目--&gt;添加新建项        2、引入头文件:        3、头文件中,暴露c++中的函数接口:...

2018-03-23 17:12:31 2779 1

原创 FFmpeg 从零开始开发简单的音视频播放器(四)

视频转码和解码一、开门见山        代码注释里对逻辑做了简单说明,多余的解释我就不说了,直接上代码:// FFmpegDll.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"extern "C" {#include "libavcodec/avcodec.h"#include "libavformat/avformat.h" #include...

2018-03-22 17:21:04 2673

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除