- 在 cmake_modules 目录下编写 FindG2O.cmake 以集成 G2O
XU磊260
SLAMc++开发语言
1.简介在使用G2O(GeneralGraphOptimization)库进行优化问题求解时,通常需要在CMake项目中正确配置G2O的头文件和库文件路径。由于G2O并未提供官方的CMake配置文件,因此需要手动编写FindG2O.cmake以确保CMake能够正确找到G2O的依赖项。本文将详细解析FindG2O.cmake的编写方式,并介绍其工作原理。2.CMake中的FindG2O.cmake
- llama.cpp编译
1nv1s1ble
llama
llam.cpp编译1.下载&编译gitclonehttps://github.com/ggml-org/llama.cppcmake-S.-Bbuild2.下载模型验证#下载地址https://huggingface.co/filipealmeida/open-llama-7b-v2-open-instruct-GGUF/blob/main/ggml-model-Q4_0.gguf#验证./ll
- 【vscode】一键编译运行c/c++程序
辰尘_星启
编程语言vscodec语言c++cmakedebug
概述虽然我这里使用CMake,但是它只是一个用于编译生成可执行文件的工具,完全不影响将工具换成g++,gcc等,这套配置是完全通用的右上角一键编译运行的内部流程task.json格式概述launch.json格式概述CMake格式概述攒起来,组合成通用开发环境一键编译运行的内部流程点击运行C/C++文件(或按下F5)vscode调用launch.json挑选调试器、根据参数配置运行环境调用task
- 【基于国产RK3588-NPU的yolov5的AI智能盒子】
贝壳里的沙
人工智能
基于国产RK3588-NPU的yolov5的AI智能盒子背景识别效果区别Python版本目标识别实现cmake(c/c++)版本实现背景前面写了一篇关于基YOLOV5实现的AI智能盒子的实现方案,这篇文章着重讲了如何在NVIDIA-英伟达芯片上如何实现目标识别的过程(可能已经被官方屏蔽了)。但是因为中美芯片限制问题,很多朋友联系到我,跟我提了是否可以基于国产芯片来迁移yolov5框架平台?国产芯片
- linux 下 CUDA + Opencv 编程 之 CMakeLists.txt
maxruan
编程图像处理CUDAopencvlinuxc++cuda
CMAKE_MINIMUM_REQUIRED(VERSION2.8)PROJECT(medianFilterGPU)#CUDApackageFIND_PACKAGE(CUDAREQUIRED)INCLUDE(FindCUDA)#CUDAincludedirectoriesINCLUDE_DIRECTORIES(/usr/local/cuda/include)#OpenCVpackageFIND_P
- mosquitto移植到AM335x+Linux系统
aiprtem
AM335x嵌入式LinuxMQTTlinux物联网iot
mosquitto移植到AM335x+Linux系统1.概述本文档详细介绍如何将mosquitto2.0.14版本移植到基于AM335x处理器的Linux系统中。mosquitto是一个实现了MQTT协议版本5.0、3.1.1和3.1的开源消息代理和客户端实现库。本文将介绍mosquitto库的配置、编译以及运行过程,包括依赖库的处理、交叉编译环境的配置等内容。整个项目使用CMake作为构建系统。
- js 开发笔记
我是陈大大
笔记
什么时候用如下代码:letthat=this;this的指向问题,如果methods中的方法中使用的是function而不是箭头函数,则this的指向是对象,并不是最外层的顶层对象,所以获取不到data中的数据,要用letthat=this;暂存this中的内容;数组对象中只想获取某一个字段的值,并且返回一个新的数组,方法如下://模拟数组对象letdata=[{name:"李白",age:18,
- 【CMakeLists】学习笔记
何故清风不知意
学习笔记
编写CMakeLists.txt最常用的功能就是调用其他的头文件(*.h*.hpp)、动态链接库(*.so)、静态链接库(*.a),将源文件*.cpp*.c*.cc编译成目标可执行或目标可链接库文件。CMake是makefile的上层工具,用于跨平台构建环境,生成可移植的makefile,并简化自己动手写makefile时的巨大工作量。cmake安装--linuxsudoaptinstallcma
- 在mac上如何配置clion使用googletest进行测试
rd_cheng
c++c++cliongoogletestgtest
1、下载googletest并且编译wgethttps://github.com/google/googletest/archive/release-1.8.0.tar.gz&&\tarzxfrelease-1.8.0.tar.gz&&\rm-frelease-1.8.0.tar.gz&&\cdgoogletest-release-1.8.0&&\cmakeconfigure.&&\make&&\
- libevent交叉编译
qsqya
c++
libevent交叉编译正常编译解压tarzxvflibevent-2.0.10-stable.tar.gz进入目录cdlibevent-2.0.10-stable设置安装路径./configure--prefix=/usr编译make安装makeinstall坑:默认是安装到/usr/local下的,程序执行时找不到包,可在CmakeLists.txt中修改三方包的路径交叉编译解压tarzxvf
- OSG开发笔记(三十二):深入理解相机视口、制作支持与主视图同步变换旋转的相机HUD
长沙红胖子Qt(技术Q群4597637)
Qt开发OSG三维开发QtOSG三维开发HUD相机前景HUD旋转坐标
若该文为原创文章,未经允许不得转载本文章博客地址:https://blog.csdn.net/qq21497936/article/details/143852695各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更
- C++学习(十三)(构建系统,CMAKE)
solomonzw
大数据数据库
构建系统是一组工具和实用程序,用于自动执行项目中的源代码文件的编译、链接和执行过程。构建系统的主要目标是管理编译过程的复杂性,并最终生成构建(可执行文件或二进制文件)。在C++(cpp)中,一些常见的构建系统包括:GNUMake:这是一个流行的构建系统,用于定义构建过程。它检查源文件的依赖关系和时间戳,以确定需要编译和链接哪些文件。Makefile代码示例:#MakefileCXX=g++CPPF
- linux下jsoncpp编译
虎皮猫大人王
linux系统linux系统
折腾了一顿,我使用ubuntu16.04编译的jsoncpp,由于使用的芯片工程需要16.04,无法使用最新的ubuntu系统。发现jsoncpp编译时,CMakeError:CouldnotfindCMAKE_ROOT!!!CMakehasmostlikelynotbeeninstalledcorrectly.Modulesdirectorynotfoundin/usr/local/share/
- 【嵌入式Bluetooth应用开发笔记】第二篇:上手BLUEZ应用开发
林零七
蓝牙开发笔记bluezBluetoothlinuxdbusgdbus
概述BlueZ是一个开源的蓝牙协议栈,提供了丰富的API和工具,支持Linux系统中的蓝牙应用开发。BlueZ提供的API包括D-BusAPI、HCIAPI、L2CAPAPI、RFCOMMAPI、SDPAPI、MGMTAPI等,开发者可以使用这些API实现自己的蓝牙应用程序。BlueZ的架构由多个模块组成,其中主要的模块包括蓝牙协议栈(BluetoothStack)、蓝牙管理器(Bluetooth
- CentOs7 安装 nginx-1.26.2 源码安装详解
TOP印
工具nginx运维
要在CentOS7上安装Nginx1.26.2版本(或其他版本)并通过源码进行安装,下面是详细的步骤:1.安装依赖首先,确保你的系统已经安装了必要的依赖包。打开终端并运行以下命令:sudoyumupdate-ysudoyuminstall-ygccmakepcre-develzlib-developenssl-develgcc:GNU编译器,用于编译源码。make:构建工具,用于编译Nginx。p
- 在 CLion 中使用 Google Test 进行单元测试
獨梟
单元测试单元测试c++
介绍GoogleTest(GTest)是Google开源的C++单元测试框架,提供了丰富的断言、测试夹具(Fixtures)和测试管理功能,使C++开发者能够编写高效的单元测试。本博客将介绍如何在不同平台(Windows、macOS、Linux)上,使用CLion配置GoogleTest进行C++单元测试,包括安装GoogleTest、配置CMakeLists.txt、编写和运行测试代码,以及如何
- CMakeLists.txt基础语法
LS_P
嵌入式常用工具开源
0.概览本节从简单示例开始,逐渐增加其复杂性,来逐渐展示CMakeLists.txt的基本语法。1.多文件编译语法: add_executable(可执行文件源文件1源文件2......)假设某可执行文件main由多个源码文件编译而成:add_executable(mainmain.ca.cb.c)2.指定头文件路径语法: include_directories(头文件所在路径)假设文件结构如
- YOLOv8目标检测推理流程及C++代码
吃鱼不卡次
YOLOonnxc++
这部分主要是使用c++对Onnx模型进行推理,边先贴代码,过段时间再详细补充下代码说明。代码主要分成三部分,1.main_det.cpp推理函数主入口;2.inference_det.h头文件及inference_det.cpp具体函数实现;3.CMakeList.txt.1.main_det推理配置信息全部写在config.txt中,执行代码时会读取该文本中配置信息来进行推理,config.tx
- CMake 入门教程: 从基础到实践
arong-xu
CMakec++cmake
什么是CMake?CMake(全称为“Cross-PlatformMake”)是一种免费并开源的跨平台构建工具,用于生成构建系统文件(如Makefile和VisualStudio工程文件),从而控制软件的编译和链接过程.为什么选择CMake?CMake为项目工程解决了以下问题:跨平台构建:支持为多种平台生成配置文件,如Linux上的Makefile和Windows上的VisualStudio工程.
- CMake构建C++20 Module实例(使用MSVC)
arong-xu
ModernC++c++c++20linuxmodules
提醒:本文中的例子是在MSVC(MicrosoftVisualStudio2022Preview)编译环境上面测试通过的,截止文章更新时,没有在Clang/GCC上面验证通过.本文所有的源代码以及工程配置均可下载.背景在传统的C++编译过程中,代码的构建通常分为三个主要步骤:预处理:处理#include等指令,将头文件内容展开并插入到代码中.编译:将预处理后的代码转换为机器可以理解的目标文件.链接
- 手写精简版TinyHttpd项目(一)
Not_full
c++websocket服务器
前言:我们在之前的TinyHttpd的精读(可以在首页去查看)中已经是基本的了解了显示一个网页的基本过程,那么我们学习后可以通过手写一个精简版的进行巩固下。0.新工程的建立我们也可以顺带复习下如何通过cmake在ubuntu下新建一个工程(记得提前下载cmake)。1.新建文件夹My_Tinyhttpd。2.新建文件:CMakeLists.txt,service_socket.cpp。3.CMak
- 从零开始 CMake 学习笔记 (E)installing
OOOrchid
混合计算c++cmake
从零开始CMake学习笔记(E)installing开始前先默念三遍口诀:DeclareatargetDeclaretarget’straitsIt’sallabouttargets本系列主要根据GitHub上的cmake-examples项目进行翻译总结,同时对于不清晰的概念及函数进行查阅理解记录形成。文章目录从零开始CMake学习笔记(E)installing1介绍1.1文件树1.2文件简介2
- 零基础CMake学习笔记
天鹅打架了
C/C++编程CMake
零基础CMake学习笔记1.名词解释makecmakeMakefileCMakeLists.txt2.CMake语法介绍2.1常用指令2.1.1project2.1.2set2.1.3message2.1.4add_executable2.1.5aux_source_directory2.1.6include_directories2.1.7add_definitions2.1.8add_subd
- 使用cmake preset + vs2022构建Qt C++项目
Stone_OverLooking
cmakeqtc++
直奔主题:Qt6官方推荐已经从qmake到cmake迁移了,以后cmake的支持会越来越多。cmakepreset是cmake新版本中添加的内容,通过预设去构建cmake项目由于vs2022的默认预设会自动生成,需要配置环境变量,windows版本的是msvc版的,如果需要切换mingw64需要在preset文件中添加对应的mingw64的环境。需要用到自定义的配置环境要将hidden字段置为fa
- cmake学习笔记
Yancey Lee
开发工具cmake
cmake学习笔记1、引言2、cmake基本知识2.1概念2.2内部编译与外部编译2.3CMakeLists.txt基本规范3、常用变量与命令3.1常用变量3.2常用命令5、实例1分析6、实例2分析7、参考文献1、引言一般写完程序之后都要进行编译,编译出问题也经常遇到。我之前做机器人的开发都是按照别人写好的程序进行修改,而且是基于ROS的开发环境,对cmake的使用总是似懂非懂,只知道一些碎片化的
- 海思视觉Hi3516CV610运行sample
pride.li
海思视觉linux视觉检测
使用前先提前,请使用nfs将开发板和ubuntu进行共享,共享目录为nfs编译samplecdHi3516CV610_SDK_V1.0.1.0/smp/a7_linux/source/mpp/sample/vencmakeallcp sample_vencnfsnfs:ubuntu和开发板共享的目录移植ko如果需要重新编译kocdHi3516CV610_SDK_V1.0.1.0/smp/a7_li
- Ubuntu20.04下VSCode配置PCL和OpenCV库-C++
Pertance
vscodeopencvc++
Ubuntu20.04+VSCode+Cpp+PCL+OpenCV准备工作代码编辑:VSCode开发语言:C++编译工具:CmakeG++依赖需求:PCL/OpenCV安装PCL库sudoaptinstalllibpcl-dev配置OpenCV库安装依赖sudoapt-getinstallbuild-essentialsudoapt-getinstallcmakegitlibgtk2.0-devp
- c++编译过程初识&静态&动态链接库&makefile&cmakelists初始
测试盐
c++c++开发语言
编译过程预处理:主要是执行一些预处理指令,主要是#开头的代码,如#include的头文件、#define定义的宏常量、#ifdef#ifndef#endif等条件编译的代码,具体包括查找头文件、进行宏替换、根据条件编译等操作。g++-Eexample.cpp-oexample.i编译:进行词法分析、语法分析、语义分析、代码优化等,将.i文件转换为汇编代码文件,即.s文件。g++-Sexample.
- vscode远程连接ubuntu开发并进行c++的gdb调试
rui酱今天有学习
vscodeubuntuc++
咱就是说,gdb手动调试不太直观,cmake又没来得及学!!!正常来说都是win系统下vscode连接ubuntu来进行开发,而在vscode中配置调试文件总是不成功,尤其是有makefile的情况下,捣鼓很久加参考大神,终于搞好,以下仅作为配置记录调用调试的时候会自动创建这两个文件,如果没有就手动创建即可先介绍我的文件构造,工作文件目录为/home/knight/PCM2AAC,而我的可执行文件
- 【开发笔记】 Postgres-12.1数据库,基于docker-compose做主从备份
love__nana
数据库postgresql
如题,关于postgres12.1版本做主从备份一开始安装了两个数据库,照着好多教程,配置主数据库后,数据库无法启动,查看启动日志,发现是主数据库的postgresql.conf中的配置了wal_keep_segments,配置文件中有这个参数的说明,但是配置了就无法启动,原因在查找中折腾了一天,最后在大神的帮助下,基于网上现成的9.5版本的docker,改造调试了下,将12.1版本的整理出来直接
- Java实现的简单双向Map,支持重复Value
superlxw1234
java双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
- PL/SQL触发器基础及例子
百合不是茶
oracle数据库触发器PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
- [时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
- easy ui datagrid上移下移一行
商人shang
js上移下移easyuidatagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
- Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
- springMVC 使用JSR-303 Validation验证
杨白白
springmvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
- log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
- 使用ajax和history.pushState无刷新改变页面URL
agevs
jquery框架Ajaxhtml5chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
- centos中文乱码
AILIKES
centosOSssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
- 触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
- JS正则表达式的i m g
bijian1013
JavaScript正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
- HTML5模式和Hashbang模式
bijian1013
JavaScriptAngularJSHashbang模式HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
- [Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
- 【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
- 记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
- 巧用视错觉-UI更有趣
brotherlamp
UIui视频ui教程ui自学ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
- 线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构算法线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
- HTTP协议详解
chicony
http协议
引言
- Scala设计模式
chenchao051
设计模式scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
- 安装mysql
daizj
mysql安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
- HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
- asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
- C语言中,关键字static的作用
e200702084
C++cC#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
- win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
- Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
- Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转递归反转二分交换反转java字符串反转栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
- 代码实现任意容量倒水问题
home198979
PHP算法倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
- Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
- 两种启动监听器ApplicationListener和ServletContextListener
spjich
javaspring框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
- JavaScript Rounding Methods of the Math object
何不笑
JavaScriptMath
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen