paulwong

          #

          SOLR/LUCENCE資源

          視頻:01. lucene簡介和創建索引初步等
          http://www.itsoku.com/video/sp/63/v/1683.shtml

          posted @ 2013-12-27 16:13 paulwong 閱讀(276) | 評論 (0)編輯 收藏

          JBOSS資源

          !!JBOSS集群系列:
          http://blog.csdn.net/kylinsoong/article/category/1668321

          JBOSS測試
          http://docs.jboss.org/arquillian/reference/1.0.0.Alpha5/en-US/html_single/

          JBOSS安裝工具
          http://tools.jboss.org/downloads/jbosstools/indigo/3.3.2.Final.html

          Java EE 6 Testing Part I – EJB 3.1 Embeddable API
          http://www.samaxes.com/2011/12/javaee-testing-ejb31-embeddable/

          Java EE 6 Testing Part II – Introduction to Arquillian and ShrinkWrap
          http://www.samaxes.com/2012/05/javaee-testing-introduction-arquillian-shrinkwrap/

          !!JBOSS系列 -EJB遠程調用-客戶端的配置 
          http://www.cnblogs.com/liutengteng130/p/4270832.html

          JBOSS 8文檔
          https://docs.jboss.org/author/display/WFLY8/Documentation

          posted @ 2013-12-27 13:34 paulwong 閱讀(254) | 評論 (0)編輯 收藏

          在SPRING DATA MONGODB中使用聚合統計查詢

          在SQL語句中如要做統計一般是這種方式:
          SELECT ..,SUM(1)
          FROM ..
          WHERE ..
          GROUP BY ..
          HAVING ..
          SORT ..


          在MONGODB中的架構圖



          在SPRING DATA MONGODB中是這樣寫的:
          public class VideoRepositoryImpl implements VideoRepositoryCustom{
              
              private static Logger logger = LoggerFactory.getLogger(VideoRepositoryImpl.class);
              
              @Autowired
              private MongoTemplate mongoTemplate;
              

              public List<Cat1UpdateCount> getVideoWithUpdateFrag(List<String> importantCat1List) {
                  
                  logger.info(new Date().toString());
                  
                  /**
                   * db.videos.aggregate(
                      [
                         { $match: { "frags.isnew" : true } },
                         { $unwind: "$frags" },
                         { $match: { "frags.isnew" : true } },
                         { $group: { 
                                     _id: {cat1:"$cat1"},
                                     count: { $sum: 1 },
                                     publishdate2: { $max: "$publishdate"}
                                   }
                         }
                         
                      ]
                      )
                   
          */
                  Aggregation agg = newAggregation(
                          project("frags","cat1","publishdate"),//挑選所需的字段
                          match(
                                  Criteria.where("frags.isnew").is(Boolean.TRUE)
                                  .and("cat1").in(importantCat1List)
                               ),//篩選符合條件的記錄
                          unwind("frags"),//如果有MASTER-ITEM關系的表,需同時JOIN這兩張表的,展開子項LIST,且是內鏈接,即如果父和子的關聯ID沒有的就不會輸出
                          match(Criteria.where("frags.isnew").is(Boolean.TRUE)),
                          group("cat1")//設置分組字段
                              .count().as("updateCount")//增加COUNT為分組后輸出的字段
                              .last("publishdate").as("publishDate"),//增加publishDate為分組后輸出的字段
                          project("publishDate","cat1","updateCount")//重新挑選字段
                              .and("cat1").previousOperation()//為前一操作所產生的ID FIELD建立別名
                      );

                      AggregationResults<Cat1UpdateCount> results = mongoTemplate.aggregate(agg, Video.COLLECTION_NAME, Cat1UpdateCount.class);
                      List<Cat1UpdateCount> cat1UpdateCountList = results.getMappedResults();
                  
                  return cat1UpdateCountList;
              }

          }

          其中frags的數據類型是LIST

          Cat1UpdateCount.java
          import java.io.Serializable;

          public class Cat1UpdateCount implements Serializable{

              private static final long serialVersionUID = 4240876746984930098L;
              
              private String cat1;
              
              private int updateCount;
              
              private String publishDate;

              public String getCat1() {
                  return cat1;
              }

              public void setCat1(String cat1) {
                  this.cat1 = cat1;
              }

              public int getUpdateCount() {
                  return updateCount;
              }

              public void setUpdateCount(int updateCount) {
                  this.updateCount = updateCount;
              }

              public String getPublishDate() {
                  return publishDate;
              }

              public void setPublishDate(String publishDate) {
                  this.publishDate = publishDate;
              }

              public String toString() {
                  return "Cat1UpdateCount [cat1=" + cat1 + ", updateCount=" + updateCount
                          + ", publishDate=" + publishDate + "]";
              }

          }

          參考:
          http://docs.spring.io/spring-data/data-mongodb/docs/current/reference/htmlsingle/#mongo.group

          http://docs.mongodb.org/manual/reference/operator/aggregation/group/
          http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/

          posted @ 2013-12-24 09:44 paulwong 閱讀(11661) | 評論 (0)編輯 收藏

          為SPRING DATA MONGODB REPOSITORY添加自定義方法

          自從用了SPRING DATA MONGODB后,增刪改查的實現方法都不用自己寫了,只需聲明方法名稱,SPRING會自動添加代碼,但用時候SPRING自帶的方法不夠,難免要添加的,因此如何在原有的方法上疊加自定義的方法呢?

          定義自定義的接口
          public interface VideoRepositoryCustom {
              
              public List<Cat1UpdateCount> getVideoWithUpdateFrag(List<String> importantCat1List);

          }


          添加自定義的實現
          import static org.springframework.data.mongodb.core.aggregation.Aggregation.group;
          import static org.springframework.data.mongodb.core.aggregation.Aggregation.match;
          import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation;
          import static org.springframework.data.mongodb.core.aggregation.Aggregation.project;
          import static org.springframework.data.mongodb.core.aggregation.Aggregation.unwind;

          import java.util.Date;
          import java.util.List;

          import org.slf4j.Logger;
          import org.slf4j.LoggerFactory;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.data.mongodb.core.MongoTemplate;
          import org.springframework.data.mongodb.core.aggregation.Aggregation;
          import org.springframework.data.mongodb.core.aggregation.AggregationResults;
          import org.springframework.data.mongodb.core.query.Criteria;

          import program.video.aggregation.valueobject.Cat1UpdateCount;
          import program.video.valueobject.Video;

          public class VideoRepositoryImpl implements VideoRepositoryCustom{
              
              private static Logger logger = LoggerFactory.getLogger(VideoRepositoryImpl.class);
              
              @Autowired
              private MongoTemplate mongoTemplate;
              

              public List<Cat1UpdateCount> getVideoWithUpdateFrag(List<String> importantCat1List) {
                  
                  logger.info(new Date().toString());
                  
                  /**
                   * db.videos.aggregate(
                      [
                         { $match: { "frags.isnew" : true } },
                         { $unwind: "$frags" },
                         { $match: { "frags.isnew" : true } },
                         { $group: { 
                                     _id: {cat1:"$cat1"},
                                     count: { $sum: 1 },
                                     publishdate2: { $max: "$publishdate"}
                                   }
                         }
                         
                      ]
                      )
                   
          */
                  Aggregation agg = newAggregation(
                          project("frags","cat1","publishdate"),
                          match(
                                  Criteria.where("frags.isnew").is(Boolean.TRUE)
                                  .and("cat1").in(importantCat1List)
                               ),
                          unwind("frags"),//展開子項LIST,且是內鏈接,即如果父和子的關聯ID沒有的就不會輸出
                          match(Criteria.where("frags.isnew").is(Boolean.TRUE)),
                          group("cat1")//設置分組字段
                              .count().as("updateCount")//增加COUNT為分組字段
                              .last("publishdate").as("publishDate"),//增加publishDate為分組字段
                          project("publishDate","cat1","updateCount")//重新挑選字段
                              .and("cat1").previousOperation()//為前一操作所產生的ID FIELD建立別名
                      );

                      AggregationResults<Cat1UpdateCount> results = mongoTemplate.aggregate(agg, Video.COLLECTION_NAME, Cat1UpdateCount.class);
                      List<Cat1UpdateCount> cat1UpdateCountList = results.getMappedResults();
                  
                  return null;
              }

          }


          原先的接口實現多重繼承
          import org.springframework.data.domain.Page;
          import org.springframework.data.domain.Pageable;
          import org.springframework.data.mongodb.repository.Query;
          import org.springframework.data.repository.PagingAndSortingRepository;
          import org.springframework.data.repository.query.Param;

          import program.video.valueobject.Video;


          public interface VideoRepository extends PagingAndSortingRepository<Video, String>,VideoRepositoryCustom {

              @Query("{ title : {$regex : ?0 } }")
              public Page<Video> findVideosByKeyword(@Param("title") String keyword, Pageable page);
              
              @Query("{ pid : ?0 }") 
              public Video findByVideoId(String id); 
              
              @Query(value="{ pid : ?0 , ver: { $gt : ?1 }}")
              public Video findByIdAndVersion(String id, int ver);
              
              
              public Page<Video> findByTitleLike(String title, Pageable pageable);
              
              @Query("{ title : {$regex : ?0}, cat1 : ?1}")
              public Page<Video> findVideosByTitleAndCat1(String title, String cat1, Pageable pageable);
              
              @Query("{ cat1 : ?0}")
              public Page<Video> findVideosByCat1(String cat1, Pageable pageable);
              
              @Query("{ title : {$regex : ?0}, cat1 : ?1, status : ?2}")
              public Page<Video> findVideosByTitleAndCat1AndStatus(String title, String cat1, int status, Pageable pageable);
              
              @Query("{ title : {$regex : ?0}, cat1 : ?1, status : { $in : [ ?2, null]}}")
              public Page<Video> findVideosByTitleAndCat1AndStatusExist(String title, String cat1, int status, Pageable pageable);
              
              @Query("{ title : {$regex : ?0}, status : ?1}")
              public Page<Video> findVideosByTitleAndStatus(String title, int status, Pageable pageable);
              
              @Query("{ title : {$regex : ?0}, status : { $in : [ ?1, null]}}")
              public Page<Video> findVideosByTitleAndStatusExist(String title, int status, Pageable pageable);
              
              @Query("{ cat1 : ?0, status : ?1}")
              public Page<Video> findVideosByCat1AndStatus(String cat1, int status, Pageable pageable);
              
              @Query("{ cat1 : ?0, status : { $in : [ ?1, null]}}")
              public Page<Video> findVideosByCat1AndStatusExist(String cat1, int status, Pageable pageable);
              
              @Query("{ status : ?0}")
              public Page<Video> findVideosByStatus(int status, Pageable pageable);
              
              @Query("{status : { $in : [ ?0, null]}}")
              public Page<Video> findVidesByStatusExist(int status, Pageable pageable);
          }


          SPRING DATA 配置文件
          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
              xmlns:mongo
          ="http://www.springframework.org/schema/data/mongo"
              xsi:schemaLocation
          ="http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context-3.0.xsd
                    http://www.springframework.org/schema/data/mongo
                    http://www.springframework.org/schema/data/mongo/spring-mongo-1.3.xsd
                    http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
          >


              <!-- To translate any MongoExceptions thrown in @Repository annotated classes -->
              <context:annotation-config />
              
              <context:property-placeholder location="classpath*:/properties/mongodb/mongo.properties"/>

              <!-- Default bean name is 'mongo' -->
              <mongo:mongo host="${mongo.host}" port="${mongo.port}">
                  <mongo:options connections-per-host="${mongo.connectionsPerHost}"
                      threads-allowed-to-block-for-connection-multiplier
          ="${mongo.threadsAllowedToBlockForConnectionMultiplier}"
                      connect-timeout
          ="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}"
                      auto-connect-retry
          ="${mongo.autoConnectRetry}" socket-keep-alive="${mongo.socketKeepAlive}"
                      socket-timeout
          ="${mongo.socketTimeout}" slave-ok="${mongo.slaveOk}"
                      write-number
          ="1" write-timeout="0" write-fsync="true" />
              </mongo:mongo>

              <!-- <mongo:db-factory 
                                  dbname="${mongo.dbname}" 
                                  username="${mongo.username}"
                                  password="${mongo.password}"
                                  mongo-ref="mongo" /> 
          -->
                                  
              <mongo:db-factory 
                                  
          dbname="${mongo.dbname}" 
                                  mongo-ref
          ="mongo" />

              <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
                  <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
              </bean>
              
              <mongo:repositories base-package="com.tcl.project7.boss.**.repository" />

          </beans>


          注意的是,自定義的實現類要以IMPL后綴,則SPRING可以自動識別的,無需再指定了。

          調用REPOSITORY
          @Autowired
          private VideoRepository videoRepository;

          posted @ 2013-12-24 09:23 paulwong 閱讀(2173) | 評論 (1)編輯 收藏

          最新HOSTS法去除優酷、愛奇藝等視頻網站廣告

          第一步:找到C:\WINDOWS\system32\drivers\etc里面的hosts文件,雙擊打開,選用記事本打開。

          第二步:把下面的代碼復制到文件中并保存

          #優酷
          127.0.0.1 atm.youku.com
          127.0.0.1 Fvid.atm.youku.com
          127.0.0.1 html.atm.youku.com
          127.0.0.1 valb.atm.youku.com
          127.0.0.1 valf.atm.youku.com
          127.0.0.1 valo.atm.youku.com
          127.0.0.1 valp.atm.youku.com
          127.0.0.1 lstat.youku.com
          127.0.0.1 speed.lstat.youku.com
          127.0.0.1 urchin.lstat.youku.com
          127.0.0.1 stat.youku.com
          127.0.0.1 static.lstat.youku.com
          127.0.0.1 valc.atm.youku.com
          127.0.0.1 vid.atm.youku.com
          127.0.0.1 walp.atm.youku.com
          #百度:
          127.0.0.1 a.baidu.com
          127.0.0.1 baidutv.baidu.com
          127.0.0.1 bar.baidu.com
          127.0.0.1 c.baidu.com
          127.0.0.1 cjhq.baidu.com
          127.0.0.1 cpro.baidu.com
          127.0.0.1 drmcmm.baidu.com
          127.0.0.1 e.baidu.com
          127.0.0.1 eiv.baidu.com
          127.0.0.1 hc.baidu.com
          127.0.0.1 hm.baidu.com
          127.0.0.1 ma.baidu.com
          127.0.0.1 nsclick.baidu.com
          127.0.0.1 spcode.baidu.com
          127.0.0.1 tk.baidu.com
          127.0.0.1 union.baidu.com
          127.0.0.1 ucstat.baidu.com
          127.0.0.1 utility.baidu.com
          127.0.0.1 utk.baidu.com
          127.0.0.1 focusbaiduafp.allyes.com
          #奇藝
          127.0.0.1 afp.qiyi.com
          127.0.0.1 focusbaiduafp.allyes.com
          #CNTV
          127.0.0.1 a.cctv.com
          127.0.0.1 a.cntv.cn
          127.0.0.1 ad.cctv.com
          127.0.0.1 d.cntv.cn
          127.0.0.1 adguanggao.eee114.com
          127.0.0.1 cctv.adsunion.com
          #新浪視頻
          127.0.0.1 dcads.sina.com.cn
          #pptv
          127.0.0.1 pp2.pptv.com
          #樂視
          127.0.0.1 pro.letv.com
          #搜狐高清
          127.0.0.1 images.sohu.com
          @HostsX 國內站點廣告/視頻類網站
          #CNTV
          127.0.0.1 a.cctv.com
          127.0.0.1 a.cntv.cn
          127.0.0.1 ad.cctv.com
          127.0.0.1 d.cntv.cn
          127.0.0.1 adguanggao.eee114.com
          127.0.0.1 cctv.adsunion.com
          #我樂網
          127.0.0.1 acs.56.com
          127.0.0.1 acs.agent.56.com
          127.0.0.1 acs.agent.v-56.com
          127.0.0.1 bill.agent.56.com
          127.0.0.1 bill.agent.v-56.com
          127.0.0.1 stat.56.com
          127.0.0.1 stat2.corp.56.com
          127.0.0.1 union.56.com
          127.0.0.1 uvimage.56.com
          127.0.0.1 v16.56.com
          #6間房
          127.0.0.1 pole.6rooms.com
          127.0.0.1 shrek.6.cn
          127.0.0.1 simba.6.cn
          127.0.0.1 union.6.cn
          #土豆網
          127.0.0.1 adextensioncontrol.tudou.com
          127.0.0.1 iwstat.tudou.com
          127.0.0.1 nstat.tudou.com
          127.0.0.1 stats.tudou.com
          127.0.0.1 *.p2v.tudou.com*
          127.0.0.1 at-img1.tdimg.com
          127.0.0.1 at-img2.tdimg.com
          127.0.0.1 at-img3.tdimg.com
          127.0.0.1 adplay.tudou.com
          127.0.0.1 adcontrol.tudou.com
          127.0.0.1 stat.tudou.com
          #酷6網
          127.0.0.1 1.allyes.com.cn
          127.0.0.1 analytics.ku6.com
          127.0.0.1 gug.ku6cdn.com
          127.0.0.1 ku6.allyes.com
          127.0.0.1 ku6afp.allyes.com
          127.0.0.1 pq.stat.ku6.com
          127.0.0.1 st.vq.ku6.cn
          127.0.0.1 stat0.888.ku6.com
          127.0.0.1 stat1.888.ku6.com
          127.0.0.1 stat2.888.ku6.com
          127.0.0.1 stat3.888.ku6.com
          127.0.0.1 static.ku6.com
          127.0.0.1 v0.stat.ku6.com
          127.0.0.1 v1.stat.ku6.com
          127.0.0.1 v2.stat.ku6.com
          127.0.0.1 v3.stat.ku6.com
          #激動網
          127.0.0.1 86file.megajoy.com
          127.0.0.1 86get.joy.cn
          127.0.0.1 86log.joy.cn
          #天線視頻
          127.0.0.1 casting.openv.com
          127.0.0.1 m.openv.tv
          127.0.0.1 uniclick.openv.com
          #迅雷看看屏蔽:
          127.0.0.1 mcfg.sandai.net
          127.0.0.1 biz5.sandai.net
          127.0.0.1 server1.adpolestar.net
          127.0.0.1 advstat.xunlei.com
          127.0.0.1 mpv.sandai.net

          posted @ 2013-12-09 23:06 paulwong 閱讀(2761) | 評論 (0)編輯 收藏

          maven通過命令行復制jar包的依賴包命令

          從Maven倉庫中導出jar包:

          進入工程pom.xml 所在的目錄下,輸入以下命令:

          mvn dependency:copy-dependencies -DoutputDirectory=lib
          lib為導出的目標文件夾

          posted @ 2013-11-28 12:10 paulwong 閱讀(1351) | 評論 (0)編輯 收藏

          JAX-RS資源

          JAX-RS是JAVA EE的一個標準,用來處理RESTFUL的WEBSERVICE。


          Jersey 2.4.1 User Guide
          https://jersey.java.net/documentation/latest/index.html


          The Java EE 6 Tutorial
          http://docs.oracle.com/javaee/6/tutorial/doc/gkoib.html


          基于JAXB注釋的JSON與JAVA BEAN的互轉
          http://wiki.fasterxml.com/JacksonDataBinding
          http://stackoverflow.com/questions/10699038/generating-more-json-like-json-from-jaxb-and-jersey
          http://wiki.fasterxml.com/JacksonJAXBAnnotations


          例子:
          https://github.com/jersey/jersey/tree/2.4.1/examples






          posted @ 2013-11-27 12:03 paulwong 閱讀(560) | 評論 (0)編輯 收藏

          微信公眾平臺開發資源

          【微信公眾平臺改版后】Java模擬登錄微信平臺,主動推送消息給用戶
          http://50vip.com/blog.php?i=349


          微信公眾賬號開發
          http://my.oschina.net/ywooer/blog?catalog=419479

          posted @ 2013-11-25 22:00 paulwong 閱讀(560) | 評論 (0)編輯 收藏

          NGINX資源

          Nginx + Memcached + Tomcat 集群
          http://www.oschina.net/question/1014681_107718


          安裝NGINX:
          https://www.server-world.info/en/note?os=CentOS_Stream_8&p=nginx&f=1

          自己生成證書:
          https://www.server-world.info/en/note?os=CentOS_Stream_8&p=ssl&f=1

          NGINX配置HTTPS:
          https://www.server-world.info/en/note?os=CentOS_Stream_8&p=nginx&f=3

          NGINX配置負載均衡
          https://www.server-world.info/en/note?os=CentOS_Stream_8&p=nginx&f=9

          NGINX配置反射代理
          https://www.server-world.info/en/note?os=CentOS_Stream_8&p=nginx&f=8



          徹底搞懂 Nginx 五大應用場景!出去吹牛逼再也不擔心了
          https://segmentfault.com/a/1190000040420111

          Nginx系列教程(3)nginx緩存服務器上的靜態文件
          https://segmentfault.com/a/1190000022548261

          Nginx常用反向代理配置規則
          https://segmentfault.com/a/1190000022501310

          Nginx系列教程(10)基于Nginx解決前端訪問后端服務跨域問題(Session和cookie無效)
          https://segmentfault.com/a/1190000022505420

          生產環境之Nginx高可用方案(keepalived+雙機熱備)
          https://segmentfault.com/a/1190000022511710

          【nginx】配置Nginx實現負載均衡
          https://segmentfault.com/a/1190000017096671

          面試官:Nginx 如何實現高并發?常見的優化手段有哪些?
          https://segmentfault.com/a/1190000040559345

          posted @ 2013-11-24 21:11 paulwong 閱讀(277) | 評論 (0)編輯 收藏

          基于springMVC+springSecurity3.x+Mybaits3.x的權限系統

          https://github.com/lanyuancom/lanyuan @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          posted @ 2013-11-24 20:54 paulwong 閱讀(891) | 評論 (0)編輯 收藏

          僅列出標題
          共115頁: First 上一頁 58 59 60 61 62 63 64 65 66 下一頁 Last 
          主站蜘蛛池模板: 墨脱县| 隆昌县| 邯郸县| 赤峰市| 阳谷县| 阳山县| 和硕县| 邢台县| 阆中市| 新巴尔虎左旗| 侯马市| 周至县| 涡阳县| 镇康县| 拜城县| 兰溪市| 乐陵市| 青川县| 灌阳县| 弥渡县| 广河县| 稻城县| 天峨县| 嘉荫县| 左云县| 柞水县| 红原县| 长岛县| 海盐县| 改则县| 涟源市| 太仓市| 大英县| 阜平县| 平塘县| 肥东县| 佛冈县| 普安县| 青海省| 靖远县| 逊克县|