<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[forward_123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/forward_123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; forward_123]]></copyright><item><title><![CDATA[函数式编程]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/124643329</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/124643329</guid><author>forward_123</author><pubDate>Sun, 08 May 2022 09:14:32 +0800</pubDate><description><![CDATA[摘要： 在Java重构的过程中，巧妙的运用函数式思想能够便捷地去掉重复。

函数式编程是声明式的。也就是说，她应该指定“什么要做”而非“怎么做”。这种方式使得我们可以工作更高的抽象层次。而传统的过程式以及面向对象的语言，则是命令式的，因而更关注于“怎么做”这个层面。站在面向对象思想的角度来看，函数式编程将函数看成一等公民的思想，使得我们处理的粒度从类变小为函数，从而可以更好地满足系统对重用性和扩展性的支持。也就是说，我们可以从函数的粒度，而非对象的粒度去思考领域问题。

例如，有这样一个场景：我的业务模型是]]></description><category></category></item><item><title><![CDATA[activiti的listener问题记录]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/89945498</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/89945498</guid><author>forward_123</author><pubDate>Wed, 08 May 2019 09:44:15 +0800</pubDate><description><![CDATA[问题:noMethodError

在listener中利用接口调用的方法进行了修改，主要改了返回值和抛异常，结果就报错了。

检查了方法的定义，确定方法写得没有问题，但是报错一直没变。

后来，推断可能是listener在发布流程的时候，直接将方法的定义加载，不会在运行期重新加载。于是，将方法修改为以前的定义形式，只是改变方法的实现。问题得以解决。

具体的实现机制还不清楚，有时间了研究一下。
...]]></description><category></category></item><item><title><![CDATA[为什么分布式一定要有redis，redis的一些优缺点]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/89848596</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/89848596</guid><author>forward_123</author><pubDate>Sun, 05 May 2019 16:30:51 +0800</pubDate><description><![CDATA[1、为什么使用redis

分析:博主觉得在项目中使用redis，主要是从两个角度去考虑:性能和并发。当然，redis还具备可以做分布式锁等其他功能，但是如果只是为了分布式锁这些其他功能，完全还有其他中间件(如zookpeer等)代替，并不是非要使用redis。因此，这个问题主要从性能和并发两个角度去答。
回答:如下所示，分为两点


（一）性能

如下图所示，我们在碰到需要执行耗时特别久，且结果...]]></description><category></category></item><item><title><![CDATA[nginx反向代理和负载均衡策略实战案例]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/89846447</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/89846447</guid><author>forward_123</author><pubDate>Sun, 05 May 2019 15:24:30 +0800</pubDate><description><![CDATA[为什么要使用nginx呢？这得看看nginx能帮我们做些什么。

    首先，nginx能做反向代理【关于反向代理和正向代理此处不做说明了，感兴趣的小伙伴自行谷歌】；比方说，我想在本地使用 www.glmapper1.com 的域名去访问www.taobao.com。那么这个时候我们就可以通过nginx去实现。

   再者，nginx能实现负载均衡，什么是负载均衡呢？就是说应用...]]></description><category></category></item><item><title><![CDATA[oracle按时间创建分区表]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/89218957</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/89218957</guid><author>forward_123</author><pubDate>Thu, 11 Apr 2019 20:12:52 +0800</pubDate><description><![CDATA[原文链接：https://www.cnblogs.com/wangfg/p/5286519.html

首先明确分区表和表分区的区别：表分区是一种思想，分区表示一种技术实现。当表的大小过G的时候可以考虑进行表分区，提高查询效率，均衡IO。oracle分区表是oracle数据库提供的一种表分区的实现形式。表进行分区后，逻辑上仍然是一张表，原来的查询SQL同样生效，同时可以采用使用分区查询来优化SQL...]]></description><category></category></item><item><title><![CDATA[oracle11g自动创建分区（INTERVAL PATITION）后的定时删分区]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/89218780</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/89218780</guid><author>forward_123</author><pubDate>Thu, 11 Apr 2019 20:07:11 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/ronawilliam/article/details/18044797

TRUCK_GPS_TRANS表利用oracle11的INTERVAL PATITION自动创建分区功能按天分区，现在要定时删除30天之前的分区数据，保持表里只有30天的业务数据，因为分区是动态创建，无法获得分区名，所以要用到字典表user_objects，存储过程为...]]></description><category></category></item><item><title><![CDATA[oracle中的 “不等于”]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/86747935</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/86747935</guid><author>forward_123</author><pubDate>Sat, 02 Feb 2019 11:02:01 +0800</pubDate><description><![CDATA[在Oracle中，不等号有三种：&amp;lt;&amp;gt;，!=，^= ，但是并不是可以任意替换的。

　　来看一个例子：

　1）　查询员工姓名不为scott的记录，想都没想，直接select * from emp where ename&amp;lt;&amp;gt;'scott'。

       ename不为空的倒是都查出来了，但是ename为空的没查出来。

       原来这么写的返回结果是“ename不为...]]></description><category></category></item><item><title><![CDATA[oracle中instr()函数的用法记录]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/80863516</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/80863516</guid><author>forward_123</author><pubDate>Sat, 30 Jun 2018 06:34:52 +0800</pubDate><description><![CDATA[instr()函数，字符查找函数：语法：instr( string1, string2 )    /   instr(源字符串, 目标字符串)          instr( string1, string2 [, start_position [, nth_appearance ] ] )   /   instr(源字符串, 目标字符串, 起始位置, 匹配序号)解析：string2 的值要在st...]]></description><category></category></item><item><title><![CDATA[创建Bean的三种方式]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/84829445</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/84829445</guid><author>forward_123</author><pubDate>Sun, 04 Dec 2016 08:06:40 +0800</pubDate><description><![CDATA[大多数情况下，Spring容器直接通过new关键字调用构造器来创建Bean实例，而class属性指定了Bean实例的实现类。因此，元素必须指定Bean实例的class属性，但这并不是实例化Bean的唯一方法。
    Spring支持使用如下方式来创建Bean：
    [b]1.调用构造器创建Bean[/b]
    [b]2.调用静态工厂方法创建Bean[/b]
    [code=&quot;...]]></description><category></category></item><item><title><![CDATA[Spring初探]]></title><link>https://blog.youkuaiyun.com/forward_123/article/details/84829377</link><guid>https://blog.youkuaiyun.com/forward_123/article/details/84829377</guid><author>forward_123</author><pubDate>Sat, 03 Dec 2016 10:45:20 +0800</pubDate><description><![CDATA[[b]Spring为企业应用的开发提供了一个轻量级的解决方案[/b]。该方案包括：
基于依赖注入的核心机制、基于AOP的声明式事务管理、与多种持久层技术的整合、以及优秀的MVC框架等。

[b]Spring的核心功能有两个： [/b]
1.创建、管理所有的java对象（即Bean，任何java类都可作为Spring的Bean）
2.管理Bean之间的依赖关系（通过依赖注入的方式）

...]]></description><category></category></item></channel></rss>