<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[phenix_egg的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/phenix_egg</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; phenix_egg]]></copyright><item><title><![CDATA[JVM配置]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/128132917</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/128132917</guid><author>phenix_egg</author><pubDate>Thu, 01 Dec 2022 15:31:21 +0800</pubDate><description><![CDATA[jvm]]></description><category></category></item><item><title><![CDATA[getway 支持feign功能]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/128035416</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/128035416</guid><author>phenix_egg</author><pubDate>Fri, 25 Nov 2022 11:42:41 +0800</pubDate><description><![CDATA[getway 支持feign接口]]></description><category></category></item><item><title><![CDATA[spring 容器初始化流程]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/104685445</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/104685445</guid><author>phenix_egg</author><pubDate>Thu, 05 Mar 2020 22:15:56 +0800</pubDate><description><![CDATA[上图是我看spring容器初始化源码的思维导图，转载YurBatman大神的总结，写的很好，要多读好几遍。

1、prepareRefresh()刷新前的预处理;
 0）、this.closed.set(false)，this.active.set(true) 设置一些标记位
 1）、initPropertySources()初始化一些属性设置;(交由子类去实现，比如we...]]></description><category></category></item><item><title><![CDATA[web.xml]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/77281383</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/77281383</guid><author>phenix_egg</author><pubDate>Wed, 16 Aug 2017 22:59:21 +0800</pubDate><description><![CDATA[xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">


ServiceName
pa_s]]></description><category></category></item><item><title><![CDATA[web.xml中<security-constraint>和四种认证类型]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/49865383</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/49865383</guid><author>phenix_egg</author><pubDate>Mon, 16 Nov 2015 14:21:30 +0800</pubDate><description><![CDATA[security-constraint> 的子元素  是可选的，如果没有  元素，这表示将禁止所有 HTTP 方法访问相应的资源。 
子元素  需要和  相配合使用，但可以被单独使用。如果没有  子元素，这表明任何身份的用户都可以访问相应的资源。也就是说，如果  中没有  子元素的话，配置实际上是不起中用的。如果加入了
  子元素，但是其内容为空，这表示所有身份的用户都被禁止访问相应的资源。 ]]></description><category></category></item><item><title><![CDATA[scrum实践及心得体会1]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/19757213</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/19757213</guid><author>phenix_egg</author><pubDate>Sun, 23 Feb 2014 14:03:23 +0800</pubDate><description><![CDATA[编写story
1）  ID，迭代周期+编号
2）  名称，简短+含义明确
3）  重要性
4）  估算点数，以最小的story作为1（不以一天的工作量计）
5）  验证条件
6）  备注
 
整理整个项目的Story列表，对整个需求进行一次拆分后，需要整理，和业务经理沟通，再次拆分，争取涵盖整个项目的所有功能点，并尽可能的详细，将每一个点拆分成story，和团队中的资深开发人员，]]></description><category></category></item><item><title><![CDATA[模板模式]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17928647</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17928647</guid><author>phenix_egg</author><pubDate>Mon, 06 Jan 2014 21:11:55 +0800</pubDate><description><![CDATA[1. 概述

　　定义一个操作中的算法的骨架，而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。

2. 模式中的角色

　　2.1 抽象类（AbstractClass）：实现了模板方法，定义了算法的骨架。

　　2.2 具体类（ConcreteClass)：实现抽象类中的抽象方法，已完成完整的算法。

3. 模式解读

　　3.1]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17919623</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17919623</guid><author>phenix_egg</author><pubDate>Mon, 06 Jan 2014 16:02:07 +0800</pubDate><description><![CDATA[转载：http://www.blogjava.net/supercrsky/articles/202544.html，写的很好很清晰。
简单地说，观察者模式定义了一个一对多的依赖关系，让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象，使这些观察者对象能够自动更新。

　　观察者模式的结构

　　观察者（Observer）模式]]></description><category></category></item><item><title><![CDATA[使用工厂模式和策略模式重构复杂业务逻辑]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17842675</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17842675</guid><author>phenix_egg</author><pubDate>Sat, 04 Jan 2014 15:32:55 +0800</pubDate><description><![CDATA[项目组在和外部系统对接，花了好长一段时间对以前的打印逻辑做修改，修改了8次的bug，才实现了当前的外接系统的打印功能，上线的前一刻又发现此次的改动对以前的逻辑产生关联影响，哎，不谈了，原因很简单，随着外接系统的增多，实现的打印方式和功能已经很多了，而此时几千行的代码看看已经让人崩溃了，改动的难度就更大了。
不得不重构了，梳理业务和代码逻辑后，决定采用工厂+策略的模式进行重构。
工厂模式主要是为]]></description><category></category></item><item><title><![CDATA[设计模式的几个基本原则]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17839743</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17839743</guid><author>phenix_egg</author><pubDate>Sat, 04 Jan 2014 11:15:33 +0800</pubDate><description><![CDATA[一. 开-闭"原则(  Open - Closed Principle 缩写:OCP  ),软件实体(类,模块,函数等)应该可以扩展,但是不可以修改 

意思是,在一个系统中,对于扩展是开放的,对于修改是关闭的,一个好的系统是在不修改源代码的情况下,可以扩展你的功能..而实现开闭原则的关键就是抽象化. 
在"开-闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的实现类,抽象类和接]]></description><category></category></item><item><title><![CDATA[sql中的date数据到java中的date类型转换]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17761693</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17761693</guid><author>phenix_egg</author><pubDate>Thu, 02 Jan 2014 17:58:11 +0800</pubDate><description><![CDATA[代码中设置的超时机制没有起效，发现是从数据库中取的sql中的date数据到java中的date的值变化了，原因如下：
java代码写的sql语句取到的sql值的类型为Java.sql.Date，该类型在取到值后，会默认的将时分秒去掉，只保留日期，再代码中做的date转换结果就错了。所以，从数据库中取时间的时候，需要先做类型转换，在sql语句中将时间转换为string类型的取出来
to_char]]></description><category></category></item><item><title><![CDATA[关于arrayList的add和addall]]></title><link>https://blog.youkuaiyun.com/phenix_egg/article/details/17514029</link><guid>https://blog.youkuaiyun.com/phenix_egg/article/details/17514029</guid><author>phenix_egg</author><pubDate>Mon, 23 Dec 2013 22:25:10 +0800</pubDate><description><![CDATA[花了一周时间，重构了系统中最重要的一段下发打印逻辑的代码，理清了各类型间的调用关系，得意之际，测试告诉代码数据异常了，花了5个小时的测试，终于发现了问题，用错了ArrayList的addAll方法，下面列举下add和addAll方法。
 
ArrayList是一个实现可变长数组，继承AbstractList类，实现所有的List接口，还实现了RandomAccess、Cloneable、Ser]]></description><category></category></item></channel></rss>