Laravel学习心得
目录
Laravel心得
初识Laravel
1.1什么是laravel框架
Laravel框架的特点
2.搭建开发环境
2.1 Apache 安装与配置
2.2 PHP 安装与配置
2.3 MySQL 安装与配置
难点: 1.创建配置文件
2.初始化数据库
3.启动MySQL
2.4 Composer 依赖管理工具
1.使用安装程序进行安装
2. 使用命令行安装
2.4 使用Composer安装Laravel框架
多学1招:单一动作控制器
4.Laravel常用功能
4.1文件上传
4.2 数据分页
4.3验证码
4.4 响应控制
4.5缓存操作
4.6辅助函数
5.Laravel学习中常见的问题以及解决方法
6.总结
初识Laravel
1.1什么是laravel框架
Laravel是泰勒.奥特威尔( Taylor Otwell )使用PHP语言开发的一款开源的 Web应用框架。
于2011年6月首次发布,发布以来备受PHP开发人员的喜爱,用户的增长速度十分迅猛。
Laravel是一套简洁、优雅的框架,具有简洁且富于表达性的语法。
Laravel秉承“Don't Repeat Yourself" (不要重复你自己) 的理念,提倡代码的重用。
Laravel为开发大型应用提供了强大的功能,包括自动验证、路由、Session 、 缓存、数据库迁移等。
Laravel框架的特点
1.对外只提供一个入口/public/index.php,让框架统一管理项目的所有的请求。
2.采用MVC设计模式,帮助团队更好地协同开发,为项目后期的维护提供方便。
3. 支持Composer依赖管理工具,可以为项目自动安装依赖。(螺丝刀)
4.采用ORM方式操作数据库,支持AR模式。
5.注重代码的模块化和可扩展性,开发者可以通过Laravel组件库Packalyst找到想要添
加的组件。
6. 自带各种方便的服务,提供开箱即用的用户身份验证功能和缓存系统,可以快速开发出
相应的功能。
7. 具有路由功能,Laravel框架通过路由分发每-一个请求,并可以对请求进行分组。
8. 提供Artisan命令行工具,帮助开发人员将手动的工作自动化。
2.搭建开发环境
2.1 Apache 安装与配置
安装Apache的基本步骤
获取安装包解压->配置Apache->安装Apache->启动Apache服务->访问测试
配置Apache
配置安装路径
在confhttpd.conf配置正确的安装路径:
Define SRVROOT "C:\web\apache2.4"
配置服务器域名
在conf\httpd.conf中去掉服务器域名的注释:
ServerName www.example.com:80
安装Apache
安装Apache命令:
httpd -k install -n Apache2.4
卸载Apache命令:
httpd -k uninstall-n Apache2.4
2.2 PHP 安装与配置
获取PHP->创建配置文件->在Apache中引入PHP->测试安装结果->开启常用扩展->配置索引页
难点: 在Apache中引入PHP
修改Apache配置文件httpd.conf引入PHP模块。
LoadModule php7_ _module
"C:/web/php7.2/php7apache2_ 4.dII"
setHandler application/x-httpd-php
PHPIniDir "C:/web/php7.2"
LoadFile "C:/web/php7.2/libssh2.dl"
配置索引页
在Apache配置文件confhttpd.conf中搜索DirectoryIndex,配置索引页。
DirectoryIndex index.html index.php
2.3 MySQL 安装与配置
安装MySQL->创建配置文件->初始化数据库->启动MySQL->登录MySQL->设置密码
难点: 1.创建配置文件
创建my.ini
在文件中指定安装目录( basedir)、 数据库文件保存目录( datadir)和端口号( port )。
[mysqld]
basedir=C:/web/mysq15.7
datadir=C:/web/mysql5.7/data
port=3306
2.初始化数据库
执行命令初始化数据库
初始化数据库命令如下。
mysqld -initialize-insecure
●--initialize 表示初始化数据库。
●-insecure 表示忽略安全性。当省略“-insecure"时,MySQL将自动为默认用户root 生成- -个
随机的复杂密码,而加上“-insecure"时,默认用户root的密码为空。
自动生成的密码输入比较麻烦,因此这里选择忽略安全性。
3.启动MySQL
启动MySQL服务的命令如下。
net start mysql5.7
口停止MySQL服务
停止MySQL服务的命令如下。
net stop mysql5.7
2.4 Composer 依赖管理工具
Composer是PHP用来管理依赖( dependency)关系的工具。
只需在项目中声明依赖的外部工具库,Composer 会自动安装这些依赖的库文件。
Windows下的安装方式:
1.使用安装程序进行安装
2. 使用命令行安装
Composer的安装过程:
1.是否使用开发者模式 ( Developer mode)。 若选中此项,则不提供卸载功能,推荐不选中。
2. 选择PHP命令行程序。单击“Browse..."按钮浏览文件,选择C:\web\
php7.2\php.exe即可。
3.更新 php.ini。若当前php.ini不符合Composer的环境需求,安装程序会提
示修改php.ini,并创建备份文件。若php.ini符合需求,则该步骤会自动跳过
4.填写代理服务器 。无需使用,留空即可。
Composer的安装结果:
在命令行窗口输入composer命令测试是否安装成功。
curl -sS https://getcomposer.org/installer| php
sudo mv composer.phar /usr/local/bin/composer123456
2.4 使用Composer安装Laravel框架
Laravel5.8框架的安装方式:
1.通过Laravel 安装器进行安装。
2.通过 Composer安装
Laravel框架安装命令:
composer create-project --prefer-dist laravel/laravelzsproject
●create-project表示创建项目
●--prefer-dist表示以压缩的方式下载
●laravel/laravel是框架在Composer的默认包仓库网站中的包名
●laravel表示将框架下载到laravel目录中5.8.*是版本号,表示安装5.8系列的最新版本
更新Laravel框架命令:
composer update laravel/framework
3.路由 控制器 视图
2.1路由配置文件: routes\web.php
路由示例:
Route::get('/', function (){
return
view('welcome');
Route::get()定义路由, get是路由的请求方式。
/ 表示当用户访问网站的首页。
view()函数表示要显示的视图, welcome表示视图文件名称。
Route类中的match()方法用来在1个路由中同时匹配多个请求方式,any() 方法用来在一个路由中匹配任意请求方式.
重定向路由的作用:用来实现页面跳转。
重定向路由的语法格式:
Route::redirect('请求URI', '重定向URI' [,'状态
码']);
●redirect表示实现路由重定向。
●状态码是可选参数,默认状态码是302。
重定向路由示例代码:将路由“hello"重定向到“1”。
Route:redirect('/hello', '/);
2.2创建控制器的命令:
php artisan make:controller控制器名
php artisan make:controller TestController
php artisan make:controller ZsController
●php artisan表示使用Laravel提供的artisan工具
●make:controller表示生成控制器, 在后面书写控制器名
控制器名采用大驼峰的形式,后面加上Controller后缀,如TestController bigSmalController ●ZsController
多学1招:单一动作控制器
单一动作控制器:指一个控制器只处理- - 个动作。
创建-一个Profile (个人主页) 控制器,示例命令:
php artisan make:controller ProfileController –invokable
单一动作控制器路由:
Route::get('user/{id}', 'ProfileController');
提示:单一动作控制器的路由规则中,不需要指定控制器的具体方法,当以调用方法的方式调用对象时,_invoke() 函数会被自动调用。
2.3 视图
视图文件的使用:在控制器中加载视图文件。
public function show()
{
//加载视图文件resources\views\show.blade.php
return view('show');
}
添加路由:
Route::get('test/show', 'TestController@show');
使用view()函数或with()函数为视图传递数据,示例代码:
//方式1:通过view()函数的第2个参数传递数据
return view(模板文件,数组);
//方式2:通过with()函数传递数据
return view(模板文件)->with(数组);
//方式3:通过连续调用with()函数传递数据
return view(模板文件)->with(名称,值)->with(名称,值)...
4.Laravel常用功能
4.1文件上传
Laravel框架封装好了文件上传相关的代码,调用相关方法即可实现文件上传。
文件上传表单:
处理用户上传的文件:
public function up(Request $request)
if ($request->hasFile('avatar')) {
//判断文件在请求中是否存在
$avatar = $request-> file('avatar');
//获取上传文件对象
if ($avatar->isValid()) {
//验证文件是否上传成功
$name = md5(microtime(true)) . '' . $avatar-> extension(); //自动生成文件
名
$avatar-> move('static/upload', $name); // 将上传的文件移动到指定目录
$path = '/static/upload/ . $name;
//显示上传结果
return '查看文件 ';
}
return $avatar-> getErrorMessage();
}
return '文件上传失败;
}
一个简单的PHP文件上传功能的例子:
HTML文件:
PHP文件上传
上传文件
PHP文件:
500000) {
echo "抱歉,您要上传的文件太大。";
$uploadOk = 0;
}
// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "抱歉,只允许上传 JPG, JPEG, PNG & GIF 文件。";
$uploadOk = 0;
}
// 检查如果 $uploadOk 为 0 就说明文件上传失败
if ($uploadOk == 0) {
echo "抱歉,您的文件未上传。";
// 如果一切都好,则尝试上传文件
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件 ". basename( $_FILES["fileToUpload"]["name"]). " 上传成功。";
} else {
echo "抱歉,上传文件时出现了一个错误。";
}
}
}
?>
4.2 数据分页
Laravel在模型中提供了分页查询的方法传入每页显示的记录数即可
分页查询示例代码:
$data =
Member::paginate(2);
●Member 是模型名
●paginate() 是分页查询方法,参数2表示每页显示2条数据
paginate()方法前调用where()、
orderBy()辅助查询方法,示例代码:
$data = Member::where('id', '>', 1)->paginate(2);
学生成绩列表
学生成绩列表
学号
姓名
语文
数学
英语
4.3验证码
验证码的实现步骤:
●安装验证码库
●注册验证码服务
●在视图显示验证码
●配置验证码
●判断验证码的值是否正确
安装验证码库
在Packagist网站中找到mews/captcha验证码库,使用Composer载入验证码
composer require
mews/captcha=3.0
创建验证码配置文件
验证码默认9位,通过修改配置文件更改验证码的位数,创建验证码配置文件命令
php artisan vendor:publish
执行创建命令后会出现提示信息,输入验证码的服务提供者对应的序号,
就会自动生成config\captcha.php文件
4.4 响应控制
调用redirect()函数实现页面跳转:
public function jump()
{
return
redirect('test/home');
}
重定向时指定路由: .
return redirect()-> route('home');
重定向时调用withErrors()方法传递错误信息:
return redirect('test/edit')-> withErrors(['错误提示']);
4.5缓存操作
缓存的配置文件config\cache.php,缓存数据默认保存在文件,还支持Memcached、
Redis缓存系统。
默认的缓存配置:
'default' => env('CACHE_ DRIVER',
'file'),
程序优先读取.env文件中配置的CACHE_DRIVER(缓存驱.
动)
如果.env文件中没有配置,则使用file作为默认值。
文件缓存的相关配置:
'file' => [
'driver' => 'file',
'path' =>
storage_ path('framework/cache/data')
●driver表示缓存驱动
●path用来配置缓存文件的保存路径
使用pull()、forget() 或flush()方法删除缓存: .
//从缓存中读取指定的缓存项并删除
$value = Cachepul('key');
//删除缓存项
Cacheforget('key');
//清除所有缓存
Cache::flush();
4.6辅助函数
常用数组函数: 函数名 功能描述
Arr::add() 添加指定键值对到数组
Arr::get() 从数组中获取值,如果获取的值不存在,返回默认值
Arr::first() 返回数组的第一个元素
Arr:last() 返回数组的最后一个元素
Arr::except() 根据键名将指定键值对的元素从数组中移除
Arr:forget() 使用“."拼接键名从嵌套数组中移除给定键值对
Arr::collapse() 将多个数组合并成-一个
Arr:flatten() 将多维数组转化为一维数组,数组的键是索引
常用路径函数: 函数名 功能描述
app_ path() 返回app目录的绝对路径
base_ path() 返回项目根目录的绝对路径
config_ path()返 回应用配置目录config的绝对路径
database_ path() 返回应用数据库目录database的完整路径
public_ path()返回 public目录的绝对路径
resource_ path() 返回 resources目录的绝对路径
storage_ path() 返回 storage目录的绝对路径
function capitalize($str) {
$first_char = substr($str, 0, 1); // 获取字符串的第一个字符
$rest_str = substr($str, 1); // 获取字符串的剩余部分
$capitalized = strtoupper($first_char) . $rest_str; // 将第一个字符转换成大写,并与剩余部分合并
return $capitalized;
}
5.Laravel学习中常见的问题以及解决方法
1. 配置错误:Laravel需要正确配置才能正确运行。配置错误可能会导致错误的应用程序行为。
解决方法:当你遇到配置错误时,可以通过查看Laravel日志文件来获得更多的错误信息。在Laravel配置文件中检查各种参数,确保它们正确地设置。
2. 依赖关系错误:Laravel包含许多依赖关系,这些依赖关系必须正确安装,并使用正确的版本。
解决方法:使用Composer管理Laravel的依赖关系。在composer.json文件中指定正确的依赖项和版本。使用Composer Install命令更新依赖项。
3. 模型/数据库操作错误:当你进行数据库操作时,可能会遇到各种错误,如格式错误、逻辑错误等。
解决方法:在进行模型/数据库操作之前,确保所有的数据都是正确的,并且符合规定的格式。使用Laravel提供的查询构造器和ORM(对象关系映射)来减少出错的机会。
4. 功能模块无法正确运行:你可能会遇到某个功能模块无法正确运行的情况,例如表单验证、授权、缓存等。
解决方法:使用Laravel提供的应用程序服务和类,例如表单验证器、授权类和缓存类等。使用这些服务和类可以减少开发时间,并且保证了应用程序的正确性。
5. 性能问题:Laravel是一个相对较重的框架,如果应用程序没有按照最佳实践进行开发,可能会导致性能问题。
解决方法:使用Laravel提供的缓存服务来缓存应用程序的一些数据,从而减少数据库查询的次数。还可以使用Laravel提供的排队系统、事件和侦听器来减少每个请求的处理时间。
6.总结
Laravel是一个流行的PHP Web框架,它具有干净、优雅的语法和开箱即用的特性,使得Laravel成为了PHP Web开发的首选框架之一。在学习Laravel框架的过程中,我发现了一些重要的知识点和技能。
首先,Laravel框架的核心知识点是MVC模式(模型、视图、控制器)。它们都是Laravel应用程序的必要组成部分,它们的主要职责如下:
- 模型:用于定义应用程序中的数据模型和数据库交互。
- 视图:用于渲染应用程序中的Web页面,并向用户提供界面。
- 控制器:用于处理用户请求,并调用模型和视图来执行相应的操作。
除此之外,在学习Laravel框架时需要掌握的另一个重要知识点是路由器。Laravel利用路由器将URL请求映射到对应的控制器和操作上,并提供了一些便捷的方式来定义路由器。
其次,学习Laravel框架需要了解数据库迁移和填充的概念。Laravel提供了强大的数据库迁移和填充器,用于方便地进行数据库模式管理和测试数据填充。使用迁移和填充,我们可以轻松地创建、更新或回滚数据库模式,并且可以让我们轻松地添加/修改/删除测试数据。
另外,Laravel框架还提供了许多额外的功能和库,如表单验证、用户认证、邮件发送、缓存、队列、事件等。这些功能可以大大增强Laravel框架的能力,同时也让开发变得更加高效。
最后,学习Laravel框架需要我们掌握良好的编程习惯和最佳实践。这包括良好的命名规范、高质量的代码注释、单元测试和持续集成。通过遵循最佳实践,可以确保我们的代码的可读性、可维护性和可扩展性。
总之,Laravel是一个极其强大且易于使用的PHP框架,拥有丰富的特性、清晰的语法和大量的文档和教程资源。在学习Laravel框架时,我们需要始终保持学习的动力,不断探索和尝试新的特性,同时也需要坚持良好的编程实践,以构建出高质量的Web应用程序。
你可能感兴趣的:(laravel,apache,php)
docker-compose方式搭建lnmp环境——筑梦之路
筑梦之路
linux系统运维 国产化 docker android adb
docker-compose.yml文件#生成docker-compose.ymlcat>docker-compose.ymlnginx/conf.d/default.conf">www/index.phpecho"开始启动服务..."docker-composeup-d#获取本机ipip_addr=$(hostname-I|awk'{print$1}')echo"部署完成!"echo"访问测试页
php SPOF
贵哥的编程之路(热爱分享 为后来者)
PHP语言经典程序100题 php 开发语言
1.什么是单点故障(SPOF)?单点故障指的是系统中某个组件一旦失效,整个系统或服务就会不可用。常见的单点有:数据库、缓存、Web服务器、负载均衡、网络设备等。2.常见单点故障场景只有一台数据库服务器,宕机后所有业务不可用只有一台Redis缓存,挂掉后缓存全部失效只有一台Web服务器,挂掉后网站无法访问只有一个负载均衡节点,挂掉后流量无法分发只有一条网络链路,断开后所有服务失联3.消除单点故障的主
php 高并发下日志量巨大,如何高效采集、存储、分析
贵哥的编程之路(热爱分享 为后来者)
PHP语言经典程序100题 php 开发语言
1.问题背景高并发系统每秒产生大量日志(如访问日志、错误日志、业务日志等)。单机写入、存储、分析能力有限,容易成为瓶颈。需要支持实时采集、分布式存储、快速检索与分析。2.主流架构方案一、分布式日志采集架构[应用服务器(PHP等)]|v[日志采集Agent(如Filebeat、Fluentd、Logstash)]|v[消息队列/缓冲(如Kafka、Redis、RabbitMQ)]|v[日志存储(如E
ssrf漏洞复现
ξ流ぁ星ぷ132
安全
目录基础环境查看phpinfo发现线索探测端口+gopher协议基础环境这里发现一些基础协议呗过滤掉了。但是有个提示的info,于是先看看查看phpinfo发现线索发现这台主机的地址了,于是猜测这个网段应该还有其他主机,试了一下172.21.0.1:80172.21.0.3:80果然如下(0.1是陷阱就不浪费时间了,)探测端口+gopher协议然后对这个172.21.0.3这个主机探测端口发现63
RocketMQ 核心特性实战详解
愤怒的代码
RocketMQ实战 rocketmq
RocketMQ核心特性实战详解本文基于RocketMQ4.x+rocketmq-spring-boot-starter2.3.1,从零搭建,逐步讲解RocketMQ11大核心特性,每一段代码都能直接跑。0.项目环境准备依赖引入在pom.xml文件添加:org.apache.rocketmqrocketmq-spring-boot-starter2.3.1配置文件application.ymlse
[特殊字符] 实时数据洪流突围战:Flink+Paimon实现毫秒级分析的架构革命(附压测报告)——日均百亿级数据处理成本降低60%的工业级方案
Lucas55555555
flink 大数据
引言:流批一体的时代拐点据阿里云2025白皮书显示,实时数据处理需求年增速达240%,但传统Lambda架构资源消耗占比超运维成本的70%。某电商平台借助Flink+Paimon重构实时数仓后,端到端延迟从分钟级压缩至800ms,计算资源节省5.6万核/月。技术红利窗口期:2025年ApachePaimon1.0正式发布,支持秒级快照与湖仓一体,成为替代Iceberg的新范式一、痛点深挖:实时数仓
Tomcat:Java Web应用的幕后英雄
互联网动态分析
tomcat
在当今数字化浪潮中,Java作为一门成熟且广泛应用的编程语言,支撑着无数企业级应用和互联网服务的稳定运行。而在JavaWeb开发领域,Tomcat无疑是一个举足轻重的存在,它宛如一位默默耕耘的幕后英雄,为众多Web应用提供了可靠的运行环境。Tomcat的起源与发展Tomcat的故事始于1999年,当时SunMicrosystems(后被Oracle收购)与Apache软件基金会合作,旨在为Java
ZooKeeper架构及应用场景详解
走过冬季
学习笔记 zookeeper 架构 分布式
ZooKeeper是一个开源的分布式协调服务,由Apache软件基金会维护。它旨在为分布式应用提供高性能、高可用、强一致性的基础服务,解决分布式系统中常见的协调难题(如配置管理、命名服务、分布式锁、服务发现、领导者选举等)。核心软件架构ZooKeeper的架构设计围绕其核心目标(协调)而优化,主要包含以下关键组件:集群模式(Ensemble):ZooKeeper通常部署为集群(称为ensemble
array_map函数在PHP类中调用内部方法简介
Houzhyan
php php函数库
在PHP编程中,我们经常会遇到处理数组的单元数据问题,比如对数组中每个单元应用自定义函数。一种方法是通过循环遍历整个数组,对每个单元调用自定义函数,然后用返回值替换原数组相应单元的值。这也是最常见和简单的方法,在此就不举例了。一种方法是通过PHP提供的array_map函数回调自定义函数,这也是被推荐的方法。array_map--将回调函数作用到给定数组的单元上说明:arrayarray_map(
php中调用对象的方法可以使用array($object, ‘methodName‘)?
IT 老王
php android 开发语言
是的,在PHP中,array($object,'methodName')是一种标准的回调语法,用于表示“调用某个对象的特定方法”。这种语法可以被许多函数(如call_user_func()、call_user_func_array()、usort()等)识别并执行。语法原理在PHP中,可调用对象(callable)有多种形式,其中之一是[对象实例,方法名]数组:第一个元素:对象实例(必须是已实例化
php加密的是什么,看看下面这个php代码是使用什么加密的?
xiao龟
php加密的是什么
加密的代码如下:!/usr/bin/php-qeNrtWWlTG1cW/SvY5Yqg4krevoSQuIUEiE0LYAwuijKbEGA2YbMk+TUOjEnyc976b+Y2pKZqpNcgz3gm46r5BpL69Ln3nnvved3PrrFyRhOJEAoySvT66ceoMFbS02BNEFE8XRsLRAmkHI7eKMxMHC7tnKOz+Ytuezt7SUrPS6TcOa0c6
php rad加密公钥过长,看看下面这个php代码是使用什么加密的?
范特嘻嘻
php rad加密公钥过长
加密的代码如下:!/usr/bin/php-qeNrtWWlTG1cW/SvY5Yqg4krevoSQuIUEiE0LYAwuijKbEGA2YbMk+TUOjEnyc976b+Y2pKZqpNcgz3gm46r5BpL69Ln3nnvved3PrrFyRhOJEAoySvT66ceoMFbS02BNEFE8XRsLRAmkHI7eKMxMHC7tnKOz+Ytuezt7SUrPS6TcOa0c6
在拉卡拉分账功能中实现实时更新,需结合异步回调通知和数据库事务来确保数据一致性。以下是具体实现方案
肥仔全栈开发
拉卡拉支付 php 拉卡拉支付 三方支付
一、实时更新的核心逻辑依赖拉卡拉分账回调拉卡拉分账完成后会主动推送回调通知(类似支付回调),需监听该回调并更新订单分账状态。数据库事务保障分账金额更新、状态变更等操作需放在事务中,避免部分失败导致数据不一致。二、代码实现1.分账回调处理接口(监听拉卡拉分账结果推送,实时更新数据库)//文件:application/api/controller/Notify.phppublicfunctionlak
Likeshop单商户高级版对接拉卡拉支付收银台接入全流程详解
肥仔全栈开发
拉卡拉支付 拉卡拉支付 小程序
一、前期准备(1-3个工作日)商户认证在拉卡拉官网注册企业商户账号,提交营业执照、法人身份证等材料,完成实名认证并获取商户号(MCHID)和API密钥。在拉卡拉开发者后台下载API文档(含接口参数说明)和SDK工具包(支持Java/PHP等语言)。配置参数在Likeshop后台设置拉卡拉支付参数:商户号、API密钥、异步通知地址(如https://yourdomain.com/notify)。将拉
全面探索Kafka:架构、应用与流处理
Kafka:企业级消息系统与流处理平台的深度解析ApacheKafka作为分布式流处理平台,广泛应用于大数据处理和实时分析领域。本文将基于其官方文档,详细探讨Kafka的核心功能、应用场景以及如何进行有效管理。背景简介Kafka作为高吞吐量的消息系统,支持企业级的发布-订阅模式。它能够处理大量实时数据,并支持高并发读写操作。本文将依据Kafka官方文档的内容,逐层深入,从入门到高级应用,帮助读者全
Flink 2.0 DataStream算子全景
Edingbrugh.南空
大数据 flink flink 人工智能
在实时流处理中,ApacheFlink的DataStreamAPI算子是构建流处理pipeline的基础单元。本文基于Flink2.0,聚焦算子的核心概念、分类及高级特性。一、算子核心概念:流处理的"原子操作1.数据流拓扑(StreamTopology)每个Flink应用可抽象为有向无环图(DAG),由源节点(Source)、算子节点(Operator)和汇节点(Sink)构成,算子通过数据流(S
探索实时流处理的未来:Kafka Streams 深度指南
秋或依
探索实时流处理的未来:KafkaStreams深度指南项目介绍欢迎进入KafkaStreams:实时流处理的世界!这不仅仅是一本书,更是一个通往流处理领域深层奥秘的门户。由PrashantPandey编著,这本书以ApacheKafka2.1中的KafkaStreams库为核心,为读者铺就了一条从理解基础概念到熟练掌握KafkaStreams编程的路径。无论是软件工程师、数据架构师,还是对大数据处
flink自定义函数
逆风飞翔的小叔
flink 入门到精通 flink 大数据 big data
前言在很多情况下,尽管flink提供了丰富的转换算子API可供开发者对数据进行各自处理,比如map(),filter()等,但在实际使用的时候仍然不能满足所有的场景,这时候,就需要开发人员基于常用的转换算子的基础上,做一些自定义函数的处理1、来看一个常用的操作原始待读取的文件核心代码importorg.apache.flink.api.common.functions.FilterFunction
Apache Dubbo实战:JavaSDK使用
秃了也弱了。
Dubbo apache dubbo
文章目录一、写在前面二、基于zookeeper:快速创建dubbo应用1、maven包(客户端+服务端)(注意spring版本)2、application.yml配置文件(客户端+服务端)3、定义公共接口4、启动类添加注解@EnableDubbo5、服务端6、客户端7、启动试试吧8、拓展:使用JavaConfig代替注解三、拓展配置1、注册中心2、版本与分组3、传递调用参数4、泛化调用5、泛化实现
Apache http 强制 https
熊猫小账本App
Web Linux Safe http apache https ssl
1.修改一下文件配置sudonano/etc/apache2/sites-enabled/000-default.confServerNamehongweizhu.comServerAliaswww.hongweizhu.comServerAdminwebmaster@localhostDocumentRoot/var/www/html#强制重定向到HTTPSRewriteEngineOnRewr
SpringBoot快速集成RocketMQ大全,SpringBoot使用RocketMQ收发消息
文章目录一、写在前面二、发送消息三、接收消息1、push2、Pull模式四、事务消息五、消息轨迹六、ACL功能七、请求应答语义支持八、常见问题一、写在前面官方文档:https://github.com/apache/rocketmq-spring/wiki/%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C引包:org.apache.rocketmqrocketmq-spri
低版本hive(1.2.1)UDF实现清除历史分区数据
༺水墨石༻
hive hive UDF hive hadoop 数据仓库
目标:通过UDF实现对表历史数据清除入参:表名、保留天数N一、pom文件4.0.0com.examplehive-udf-example1.0-SNAPSHOTjarhive-udf-exampleHiveUDFfordeletingpartitionsbydateUTF-81.81.8org.apache.hivehive-exec1.2.1org.apache.hivehive-metasto
python+springboot+vue的音乐系统
QQ_511008285
python spring boot vue.js django flask node.js php
目录技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示技术栈介绍Django-SpringBoot-php-Node.js-flask本课题的研究方法和研究步骤基本合理,难度适中,本选题是学生所学专业知识的延续,符合学生专业发展方向,对于提高学生的基本知识和技能以及钻研能力有益。该学生能够在预定时间内完成该课题的设计。
python基于Hadoop的NBA球员大数据分析与可视化系统
目录技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示技术栈介绍Django-SpringBoot-php-Node.js-flask本课题的研究方法和研究步骤基本合理,难度适中,本选题是学生所学专业知识的延续,符合学生专业发展方向,对于提高学生的基本知识和技能以及钻研能力有益。该学生能够在预定时间内完成该课题的设计。
HIVE(二)
2301_78012738
hive 数据仓库
目录访问HIVE的三种方式DDLDML数据操作向表中装载数据数据导出常用函数Like和RLike分组Join排序分区表和分桶表访问HIVE的三种方式启动Hive命令,CtrlC退出客户端,执行测试语句,与sql一致[wyc@hadoop102hive]$bin/hive经验小结:在hive中执行语句报错:ExecutionError,returncode2fromorg.apache.hadoop
Thymeleaf在前台无法显示页面
蹦跑的蜗牛
Springboot java spring
在SpringBoot把我搞了两个小时,真的是笨到家了。通过控制器显示在界面这在thinkphp中是多么简单的一个问题。注解在Spring中真的是用神了。tp中应用就用一个use加命名空间就ok,阿西吧~~~~Spring中有点转不过来呀!言归正传Thymeleaf不能跳转到html页面,首先检查是否安装Thymeleaf依赖,一定要是spring-boot-starter-thymeleaf而不
rdkafka线程过多_我是如何处理大并发量订单处理的 KafKa部署总结
weixin_39574928
rdkafka线程过多
今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache与很多有名的中间件搭配起来用效果更好哦,为什么不用RabbitMQ,因为公司需要它。网上已经有很多怎么用和用到哪的内容,但结果很多人都倒在了入门第一步环境都搭不起来,可谓是从了解到放弃,所以在此特记录如何在linux环境搭建,windows中配置一样,只是启动运行bat文件。想要用它就先必须了解它能做什么及能做到什么程
Spring for Apache Pulsar->Reactive Support->Quick Tour
我们将通过展示一个以响应式方式生成和消费的示例SpringBoot应用程序,快速了解Spring对ApachePulsar的响应式支持。这是一个完整的应用程序,不需要任何额外的配置,只要您在默认位置localhost:6650上运行Pulsar集群即可。1.DependenciesSpringBoot应用程序只需要SpringBoot启动器脉冲响应依赖关系。以下清单分别显示了如何定义Maven和G
PHP安全编程实践系列(四):密码存储与加密技术深度解析
软考和人工智能学堂
# php程序设计经验 php PHP和MySQL php 安全 android
前言密码和数据安全是Web应用最基础的防线。不恰当的密码存储方式或脆弱的加密实现可能导致灾难性的数据泄露。本文将系统性地介绍PHP中的密码安全存储策略、现代加密技术实践以及密钥管理体系,帮助开发者构建真正安全的敏感数据处理方案。一、密码哈希技术1.1密码哈希基础原理安全哈希的核心要求:不可逆性:无法从哈希值恢复原始密码唯一性:相同输入产生相同输出,不同输入产生完全不同输出抗碰撞:难以找到两个不同输
微信小游戏猜成语源码系统,可商业运营版,开源无须授权,带搭建安装包
qq_2931393342
源码分享 微信 微信小游戏猜成语源码系统 微信小游戏猜成语源码 微信小游戏猜成语系统 微信小游戏猜成语
温馨提示:文末有资源获取方式一、系统简介这是一款基于PHP+MySQL+微信小程序开发的看图猜成语小游戏源码系统,专为商业运营设计,无需额外授权即可直接部署使用。系统包含完整的前后端源码、数据库脚本、安装包及详细文档,支持快速搭建,适合个人开发者、创业团队或企业用于微信小程序上线运营。1.游戏玩法看图猜成语:用户根据图片提示,从随机汉字中选择4个字组成正确答案,闯关升级。多关卡设计:支持自定义关卡
mysql主从数据同步
林鹤霄
mysql主从数据同步
配置mysql5.5主从服务器(转)
教程开始:一、安装MySQL
说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22
二、配置MySQL主服务器(192.168.21.169)mysql -uroot -p &nb
oracle学习笔记
caoyong
oracle
1、ORACLE的安装
a>、ORACLE的版本
8i,9i : i是internet
10g,11g : grid (网格)
12c : cloud (云计算)
b>、10g不支持win7
&
数据库,SQL零基础入门
天子之骄
sql 数据库入门 基本术语
数据库,SQL零基础入门
做网站肯定离不开数据库,本人之前没怎么具体接触SQL,这几天起早贪黑得各种入门,恶补脑洞。一些具体的知识点,可以让小白不再迷茫的术语,拿来与大家分享。
数据库,永久数据的一个或多个大型结构化集合,通常与更新和查询数据的软件相关
pom.xml
一炮送你回车库
pom.xml
1、一级元素dependencies是可以被子项目继承的
2、一级元素dependencyManagement是定义该项目群里jar包版本号的,通常和一级元素properties一起使用,既然有继承,也肯定有一级元素modules来定义子元素
3、父项目里的一级元素<modules>
<module>lcas-admin-war</module>
<
sql查地区省市县
3213213333332132
sql mysql
-- db_yhm_city
SELECT * FROM db_yhm_city WHERE class_parent_id = 1 -- 海南 class_id = 9 港、奥、台 class_id = 33、34、35
SELECT * FROM db_yhm_city WHERE class_parent_id =169
SELECT d1.cla
关于监听器那些让人头疼的事
宝剑锋梅花香
画图板 监听器 鼠标监听器
本人初学JAVA,对于界面开发我只能说有点蛋疼,用JAVA来做界面的话确实需要一定的耐心(不使用插件,就算使用插件的话也没好多少)既然Java提供了界面开发,老师又要求做,只能硬着头皮上啦。但是监听器还真是个难懂的地方,我是上了几次课才略微搞懂了些。
JAVA的遍历MAP
darkranger
map
Java Map遍历方式的选择
1. 阐述
对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。那么实际情况如何呢?
为了解遍历性能的真实差距,包括在遍历ke
POJ 2312 Battle City 优先多列+bfs
aijuans
搜索
来源:http://poj.org/problem?id=2312
题意:题目背景就是小时候玩的坦克大战,求从起点到终点最少需要多少步。已知S和R是不能走得,E是空的,可以走,B是砖,只有打掉后才可以通过。
思路:很容易看出来这是一道广搜的题目,但是因为走E和走B所需要的时间不一样,因此不能用普通的队列存点。因为对于走B来说,要先打掉砖才能通过,所以我们可以理解为走B需要两步,而走E是指需要1
Hibernate与Jpa的关系,终于弄懂
avords
java Hibernate 数据库 jpa
我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。
在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany
酸爽的console.log
bee1314
console
在前端的开发中,console.log那是开发必备啊,简直直观。通过写小函数,组合大功能。更容易测试。但是在打版本时,就要删除console.log,打完版本进入开发状态又要添加,真不够爽。重复劳动太多。所以可以做些简单地封装,方便开发和上线。
/**
* log.js hufeng
* The safe wrapper for `console.xxx` functions
*
哈佛教授:穷人和过于忙碌的人有一个共同思维特质
bijian1013
时间管理 励志人生 穷人 过于忙碌
一个跨学科团队今年完成了一项对资源稀缺状况下人的思维方式的研究,结论是:穷人和过于忙碌的人有一个共同思维特质,即注意力被稀缺资源过分占据,引起认知和判断力的全面下降。这项研究是心理学、行为经济学和政策研究学者协作的典范。
这个研究源于穆来纳森对自己拖延症的憎恨。他7岁从印度移民美国,很快就如鱼得水,哈佛毕业
other operate
征客丶
OS osx
一、Mac Finder 设置排序方式,预览栏 在显示-》查看显示选项中
二、有时预览显示时,卡死在那,有可能是一些临时文件夹被删除了,如:/private/tmp[有待验证]
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一
【Scala五】分析Spark源代码总结的Scala语法三
bit1129
scala
1. If语句作为表达式
val properties = if (jobIdToActiveJob.contains(jobId)) {
jobIdToActiveJob(stage.jobId).properties
} else {
// this stage will be assigned to "default" po
ZooKeeper 入门
BlueSkator
中间件 zk
ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。
值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利
MySQL取得当前时间的函数是什么 格式化日期的函数是什么
BreakingBad
mysql Date
取得当前时间用 now() 就行。
在数据库中格式化时间 用DATE_FORMA T(date, format) .
根据格式串format 格式化日期或日期和时间值date,返回结果串。
可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:
%S, %s 两位数字形式的秒( 00,01,
读《研磨设计模式》-代码笔记-组合模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
abstract class Component {
public abstract void printStruct(Str
4_JAVA+Oracle面试题(有答案)
chenke
oracle
基础测试题
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
st
新一代工作流系统设计目标
comsci
工作 算法 脚本
用户只需要给工作流系统制定若干个需求,流程系统根据需求,并结合事先输入的组织机构和权限结构,调用若干算法,在流程展示版面上面显示出系统自动生成的流程图,然后由用户根据实际情况对该流程图进行微调,直到满意为止,流程在运行过程中,系统和用户可以根据情况对流程进行实时的调整,包括拓扑结构的调整,权限的调整,内置脚本的调整。。。。。
在这个设计中,最难的地方是系统根据什么来生成流
oracle 行链接与行迁移
daizj
oracle 行迁移
表里的一行对于一个数据块太大的情况有二种(一行在一个数据块里放不下)
第一种情况:
INSERT的时候,INSERT时候行的大小就超一个块的大小。Oracle把这行的数据存储在一连串的数据块里(Oracle Stores the data for the row in a chain of data blocks),这种情况称为行链接(Row Chain),一般不可避免(除非使用更大的数据
[JShop]开源电子商务系统jshop的系统缓存实现
dinguangx
jshop 电子商务
前言
jeeshop中通过SystemManager管理了大量的缓存数据,来提升系统的性能,但这些缓存数据全部都是存放于内存中的,无法满足特定场景的数据更新(如集群环境)。JShop对jeeshop的缓存机制进行了扩展,提供CacheProvider来辅助SystemManager管理这些缓存数据,通过CacheProvider,可以把缓存存放在内存,ehcache,redis,memcache
初三全学年难记忆单词
dcj3sjt126com
english word
several 儿子;若干
shelf 架子
knowledge 知识;学问
librarian 图书管理员
abroad 到国外,在国外
surf 冲浪
wave 浪;波浪
twice 两次;两倍
describe 描写;叙述
especially 特别;尤其
attract 吸引
prize 奖品;奖赏
competition 比赛;竞争
event 大事;事件
O
sphinx实践
dcj3sjt126com
sphinx
安装参考地址:http://briansnelson.com/How_to_install_Sphinx_on_Centos_Server
yum install sphinx
如果失败的话使用下面的方式安装
wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel6.x86_64.rpm
yum loca
JPA之JPQL(三)
frank1234
orm jpa JPQL
1 什么是JPQL
JPQL是Java Persistence Query Language的简称,可以看成是JPA中的HQL, JPQL支持各种复杂查询。
2 检索单个对象
@Test
public void querySingleObject1() {
Query query = em.createQuery("sele
Remove Duplicates from Sorted Array II
hcx2013
remove
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?
For example,Given sorted array nums = [1,1,1,2,2,3],
Your function should return length
Spring4新特性——Groovy Bean定义DSL
jinnianshilongnian
spring 4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装Mysql5.5
liuxingguome
centos
CentOS下以RPM方式安装MySQL5.5
首先卸载系统自带Mysql:
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
去http://dev.mysql.c
第14章 工具函数(下)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
POJ 1050
SaraWon
二维数组 子矩阵 最大和
POJ ACM第1050题的详细描述,请参照
http://acm.pku.edu.cn/JudgeOnline/problem?id=1050
题目意思:
给定包含有正负整型的二维数组,找出所有子矩阵的和的最大值。
如二维数组
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
中和最大的子矩阵是
9 2
-4 1
-1 8
且最大和是15
[5]设计模式——单例模式
tsface
java 单例 设计模式 虚拟机
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
安全的单例模式:
/*
* @(#)Singleton.java 2014-8-1
*
* Copyright 2014 XXXX, Inc. All rights reserved.
*/
package com.fiberhome.singleton;
Java8全新打造,英语学习supertool
yangshangchuan
java superword 闭包 java8 函数式编程
superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。Clean code、Fluent style、Java8 feature: Lambdas, Streams and Functional-style Programming。
升学考试、工作求职、充电提高,都少不了英语的身影,英语对我们来说实在太重要