yii2的URL解析和生成

以下内容来自于中文文档;http://www.yiifans.com/yii2/guide/runtime-url-handling.html
因为写邮箱找回密码里面可以用到,所以拿出来参考,也顺便总结下自己写这方面的代码思路:找回密码页面是./index.php?r=admin%2Fpublic%2Fseekpassword,用ActiveForm组建获取对应的账户和邮箱,

传递到后台的模型的admin.php,打印数据为Array ( [adminuser] => admin [adminemail] => ***@163.com ),校验对应的账户和邮箱是否匹配(用了scenario = "seekpass",写了对应的方法validateEmail来返回是否匹配)

if ($this->load($data) && $this->validate()) {
            //做点有意义的事
            $time = time();
            $token = $this->createToken($data['Admin']['adminuser'], $time);
            $mailer = Yii::$app->mailer->compose('seekpass', ['adminuser' => $data['Admin']['adminuser'], 'time' => $time, 'token' => $token]);
            $mailer->setFrom("***@163.com");
            $mailer->setTo($data['Admin']['adminemail']);
            $mailer->setSubject("**商城-找回密码");
            if ($mailer->send()) {
                return true;
            }
        }
        return false;

然后写了createToken方法,里面带用户名和时间戳也可以加上ip,可以组装进行多次md5加密得到一个唯一的token值,['adminuser' => $data['Admin']['adminuser'], 'time' => $time, 'token' => $token]这些值都会被传到mail目录下的seekpass.php,里面加上链接:

urlManager->createAbsoluteUrl(['admin/manage/mailchangepass', 'timestamp' => $time, 'adminuser' => $adminuser, 'token' => $token]); ?>

后面的处理就都是在后台的控制器ManageController.php里面的mailchangepass方法进行,处理的方法就是时间相减的值(时间限制,一般可以为5分钟),和token值的对比.验证通过就可以调到修改密码页面了


URL 管理
Yii中的URL管理概念很简单。URL管理基于这样的前提:应用程序的每个地方都使用内部路由和参数。框架然后将路由解释为URLs,或者相反,这取决于URL管理的配置。这样的方式允许你通过修改一个配置项就可以更改整站的URL行为,而不需要改动任何的代码。


 


内部路由
Yii应用处理的内部路由通常指的是路由及参数。 每个控制器及其动作都有对应的内部路由,比如site/index 或 user/create。 前一例中的site 被称为 controller ID (控制器ID),而 index 被称为 action ID(动作ID)。 第二例中的user 是控制器ID,create 是动作ID。如果控制器在 module (模块)内部, 内部路由则以模块ID开头,比如 blog/post/index 是 blog 模块的 post 控制器的 index 动作。


 


创建 URLs
为站点创建URL最重要的规则就是始终使用 URL 管理器,URL 管理器是一个名叫 urlManager 的内置应用组件。这个组件在Web应用和控制台应用中都可以通过 \Yii::$app->urlManager. 组件提供以下两种创建 URL 的方法:


createUrl($params)
createAbsoluteUrl($params, $schema = null)
createUrl() 方法根据应用根目录的相对位置生成URL,比如 /index.php/site/index/。 createAbsoluteUrl() 方法生成的是绝对路径 URL ,即以主机名和协议开头的 URL : http://www.example.com/index.php/site/index. 前者适用于应用内部的URL,而后者 用于创建URL给外部资源使用,比如连接到第三方服务,发送邮件, 生成RSS提要等。


一些例子:


echo \Yii::$app->urlManager->createUrl(['site/page', 'id' => 'about']);
// /index.php/site/page/id/about/
echo \Yii::$app->urlManager->createUrl(['date-time/fast-forward', 'id' => 105])
// /index.php?r=date-time/fast-forward&id=105
echo \Yii::$app->urlManager->createAbsoluteUrl('blog/post/index');
// http://www.example.com/index.php/blog/post/index/
URL采用哪种格式取决于 URL 的配置。 上面的例子可以输出以下格式的 URL :


/site/page/id/about/
/index.php?r=site/page&id=about
/index.php?r=date-time/fast-forward&id=105
/index.php/date-time/fast-forward?id=105
http://www.example.com/blog/post/index/
http://www.example.com/index.php?r=blog/post/index
使用 [[yii\helpers\Url]] Url 助手可简化 URL 的创建,假设有 URL /index.php?r=management/default/users&id=10 ,以下说明 Url 助手是如何工作的:




use yii\helpers\Url;
 
// 当前活动路由
// /index.php?r=management/default/users
echo Url::to('');
 
// 相同的控制器,不同的动作
// /index.php?r=management/default/page&id=contact
echo Url::toRoute(['page', 'id' => 'contact']);
 
 
// 相同模块,不同控制器和动作
// /index.php?r=management/post/index
echo Url::toRoute('post/index');
 
// 绝对路由,不管是被哪个控制器调用
// /index.php?r=site/index
echo Url::toRoute('/site/index');
 
// 区分大小写的控制器动作 `actionHiTech` 的 url 格式
// /index.php?r=management/default/hi-tech
echo Url::toRoute('hi-tech');
 
// 控制器和动作都区分大小写的 url,如'DateTimeController::actionFastForward' :
// /index.php?r=date-time/fast-forward&id=105
echo Url::toRoute(['/date-time/fast-forward', 'id' => 105]);
 
//  从别名中获取 URL 
// http://google.com/
Yii::setAlias('@google', 'http://google.com/');
echo Url::to('@google');
 
// 获取当前页的标准 URL 
// /index.php?r=management/default/users
echo Url::canonical();
 
// 获得 home 主页的 URL
// /index.php?r=site/index
echo Url::home();
 
Url::remember() ; //  保存URL以供下次使用
Url::previous(); // 取出前面保存的 URL 
小技巧: 为生成一个指向 # 号(锚连接 ID )的 URL ,比如 /index.php?r=site/page&id=100#title, 你要 指定 # 参数 ,采用 Url::to(['post/read', 'id' => 100, '#' => 'title']) 来创建。
还有一个 Url::canonical() 方法允许你为当前执行动作生成规范URL(canonical URL)。这个方法将忽略当前动作输入参数之外的所有其它URL参数:




namespace app\controllers;
 
use yii\web\Controller;
use yii\helpers\Url;
 
class CanonicalController extends Controller
{
    public function actionTest($page)
    {
        echo Url::canonical();
    }
}
 


自定义 URLs
缺省情况下, Yii 用 query string (查询字符串)的格式,如/index.php?r=news/view&id=100。 为了让 URL 更人性化,比如更易读。你需要在应用配置文件中,配置一下urlManager 组件, 通过"pretty"(美化)URL选项,你可以把查询字符串格式的 URL 转换成目录格式的 URL(/index.php/news/view?id=100)。 而禁用showScriptName参数将去除 URL 的 index.php 一部分。 这里是应用配置文件中与此相关的部分:


return [
    // ...
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
        ],
    ],
];
请注意,只有当 web 服务器正确配置Yii时该配置内容才能正常工作,参阅 installation.


命名参数
URL 格式规则可以关联一些 GET 参数,这些 GET 参数以如下格式出现在规则表达式中:


1

ParameterName(参数名)是 GET 参数的名称,可选的ParameterPattern(参数表达式)是可选的,是一个正则表达式,用于 匹配GET参数的值。如果ParameterPattern被省略,表示这条规则将匹配 除 / 外的任何字符。 当创建一个URL时,这些占位参数将会替换成 相应的参数值;当解析一个URL时,相应的GET参数将会被填充到解析结果中。


让我们用一些例子来说明 URL 规则是怎么工作的。假设我们的规则集由三个规则组成:


[
    'posts'=>'post/list',
    'post/'=>'post/read',
    'post//'=>'post/read', <br> ] <br> 调用 Url::toRoute('post/list') 将生成 /index.php/posts. 第一条规则被应用。 <br> 调用 Url::toRoute(['post/read', 'id' => 100]) 生成 /index.php/post/100. 第二条规则被应用。 <br> 调用 Url::toRoute(['post/read', 'year' => 2008, 'title' => 'a sample post']) 生成 /index.php/post/2008/a%20sample%20post. 第三条规则被应用。 <br> 调用 Url::toRoute('post/read') 生成 /index.php/post/read. 没有规则被用应, 仅仅是应用了 约定。 <br> 总之,当使用 createUrl 来生成 URL 时,路由和 GET 参数传递到用于决定 哪条规则被应用的方法中。如果传递到 createUrl() 的 GET 参数里有任何一个关联到规则的参数, 而且路由参数也匹配规则路由,那这条规则将用于生成 URL 。 <br> <br> <br> 如果传递到 Url::toRoute 的 GET 参数比规则要求的多,则多余的参数 将出现在查询字符串中,例如,如果我们调用 Url::toRoute(['post/read', 'id' => 100, 'year' => 2008]) , 会得到 /index.php/post/100?year=2008. <br> <br> <br> 正如我们前面提到的, URL 规则的另一个目的是解析请求的 URL 地址,自然,这是一个创建 URL 地址的逆过程。例如,当用户请求 /index.php/post/100 时,上例中 第二条规则将被应用,即解析了路由 post/read 和 GET 参数 ['id' => 100] 的规则 (通过 Yii::$app->request->get('id') 得到)。 <br> <br> <br> 参数化路由 <br> 我们可以引用规则中路由部分的命名参数,这将允许规则被应用于匹配标准(criteria)的多路由中。 命名参数也可以减少应用所需的规则数量, 以全面改进性能。 <br> <br> <br> 举例说明如何用命名参数来参数化路由: <br> <br> <br> <br> <br> [ <br>     '<controller:(post|comment)>/<id:\d+>/<action:(create|update|delete)>' => '<controller>/<action>', <br>     '<controller:(post|comment)>/<id:\d+>' => '<controller>/read', <br>     '<controller:(post|comment)>s' => '<controller>/list', <br> ] <br> 在以上例子中,在规则的路由部分使用了两个命名参数:控制器和动作。前者匹配一个 post 或 comment 的路由 ID ,后者匹配创建、更新和删除的动作 ID 。你也可以另外命名这些参数,只要它们和出现在 URL 中的 GET 参数没有冲突。 <br> <br> <br> 使用上述规则,URL /index.php/post/123/create 将解析成post 控制器的 create 动作的路由,其 GET 参数是 id=123 。而给定路由 comment/list 和 GET 参数 page=2 ,将创建URL /index.php/comments?page=2。 <br> <br> <br> 参数化主机名 <br> 创建和解析 URL 也可以在规则中包括主机名。主机名的一部分将提取 作为 GET 参数。处理二级域名特别有用。如, URL http://admin.example.com/en/profile 可以解析为 GET 参数user=admin 和 lang=en 。另一方面, 包括主机名的规则也可以用于创建带有参数化主机名的 URL 。 <br> <br> <br> 为应用参数化主机名,只需要用主机信息简单定义 URL 规则,如: <br> <br> <br> 1 <br> 2 <br> 3 <br> [ <br>     'http://<user:\w+>.example.com/<lang:\w+>/profile' => 'user/profile', <br> ] <br> 上例中主机名的第一部分被视为用户参数, 而路径信息的第一部分被视为语言参数。这个规则响应 user/profile 路由。 <br> <br> <br> 注意,当 URL 被使用参数化主机名的规则创建时,[[yii\web\UrlManager::showScriptName]] 将不再起作用。 <br> <br> <br> 还要注意,如果应用位于 WEB 根目录的子文件夹,包含参数化主机名的任何规则都不能包括子文件夹。 如,应用位于 http://www.example.com/sandbox/blog , 那么仍然使用上面相同的规则,而不需要加上 sandbox/blog 。 <br> <br> <br> 伪 URL后缀 <br> <br> <br> <?php <br> return [ <br>     // ... <br>     'components' => [ <br>         'urlManager' => [ <br>             'suffix' => '.html', <br>         ], <br>     ], <br> ]; <br> 处理 REST 请求 <br> TBD: <br> <br> <br> RESTful 风格路由: [[yii\filters\VerbFilter]], [[yii\filters\UrlManager::$rules]] <br> Json API: <br> 响应: [[yii\web\Response::format]] <br> 请求: [[yii\web\Request::$parsers]], [[yii\web\JsonParser]] <br>   <br> <br> <br> URL 解析 <br> 除了完美创建 URL 外, Yii 也可以转换自定义格式的 URL 到内部路由和参数。 <br> <br> <br> URL 精确解析 <br> 默认,如果 URL 无定制规则且匹配默认格式如 /site/page,Yii 将允许相应的控制器的动作执行。这个行为(behavior,特有名词见词汇表)也可以配置为失效,这时将弹出 404 错误(没有找到该页面)。 <br> <br> <br> <?php <br> return [ <br>     // ... <br>     'components' => [ <br>         'urlManager' => [ <br>             'enableStrictParsing' => true, <br>         ], <br>     ], <br> ]; <br>   <br> <br> <br> 创建你自己的规则类 <br> [[yii\web\UrlRule]] 类被用在解析 URL 到参数和基于参数创建 URL两方面。 尽管框架实现的URL 规则已经非常灵活,能够满足绝大多数项目的需求, 但仍有一些情况使用你自己的规则类才是最好的选择。如,在一个汽车交易网站, 我们想支持类似 /Manufacturer/Model 这样的 URL 格式,这个 URL 中的 Manufacturer 和 Model 都要匹配数据表的某些数据。 缺省规则类不适用这样的需求,因为它通常依赖无关数据库的静态正则表达式。 我们可以通过继承[[yii\web\UrlRule]] 来编写新的 URL 规则类并使用在一个或多个 URL 规则中。 以上面的汽车交易网站为例,我们可以在应用配置中定义以下 URL 规则: <br> <br> <br> // ... <br> 'components' => [ <br>     'urlManager' => [ <br>         'rules' => [ <br>             '<action:(login|logout|about)>' => 'site/<action>', <br>   <br>             // ... <br>   <br>             ['class' => 'app\components\CarUrlRule', 'connectionID' => 'db', /* ... */], <br>         ], <br>     ], <br> ], <br> 通过以上配置,我们可以使用自定义的 URL 规则类 CarUrlRule来处理 /Manufacturer/Model 格式的 URL 了。这个类可以这样写: <br> <br> <br> <br> <br> namespace app\components; <br>   <br> use yii\web\UrlRule; <br>   <br> class CarUrlRule extends UrlRule <br> { <br>     public $connectionID = 'db'; <br>   <br>     public function createUrl($manager, $route, $params) <br>     { <br>         if ($route === 'car/index') { <br>             if (isset($params['manufacturer'], $params['model'])) { <br>                 return $params['manufacturer'] . '/' . $params['model']; <br>             } elseif (isset($params['manufacturer'])) { <br>                 return $params['manufacturer']; <br>             } <br>         } <br>         return false;  // 规则没有被应用 <br>     } <br>   <br>     public function parseRequest($manager, $request) <br>     { <br>         $pathInfo = $request->getPathInfo(); <br>         if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches)) { <br>             // 输入$matches[1] 和 $matches[3] 看看 <br>             // 如果它们匹配了数据库中的厂商和模型, <br>             // 赋值给$params['manufacturer'] 和 $params['model'] <br>             // 并返回['car/index', $params]。 <br>         } <br>         return false;  // 规则没有被应用 <br>     } <br> } <br> 除了上述用法,自定义 URL 规则类还可以实现许多目的。 如,我们可以写规则类来记录 URL 解析和创建请求的日志。 开发阶段这是非常有用的。 我们也可以写规则类来显示特定的 404 错误类以防止所有其他 URL 规则 解析当前请求失败。注意这种情况,特定类的规则 必须定义在最后一条规则。 </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1291949857434574848"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(笔记)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1891116867653791744.htm" title="阅读笔记:x86系统调用入门" target="_blank">阅读笔记:x86系统调用入门</a> <span class="text-muted">yayong</span> <a class="tag" taget="_blank" href="/search/Solaris/1.htm">Solaris</a><a class="tag" taget="_blank" href="/search/x86/1.htm">x86</a><a class="tag" taget="_blank" href="/search/solaris/1.htm">solaris</a><a class="tag" taget="_blank" href="/search/system/1.htm">system</a><a class="tag" taget="_blank" href="/search/preprocessor/1.htm">preprocessor</a><a class="tag" taget="_blank" href="/search/makefile/1.htm">makefile</a><a class="tag" taget="_blank" href="/search/wrapper/1.htm">wrapper</a> <div>阅读笔记:x86系统调用入门原作者:RussBlaine原文来自:http://blogs.sun.com/roller/page/rab译注者:BadcoffeeEmail:blog.oliver@gmail.comBlog:http://blog.csdn.net/yayong2005年7月按:要开始学习像操作系统这样复杂的东东是一个令人头痛的问题。为了帮助新学者理清头绪,这里我们将讨论Sol</div> </li> <li><a href="/article/1891114470407729152.htm" title="宋红康 MySQL高级篇 学习笔记" target="_blank">宋红康 MySQL高级篇 学习笔记</a> <span class="text-muted">偷偷儿</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>架构篇1.sql的执行流程查询缓存:有就直接返回了。解析器进行解析:检查sql合不合语法优化器:对sql语句进行逻辑优化,看是否使用索引,生成执行计划。存贮引擎:myisam,innodb去执行上述计划当然返回的时候也会在缓存一下结果。索引及调优篇1.InnoDBB+树索引的注意事项(页分裂的场景)1.根页面万年不动(页分裂):创建后,用户数据用完可用空间,就会新产生一个页a,并将根节点的数据复制</div> </li> <li><a href="/article/1891114471020097536.htm" title="大厂学院 雷丰阳 JUC 学习笔记" target="_blank">大厂学院 雷丰阳 JUC 学习笔记</a> <span class="text-muted">偷偷儿</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>基础篇synchronized和lock的区别1.从本质上:synchronized是Java内的一个关键字,lock是一个接口。2.从代码的形式上:synchronized在发生异常时会主动释放锁,lock需要我们在finally语句中释放,不然会死锁;通过lock可以知道锁有没有获取成功,synchronied不行3.从性能上:在1.6前没提出锁升级过程时,重量级锁在被系统检测到后会阻塞尝试获</div> </li> <li><a href="/article/1891090884112478208.htm" title="Java 实现拖拽列表更新排序" target="_blank">Java 实现拖拽列表更新排序</a> <span class="text-muted">架构师成长进阶空间</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>拖拽列表更新排序,接口提供给前端这个功能主要是需要的算法逻辑很多图解:如在前端页面上想把id=5拖拽到id=3上拖拽之后的效果:解析图例:代码示例:DevToCoding|Java面试指南、学习笔记/***拖拽数据更新排序*@paramcurrentId当前数据id*@paramtargetId目标数据id*@return*/@RequestMapping("/sort/{currentId}/{</div> </li> <li><a href="/article/1891084442399731712.htm" title="工作计划进度表怎么做?探索主流的8款软件" target="_blank">工作计划进度表怎么做?探索主流的8款软件</a> <span class="text-muted"></span> <div>本文介绍了八款主流的工作计划软件,包括:1.Worktile,2.PingCode,3.腾讯文档,4.钉钉,5.滴答清单,6.有道云笔记,7.Trello,8.Monday.com。制作工作计划进度表是确保项目按时完成的重要步骤,一个好的进度表不仅能清晰显示任务分配和截止日期,还能帮助团队成员理解自己的责任和优先级。随着项目管理工具的不断发展,市场上出现了多种软件,专门设计来帮助制作和管理工作计划</div> </li> <li><a href="/article/1891081053829918720.htm" title="python编程入门学习(3)——自用笔记" target="_blank">python编程入门学习(3)——自用笔记</a> <span class="text-muted">徐少19</span> <a class="tag" taget="_blank" href="/search/python%E5%85%A5%E9%97%A8/1.htm">python入门</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>目录第五章:if语句一个简单的示例条件测试if语句使用if语句处理列表第六章:字典一个简单的字典使用字典遍历字典嵌套在列表中存储字典在字典中存储列表在字典中存储字典第五章:if语句一个简单的示例#if语句示例cars=['bmw','audi','toyota','subaru']forcarincars:ifcar=='bmw':print(car.upper())else:print(car.</div> </li> <li><a href="/article/1891051429255245824.htm" title="Java算法 字母异位词分组 、最长连续序列" target="_blank">Java算法 字母异位词分组 、最长连续序列</a> <span class="text-muted">小王的Java刷题日记</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E5%93%88%E5%B8%8C%E8%A1%A8/1.htm">哈希表</a> <div>小王的Java刷题日记Day5记录刷题过程,作为笔记和分享,坚持每天刷题,每天进步,编程语言为Java。题目一:字母异位词分组给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。例如:输入:strs=["see","ese","say","ees","asy","baa"]输出:[["baa"],["say","asy</div> </li> <li><a href="/article/1891042221252210688.htm" title="Spring Boot中使用RabbitMQ(2)" target="_blank">Spring Boot中使用RabbitMQ(2)</a> <span class="text-muted">D1561691</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/java-rabbitmq/1.htm">java-rabbitmq</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a> <div>《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!MessageBroker与AMQP简介MessageBroker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:消息路由到一个或多个目的地消息转化为其他的表现方式执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户调用Web服务来检索数据响</div> </li> <li><a href="/article/1891035542750031872.htm" title="Acwing-基础算法课笔记之搜索与图论(spfa算法)" target="_blank">Acwing-基础算法课笔记之搜索与图论(spfa算法)</a> <span class="text-muted">不会敲代码的狗</span> <a class="tag" taget="_blank" href="/search/Acwing%E5%9F%BA%E7%A1%80%E7%AE%97%E6%B3%95%E8%AF%BE%E7%AC%94%E8%AE%B0/1.htm">Acwing基础算法课笔记</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>Acwing-基础算法课笔记之搜索与图论(spfa算法)一、spfa算法1、概述2、模拟过程3、spfa算法模板(队列优化的Bellman-Ford算法)4、spfa算法模板(判断图中是否存在负环)一、spfa算法1、概述单源最短路径算法,处理负权边的spfa算法,一般时间复杂度为O(m)O(m)O(m),最坏为O(nm)O(nm)O(nm)。1、建立一个队列,初始化队列里只有起始点(源点);2、</div> </li> <li><a href="/article/1891032388633423872.htm" title="pandas的导出csv文件的函数是_Pandas笔记2-导出csv文件" target="_blank">pandas的导出csv文件的函数是_Pandas笔记2-导出csv文件</a> <span class="text-muted">爱健身的煜妹</span> <div>1本文适合读者刚开始学习Pandas的新手2to_csv方法和主要参数to_csv方法可以将Series和DataFrame对象输出成逗号分隔的csv文件df.to_csv(path_or_buf,sep,na_rep,float_format,columns,header,index,index_label,mode,encoding,line_terminator,quoting,quotec</div> </li> <li><a href="/article/1891032009397039104.htm" title="2020徐涛背诵笔记电子版pdf_徐涛、腿姐背诵笔记使用指南、汤家凤、张宇10月复习规划..." target="_blank">2020徐涛背诵笔记电子版pdf_徐涛、腿姐背诵笔记使用指南、汤家凤、张宇10月复习规划...</a> <span class="text-muted">想要未知的疯狂</span> <div>1.徐涛:《背诵笔记》使用指南冲刺背诵笔记只有《核心考案》30%的内容,却包含着100%的考点,后期主要用来进行知识点的巩固和强化。(1)仔细阅读书的前言,各种标示的意思,里面都写的非常清楚!(2)该背的段落文字,都用阴影标出来了,要背,至少十月底,保证自己有两个月的背书时间,每天大概40分钟,背下政治。(3)都用阴影标出来了,要背,至少十月底,保证自己有两个月的背书时间,每天大概40分钟,背下政</div> </li> <li><a href="/article/1891028354535059456.htm" title="算法学习笔记之数学基础" target="_blank">算法学习笔记之数学基础</a> <span class="text-muted">threesevens</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">算法与数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>例1(最小公倍数与最大公约数)计算最小公倍数公式:LCM(A,B)=A*B/GCD(A,B)A与B的最小公倍数等于A*B除以A与B的最大公约数计算最大公约数:辗转相除法原理:设A与B的最大公约数为x,则A是x的倍数,B也是x的倍数,令A=ax,B=bx,A/B取整为c,则A-cB=(a-bc)x。即A与B的余数也是x的倍数 intgcd(inta,intb) {   inttemp;   whil</div> </li> <li><a href="/article/1891026464833335296.htm" title="Java学习笔记" target="_blank">Java学习笔记</a> <span class="text-muted">范梦迪</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>第一章Java基础1.HelloWorld程序publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,World!");}}2.数据类型Java提供了多种数据类型,包括基本数据类型和引用数据类型。基本数据类型用于存储简单的数据值,而引用数据类型用于存储对象的引用。2.1基本数据类型Java</div> </li> <li><a href="/article/1891023183318937600.htm" title="算法学习笔记之贪心算法" target="_blank">算法学习笔记之贪心算法</a> <span class="text-muted">threesevens</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E4%B8%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">算法与数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/1.htm">贪心算法</a> <div>导引(硕鼠的交易)硕鼠准备了M磅猫粮与看守仓库的猫交易奶酪。仓库有N个房间,第i个房间有J[i]磅奶酪并需要F[i]磅猫粮交换,硕鼠可以按比例来交换,不必交换所有的奶酪计算硕鼠最多能得到多少磅奶酪。输入M和N表示猫粮数量和房间数量,随后输入N个房间,每个房间包括奶酪数和猫粮数Input 53 72 43 52 -1-1Output 13.333解法:计算每个房间的奶酪与猫粮之比,比值越大硕鼠收益越</div> </li> <li><a href="/article/1891014732803010560.htm" title="js学习笔记(1)-函数中的this" target="_blank">js学习笔记(1)-函数中的this</a> <span class="text-muted">雪碧就是好喝</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>以下为我个人的学习笔记,是从我自己比较能够理解的方面对this进行的解读,可能会有误解或不够全面。this是什么this在JS中是一个“指针型变量”,它动态指向当前函数的运行环境,即代指当前函数的运行环境。普通函数中的this:谁调用指向谁//全局functioncool(){console.log(this)}cool()//window,相当于window.cool()//函数中的thisva</div> </li> <li><a href="/article/1890983852009123840.htm" title="笔试题笔记#4、5 记录划水过程" target="_blank">笔试题笔记#4、5 记录划水过程</a> <span class="text-muted">学游戏开发的</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AF%95%E9%A2%98%E5%AD%A6%E4%B9%A0/1.htm">笔试题学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>1一道必须手模双向链表才能过的题,还必须是C++#includeusingnamespacestd;constintN=100010;intl,r;intn;//每个节点的左节点和右节点intL[N],R[N];//节点是否已经被使用intud[N];//剩余节点数量,当前起始节点,当前末尾节点intremain,beg,ed;intmain(){cin>>l>>r;//建立“链表”关系for(i</div> </li> <li><a href="/article/1890974138944778240.htm" title="尚硅谷课程【笔记】——大数据之Zookeeper【一】" target="_blank">尚硅谷课程【笔记】——大数据之Zookeeper【一】</a> <span class="text-muted">赶紧写完去睡觉</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E7%94%9F%E6%80%81%E5%9C%88/1.htm">大数据生态圈</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>课程视频:【尚硅谷Zookeeper教程】一、Zookeeper入门概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责同志已经在Zookeeper上注册的哪些观察者做出</div> </li> <li><a href="/article/1890973633170436096.htm" title="软件方法论--课程笔记(整理中)" target="_blank">软件方法论--课程笔记(整理中)</a> <span class="text-muted">给bug两拳</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%96%B9%E6%B3%95%E8%AE%BA/1.htm">软件方法论</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>目录C1:概览Introduction(1)软件的4个特性(2)软件产品的2种类型(3)软件过程的4个活动过程(4)软件的6个质量特性C2:软件过程SoftwareProcesses(1)软件过程的模型(2)改进C3:敏捷开发AgileSoftwareDevelopment(1)敏捷开发vs传统开发(2)敏捷宣言的4句话(3)敏捷方法适用的情况(4)极限编程(eXtremeProcessing)(</div> </li> <li><a href="/article/1890972121887207424.htm" title="服务器,交换机和路由器的一些笔记" target="_blank">服务器,交换机和路由器的一些笔记</a> <span class="text-muted">m0_63052064</span> <a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E8%B7%AF%E7%94%B1%E5%99%A8/1.htm">智能路由器</a> <div>服务器、交换机和路由器是网络中常用的设备,它们的本质区别和联系如下:本质区别功能不同服务器:就像一个大型的资料仓库和工作处理中心,主要用来存储和管理各种数据,比如网站的网页数据、公司的办公文档等,还能为其他设备提供各种服务,像大家上网访问的网站,就是服务器在提供网页显示、数据交互等服务。交换机:主要作用是连接多个设备,让它们之间可以互相通信,就像一个智能交通指挥员,能根据设备的地址,把数据准确地送</div> </li> <li><a href="/article/1890965807396089856.htm" title="Vue学习笔记3" target="_blank">Vue学习笔记3</a> <span class="text-muted">Jyywww121</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>Vue学习笔记一、单页应用程序&路由介绍1、介绍单页应用程序:所有的功能都在一个页面上实现优点:按需更新性能高,开发效率高,用户体验好缺点:学习成本高,首屏加载慢,不利于SEO应用场景:系统类网站、内部网站、文档类网站、移动端站点路由介绍生活中的路由:设备和ip的映射关系Vue中的路由:路径和组件的映射关系2、路由的基本应用VueRouter的介绍:作用:修改地址栏路径时,切换显示匹配的组件路由的</div> </li> <li><a href="/article/1890954834446708736.htm" title="通过ThinkPad小红点键盘左右滑动页面" target="_blank">通过ThinkPad小红点键盘左右滑动页面</a> <span class="text-muted">neowell</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%A4%96%E8%AE%BE/1.htm">计算机外设</a> <div>问题ThinkPad小红点键盘的中间按键充当鼠标中键的作用,在Windows上,可以通过键盘的中键+指点杆实现上下页面的滑动。但当页面较宽,需要进行左右滑动时,会发现中键+指点杆的操作无法实现,此时可以通过安装键盘对应的官方键盘驱动来解决这个问题。比如我之前的笔记。但我现在换了不同的操作系统,无法安装Windows端的驱动,导致无法通过键盘的中键+指点杆组合实现左右页面滑动的效果。解决首先是通用解</div> </li> <li><a href="/article/1890942983298150400.htm" title="踩坑记录: Python的工作路径(working dircetory)" target="_blank">踩坑记录: Python的工作路径(working dircetory)</a> <span class="text-muted">neowell</span> <a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E7%AC%94%E8%AE%B0/1.htm">个人笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>本部分不涉及模块搜索方式的具体解释,有兴趣可以看看我之前的笔记:Python中令人困惑的模块导入.问题描述项目简介首先给出一个简单的项目结构:root└──random_dir├──random_file.py└──text_file.txtroot是项目的根目录,旗下只有一个名为random_dir的文件夹,在这个文件夹内,有一个python的脚本文件random_file.py,以及一份空的文</div> </li> <li><a href="/article/1890900483304910848.htm" title="【学习笔记】李宏毅2021春机器学习课程第2.3节:Adaptive Learning Rate" target="_blank">【学习笔记】李宏毅2021春机器学习课程第2.3节:Adaptive Learning Rate</a> <span class="text-muted">Harryline-lx</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>文章目录Trainingstuck≠SmallGradientDifferentparametersneedsdifferentlearningrateRootmeansquareAdagradRMSPropAdamLearningRateSchedulingTrainingstuck≠SmallGradient首先要明确的一点是,目前当我们用gradientdescend来做optimizati</div> </li> <li><a href="/article/1890892539007922176.htm" title="ElasticSearch和Kibana安装" target="_blank">ElasticSearch和Kibana安装</a> <span class="text-muted">D_GN</span> <a class="tag" taget="_blank" href="/search/ElasticSearch/1.htm">ElasticSearch</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a> <div>ElasticSearch学习笔记安装安装环境时linuxx64安装eses的安装依赖于JDK,不过7.0及以上的版本自带了jdk,这里选择7.2的版本来安装eses下载#下载tar文件curl-L-Ohttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz#解压tar-</div> </li> <li><a href="/article/1890832903697395712.htm" title="【笔记】从华为云看4P理论的卓越践行者" target="_blank">【笔记】从华为云看4P理论的卓越践行者</a> <span class="text-muted">通信_楠木</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA%E4%BA%91/1.htm">华为云</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E8%BF%90%E8%90%A5/1.htm">用户运营</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E8%BF%90%E8%90%A5/1.htm">产品运营</a><a class="tag" taget="_blank" href="/search/%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86/1.htm">产品经理</a> <div>在当今竞争激烈的云计算市场中,华为云犹如一颗明星取得了令人瞩目的成绩。其成功的背后,离不开对4P营销理论——产品(Product)、价格(Price)、渠道(Place)、促销(Promotion)的巧妙运用与深度融合。这一经典的营销理论框架,在华为云的市场战略布局中被赋予了新的活力与内涵,下面就结合最近的学习总结,让我们深入探究华为云是如何运用4P营销理论书写其辉煌篇章的。学习是一种愉悦,一种收</div> </li> <li><a href="/article/1890807819272253440.htm" title="中间件基础运维笔记" target="_blank">中间件基础运维笔记</a> <span class="text-muted">renle0216</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>中间件环境配置1.jdk安装配置卸载openjdk#查询系统安装的jdkrpm-qa|grepjdk#卸载openjdkrpm-e--nodeps文件名或yum-yremove文件名安装jdk1.8#上传解压jdk安装包tar-zxvfjdk-8u341-linux-x64.tar.gz#配置Java环境变量vi/etc/profile#文件尾行追加以下内容exportJAVA_HOME=/opt</div> </li> <li><a href="/article/1890792305711968256.htm" title="2024年最新入门基于Node的Web框架——Koa(2),2024年最新前端开发面试题及答案" target="_blank">2024年最新入门基于Node的Web框架——Koa(2),2024年最新前端开发面试题及答案</a> <span class="text-muted">2301_82243626</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>最后文章到这里就结束了,如果觉得对你有帮助可以点个赞哦开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】},“querystring”:“search=koa&keyword=context”}responseresponse对象是用于设置一些响应信息给客户端,这些和http请求的响应字段是一样的。比如说可以设置状态码、响应格式等相关信息。app.use(async(c</div> </li> <li><a href="/article/1890756111376642048.htm" title="The Devops Handbook 读书笔记01" target="_blank">The Devops Handbook 读书笔记01</a> <span class="text-muted">Alice_HappyAlice ^_^</span> <a class="tag" taget="_blank" href="/search/The/1.htm">The</a><a class="tag" taget="_blank" href="/search/Devops/1.htm">Devops</a><a class="tag" taget="_blank" href="/search/Handbook/1.htm">Handbook</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a> <div>今天看了一下序,了解了一下Devops这本书是干啥的?ThepurposeoftheDevOpsHandbookistogiveyouthetheory,principles,andpracticesyouneedtosuccessfullystartyourDevOpsinitiativeandachieveyourdesiredoutcomes.Devops原则想要做到的事情,就是更快,更低风</div> </li> <li><a href="/article/1890751446597562368.htm" title="langchain学习笔记之小样本提示词Few-shot Prompt Template" target="_blank">langchain学习笔记之小样本提示词Few-shot Prompt Template</a> <span class="text-muted">静静的喝酒</span> <a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BC%80%E5%8F%91/1.htm">大模型开发</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a> <div>langchain学习笔记之小样本提示词引言Few-shotPromptTemplates\text{Few-shotPromptTemplates}Few-shotPromptTemplates简单介绍示例集创建创建ExamplePrompt\text{ExamplePrompt}ExamplePrompt与ExampleSelector\text{ExampleSelector}Example</div> </li> <li><a href="/article/1890746660842172416.htm" title="LLaMA-Factory 安装linux部署&conda笔记" target="_blank">LLaMA-Factory 安装linux部署&conda笔记</a> <span class="text-muted">jayxlb2</span> <a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>第一行代码是我导入https://github.com/hiyouga/LLaMA-Factory.git到我的项目那里的,试过网上随便搜索过相同,估计没更新,安装了几次都运行失败,克隆了最新的就安装成功了。方法1没虚拟环境:不知道成不成功,我使用conda管理安装的gitclonehttps://gitcode.com/wengxiezhen2671/LLaMA-Factory.gitcdLLa</div> </li> <li><a href="/article/72.htm" title="Java开发中,spring mvc 的线程怎么调用?" target="_blank">Java开发中,spring mvc 的线程怎么调用?</a> <span class="text-muted">小麦麦子</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a> <div>今天逛知乎,看到最近很多人都在问spring mvc 的线程http://www.maiziedu.com/course/java/ 的启动问题,觉得挺有意思的,那哥们儿问的也听仔细,下面的回答也很详尽,分享出来,希望遇对遇到类似问题的Java开发程序猿有所帮助。 问题:     在用spring mvc架构的网站上,设一线程在虚拟机启动时运行,线程里有一全局</div> </li> <li><a href="/article/199.htm" title="maven依赖范围" target="_blank">maven依赖范围</a> <span class="text-muted">bitcarter</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包 2.compile 只有编译和打包时才会依赖 3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包 4.runtime 运行时依赖,编译不依赖 5.默认compile 依赖范围compile是支持传递的,test不支持传递 1.传递的意思是项目A,引用</div> </li> <li><a href="/article/326.htm" title="Jaxb org.xml.sax.saxparseexception : premature end of file" target="_blank">Jaxb org.xml.sax.saxparseexception : premature end of file</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/premature/1.htm">premature</a><a class="tag" taget="_blank" href="/search/JAXB/1.htm">JAXB</a> <div>如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误: org.xml.sax.saxparseexception : premature end of file 很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In</div> </li> <li><a href="/article/453.htm" title="CSS Specificity" target="_blank">CSS Specificity</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E6%9D%83%E9%87%8D/1.htm">权重</a><a class="tag" taget="_blank" href="/search/Specificity/1.htm">Specificity</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>  有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢? because specificity CSS 的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。     规则:   HTML标签的权重是1 Class 的权重是10 Id 的权重是100 </div> </li> <li><a href="/article/580.htm" title="java与servlet" target="_blank">java与servlet</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。 下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道 Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha</div> </li> <li><a href="/article/707.htm" title="eclipse中安装maven插件" target="_blank">eclipse中安装maven插件</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>1.首先去官网下载 Maven: http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.2.3-bin.tar.gz 下载完成之后将其解压, 我将解压后的文件夹:apache-maven-3.2.3, 并将它放在 D:\tools目录下, 即 maven 最终的路径是:D:\tools\apache-mave</div> </li> <li><a href="/article/834.htm" title="jpa@OneToOne关联关系" target="_blank">jpa@OneToOne关联关系</a> <span class="text-muted">布衣凌宇</span> <a class="tag" taget="_blank" href="/search/jpa/1.htm">jpa</a> <div>Nruser里的pruserid关联到Pruser的主键id,实现对一个表的增删改,另一个表的数据随之增删改。 Nruser实体类 //***************************************************************** @Entity @Table(name="nruser") @DynamicInsert @Dynam</div> </li> <li><a href="/article/961.htm" title="我的spring学习笔记11-Spring中关于声明式事务的配置" target="_blank">我的spring学习笔记11-Spring中关于声明式事务的配置</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE/1.htm">配置</a> <div>这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中</div> </li> <li><a href="/article/1088.htm" title="java 动态代理简单实现" target="_blank">java 动态代理简单实现</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/handler/1.htm">handler</a><a class="tag" taget="_blank" href="/search/proxy/1.htm">proxy</a><a class="tag" taget="_blank" href="/search/dynamic/1.htm">dynamic</a><a class="tag" taget="_blank" href="/search/service/1.htm">service</a> <div>dynamicproxy.service.HelloService package dynamicproxy.service; public interface HelloService { public void sayHello(); }   dynamicproxy.service.impl.HelloServiceImpl package dynamicp</div> </li> <li><a href="/article/1215.htm" title="JDBC连接数据库" target="_blank">JDBC连接数据库</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JDBC%E7%BC%96%E7%A8%8B/1.htm">JDBC编程</a><a class="tag" taget="_blank" href="/search/JAVA%E6%93%8D%E4%BD%9Coracle%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">JAVA操作oracle数据库</a> <div>         如果我们要想连接oracle公司的数据库,就要首先下载oralce公司的驱动程序,将这个驱动程序的jar包导入到我们工程中;   JDBC链接数据库的代码和固定写法;     1,加载oracle数据库的驱动;     &nb</div> </li> <li><a href="/article/1342.htm" title="单例模式中的多线程分析" target="_blank">单例模式中的多线程分析</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a> <div>谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载。 饿汉式: package com.bijian.study; public class Singleton { private Singleton() { } // 注意这是private 只供内部调用 private static</div> </li> <li><a href="/article/1469.htm" title="javascript读取和修改原型特别需要注意原型的读写不具有对等性" target="_blank">javascript读取和修改原型特别需要注意原型的读写不具有对等性</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/prototype/1.htm">prototype</a> <div>        对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有</div> </li> <li><a href="/article/1596.htm" title="【持久化框架MyBatis3六】MyBatis3集成第三方DataSource" target="_blank">【持久化框架MyBatis3六】MyBatis3集成第三方DataSource</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/dataSource/1.htm">dataSource</a> <div>MyBatis内置了数据源的支持,如:   <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <data</div> </li> <li><a href="/article/1723.htm" title="我程序中用到的urldecode和base64decode,MD5" target="_blank">我程序中用到的urldecode和base64decode,MD5</a> <span class="text-muted">bitcarter</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/MD5/1.htm">MD5</a><a class="tag" taget="_blank" href="/search/base64decode/1.htm">base64decode</a><a class="tag" taget="_blank" href="/search/urldecode/1.htm">urldecode</a> <div>这里是base64decode和urldecode,Md5在附件中。因为我是在后台所以需要解码: string Base64Decode(const char* Data,int DataByte,int& OutByte) { //解码表 const char DecodeTable[] = { 0, 0, 0, 0, 0, 0</div> </li> <li><a href="/article/1850.htm" title="腾讯资深运维专家周小军:QQ与微信架构的惊天秘密" target="_blank">腾讯资深运维专家周小军:QQ与微信架构的惊天秘密</a> <span class="text-muted">ronin47</span> <div>社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心</div> </li> <li><a href="/article/1977.htm" title="java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素" target="_blank">java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class MinOfShiftedArray { /** * Q69 旋转数组的最小元素 * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。 * 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。 */ publ</div> </li> <li><a href="/article/2104.htm" title="看博客,应该是有方向的" target="_blank">看博客,应该是有方向的</a> <span class="text-muted">Cb123456</span> <a class="tag" taget="_blank" href="/search/%E5%8F%8D%E7%9C%81/1.htm">反省</a><a class="tag" taget="_blank" href="/search/%E7%9C%8B%E5%8D%9A%E5%AE%A2/1.htm">看博客</a> <div>看博客,应该是有方向的:  我现在就复习以前的,在补补以前不会的,现在还不会的,同时完善完善项目,也看看别人的博客.  我刚突然想到的:  1.应该看计算机组成原理,数据结构,一些算法,还有关于android,java的。  2.对于我,也快大四了,看一些职业规划的,以及一些学习的经验,看看别人的工作总结的.    为什么要写</div> </li> <li><a href="/article/2231.htm" title="[开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖" target="_blank">[开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a> <div>      为什么这样说呢?  因为科学和技术的发展有时候需要一个平缓和长期的积累过程,但是行政和商业体系本身充满各种不稳定性和不确定性,如果你希望长期从事某个科研项目,但是却又必须依赖于某种行政和商业体系,那其中的过程必定充满各种风险。。。       所以,为避免这种不确定性风险,我</div> </li> <li><a href="/article/2358.htm" title="一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )" target="_blank">一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )</a> <span class="text-muted">cwqcwqmax9</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>见   http://www.itpub.net/forum.php?mod=viewthread&tid=239011 Web翻页优化实例 提交时间: 2004-6-18 15:37:49      回复    发消息  环境: Linux ve</div> </li> <li><a href="/article/2485.htm" title="Hibernat and Ibatis" target="_blank">Hibernat and Ibatis</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a> <div>Hibernate  VS  iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mappi</div> </li> <li><a href="/article/2612.htm" title="备份MYSQL脚本" target="_blank">备份MYSQL脚本</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>#!/bin/sh # this shell to backup mysql #1413161683@qq.com (QQ:1413161683 DuChengJiu) _dbDir=/var/lib/mysql/ _today=`date +%w` _bakDir=/usr/backup/$_today [ ! -d $_bakDir ] && mkdir -p </div> </li> <li><a href="/article/2739.htm" title="iOS第三方开源库的吐槽和备忘" target="_blank">iOS第三方开源库的吐槽和备忘</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>转自 ibireme的博客   做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。   目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。   首先整理了一份 Github上排名靠</div> </li> <li><a href="/article/2866.htm" title="html wlwmanifest.xml" target="_blank">html wlwmanifest.xml</a> <span class="text-muted">eoems</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>所谓优化wp_head()就是把从wp_head中移除不需要元素,同时也可以加快速度。 步骤: 加入到function.php remove_action('wp_head', 'wp_generator'); //wp-generator移除wordpress的版本号,本身blog的版本号没什么意义,但是如果让恶意玩家看到,可能会用官网公布的漏洞攻击blog remov</div> </li> <li><a href="/article/2993.htm" title="浅谈Java定时器发展" target="_blank">浅谈Java定时器发展</a> <span class="text-muted">hacksin</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91/1.htm">并发</a><a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a> <div>java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。 Timer与ScheduleThreadPoolExecutor对比: 1.    Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列</div> </li> <li><a href="/article/3120.htm" title="移动端页面侧边导航滑入效果" target="_blank">移动端页面侧边导航滑入效果</a> <span class="text-muted">ini</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascirpt/1.htm">javascirpt</a> <div>效果体验:http://hovertree.com/texiao/mobile/2.htm可以使用移动设备浏览器查看效果。效果使用到jquery-2.1.4.min.js,该版本的jQuery库是用于支持HTML5的浏览器上,不再兼容IE8以前的浏览器,现在移动端浏览器一般都支持HTML5,所以使用该jQuery没问题。HTML文件代码: <!DOCTYPE html> <h</div> </li> <li><a href="/article/3247.htm" title="AspectJ+Javasist记录日志" target="_blank">AspectJ+Javasist记录日志</a> <span class="text-muted">kane_xie</span> <a class="tag" taget="_blank" href="/search/aspectj/1.htm">aspectj</a><a class="tag" taget="_blank" href="/search/javasist/1.htm">javasist</a> <div>在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。   @Override public String get(String key) { // long start = System.currentTimeMillis(); // System.out.println("Be</div> </li> <li><a href="/article/3374.htm" title="redis学习笔记" target="_blank">redis学习笔记</a> <span class="text-muted">MJC410621</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a> <div>1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。 1,处理超大量的数据 2,运行在便宜的PC服务器集群上, 3,击碎了性能瓶颈。 1)对数据高并发读写。 2)对海量数据的高效率存储和访问。 3)对数据的高扩展性和高可用性。 redis支持的类型: Sring 类型 set name lijie get name lijie set na</div> </li> <li><a href="/article/3501.htm" title="使用redis实现分布式锁" target="_blank">使用redis实现分布式锁</a> <span class="text-muted">qifeifei</span> <div>在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:   public Long setnx(final byte[] key, final byte[] value) { checkIsInMulti(); client.setnx(key, value); ret</div> </li> <li><a href="/article/3628.htm" title="BI并非万能,中层业务管理报表要另辟蹊径" target="_blank">BI并非万能,中层业务管理报表要另辟蹊径</a> <span class="text-muted">张老师的菜</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/BI/1.htm">BI</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E4%B8%9A%E6%99%BA%E8%83%BD/1.htm">商业智能</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8C%96/1.htm">信息化</a> <div>       BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP、CRM、SCM、进销存、HER、OA等。        BI系统不同于传统的管理信息系统,他号称是一个整体应用的解决方案,是融入管理思想的强大系统:有着系统整体的设计思想,支持对所有</div> </li> <li><a href="/article/3755.htm" title="安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题" target="_blank">安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题</a> <span class="text-muted">wudixiaotie</span> <a class="tag" taget="_blank" href="/search/function/1.htm">function</a> <div>1.在~/.bashrc最后加入 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  2.重新启动terminal输入:   rvm use ruby-2.2.1 --default  把当前安装的ruby版本设为默</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>