TreeView设置节点图标
没子节点的设置其图标为 0 有节点的设置其图标为 1 procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
with TreeView1 do
begin
for i:= 0 to Items.Count -1 do
begin
if Items[i].HasChildren then
begin
NHibernate之并发控制简记
对于web和企业来说,跨用户交互过程的数据事务是不可接受的。单一的应用事务中可能会跨多个数据库事务。如果这些数据库事务只有一个(最后一个)进行了更新数据,其他的只是简单的读数据,则这个应用事务就是原子性的。如果出现多个用户同时写入了一条数据,最后结果是不确定的。如果多个用户删除了同一条数据,就会异常终止数据。并发控制有2种方式:悲观并发控制和乐观并发控制。NHibernate使用的是乐观并发控制。 一。悲观并发控制 悲观并发控制是基于控制锁的并发控制。在对一条数据的所有用户之前,添加一把并
SpringBoot起飞系列-自定义starter(十)
一、前言 到现在,我们可以看出来,如果我们想用一些功能,基本上都是通过添加spring-boot-starter的方式来使用的,因为各种各样的功能都被封装成了starter,然后把相关服务注入到容器中去,那么如果我们想用一下自己的某些功能呢,那就也要编写一个自定义的starter,所以今天我们就来看看,怎么编写自己的starter,来实现在springboot中实现自己想要的一些功能。 二、原理 回想一下, 当我们使用一个官方的starter的时候,只需要将相应的starter依赖包添加到po
设计模式~简单工厂模式
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式的几种形态: 简单工厂模式(Simple Factory):又称静态工厂方法模式 工厂方法模式(Factory Method):又称多态性工厂模式或虚拟构造子模式 抽象工厂模式(Abstract Factory): 又称工具箱模式 简单工厂模式的结构 从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色以及具体产品角色等三个角色: 工厂类角色(Creator): 担任这个角色的
luffy-课程前端页面组件
FreeCourse.vue <template>
<div class="course">
<Header></Header>
<div class="main">
<!-- 筛选条件 -->
<div class="condition">
<ul class="cate-list">
<li class="title">课程分类:<
Java并发编程---线程间的通信基础篇
线程间的通信可以分为文件共享、网络共享、共享变量、JDK提供的线程协调API(suspend/resume、wait/notify、park/unpark),今天我们着重来讲一下JDK提供的线程协作的API。 suspend/resume suspend/resume方式的线程间协作时容易产生死锁,所以已经被JDK所废弃使用。(典型的生产者消费者模型中,生产者在占用了lock1锁之后,进行了suspend挂起操作,而消费者此时需要拿到lock1锁之后才能生产包子,那么此时就会产生死锁的现象;另
如何使用描述符对实例属性做类型检查?
需求: 在某项目中,我们实现了一些类,并希望能像静态语言那样(C,C++,Java)对它们的实例属性做类型检查 P = Person() P.name = 'Bob' # 必须是str P.age = 18 # 必须是Int P.height = 1.83 # 必须是float 要求: 1、可以对实例变量名指定类型 2、赋予不正确类型时抛出异常 思路: 使用描述符实现需要类型检查的属性:分别实现__get__,set,__delete__方法,在__set__内使用isinstance函数做类
SpringBoot起飞系列-配置嵌入式Servlet容器(八)
一、前言 springboot中默认使用的是tomcat容器,也叫做嵌入式的servlet容器。因为它和我们平常使用的tomcat容器不一样,这个tomcat直接嵌入到的springboot,平常我们使用tomcat容器是一个独立的应用,配置的时候需要在tomcat中的xml中配置,而使用springboot就不一样了,本文我们来学习怎么配置和替换servlet容器、以及注册传统的servlet组件。 二、自定义Servlet容器的相关配置 2.1 修改配置文件的值 我们可以在applicat
Sychronized原理小揭秘
synchronized synchronized java中的关键字,主要用于加锁。添加的锁有一下几个特点: 互斥性 同一时间点,只有一个线程可以获得锁,获得锁的线程才能处理被synchronized修饰的代码。 阻塞性 只有获得锁的线程才可以执行被synchronized修饰的代码,没有获得锁的线程只能阻塞,等待所释放。 可重入性 如果一个线程已经获得锁,在未释放之前,再次请求锁的时候,一定可以获得锁的。 synchronized 的用法 synchronized 的使用方法比较简单,主要
Kafka基础(三):Kafka 工作流程分析
1 Kafka 生产过程分析 Kafka核心组成 1.1 写入方式 producer 采用推(push)模式将消息发布到 broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障 kafka 吞吐率)。 1.2 分区(Partition) 消息发送时都被发送到一个 topic,其本质就是一个目录,而 topic 是由一些 PartitionLogs(分区日志)组成,其组织结构如下图所示: 我们可以看到,每个 Partiti
SpringBoot起飞系列-国际化(六) SpringBoot起飞系列-Web开发(五)
一、前言 国际化这个功能可能我们不常用,但是在有需要的地方还是必须要上的,今天我们就来看一下怎么在我们的web开发中配置国际化,让我们的网站可以根据语言来展示不同的形式。本文接续上一篇SpringBoot起飞系列-Web开发(五)来在此基础上进行国际化配置。 二、国际化配置 2.1 springboot中的自动配置 springboot已经自动配置好了管理国际化资源文件的组件: @ConfigurationProperties(prefix = 'spring.messages') publi
MySQL server version for the right syntax to use near 'identified
本文借鉴https://blog.csdn.net/shenhonglei1234/article/details/84786443 因为mysql升级到>8.0.13后, 授权指令要分开执行: #创建账户(此例为root)
create user 'root'@'%' identified by 'password';
#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'
MYSQL:实战优化
连接 服务端 控制连接超时时间,总连接数 客户端 使用连接池(连接池里连接数量不是越大越好,默认8-10个) SQL Explain 索引 最左匹配原则 分表分库 垂直拆分 水平拆分 主从复制 从服务器:I/O Thread:请求master获取binlog,然后写入到relay log里;从服务器SQL Thread读取relay log中的数据,落地到数据库 主服务器:发送binlog 数据一致性问题 用半同步复制(一个slave写入后就返回),在尽量保证一致性的同时降低延迟。 如何降低延
Java基础系列-深入理解==和equals的区别(一)
一、前言 说到==和equals的问题,面试的时候可能经常被问题到,有时候如果你真的没有搞清楚里边的原因,被面试官一顿绕就懵了,所以今天我们也来彻底了解一下这个知识点。 二、==和equals的作用 2.1 ==的作用 在java中我们用==来判断两个变量是否相等,但是会根据数据类型有所区别: 1.对于8种基础数据类型(byte、short、int、long、double、float、boolean、char)来说==是判断变量的数值是否相等。 byte y1 = 1, y2 = 1; sho
Datawhale 之NLP学习-打卡(四)
Task4 基于深度学习的文本分类1 1.学习目标 学习FastText的使用和基础原理 学会使用验证集进行调参 2.文本表示方法Part2 现有文本表示方法的缺陷 One-hot、Bag of Words、N-gram、TF-IDF几种文本表示方法存在的问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。 FastText 一个三层的神经网络,输入层、隐含层和输出层 代码实现 3.基于FastText的文本分类 代码 import pandas a
SpringBoot中报错java.lang.RuntimeException: java.lang.reflect.InvocationTargetException解决办法
报错原因,mapper的版本太低 解决办法:把版本改高一点即可
探索 css 动画的奥秘
动画的意义 动画是什么 动画可以吸引注意力,也可以更有效的传达信息。精美、微妙、适当的动画能提供一种更强大的交流方式,能够让用户更直观“赏其美,懂其意”。 随着现代游览器的不断进步及优化,能更好地支持动画,在许多方面,它和页面中使用的字体及布局一样重要。 在页面中,动画有两种作用:一承接上下文,二提升用户使用体验。例如我们常见的大转盘抽奖动画,转动动画不仅体现了通过随机抽取,奖品出现,而且提升了用户的效果,增加了乐趣。 在 css 中,动画一般通过 transition 和 animation
今日推荐
周排行