<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BoBo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/b45bobo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; b45bobo]]></copyright><item><title><![CDATA[itext使用缺陷？]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/130072086</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/130072086</guid><author>b45bobo</author><pubDate>Mon, 10 Apr 2023 23:02:19 +0800</pubDate><description><![CDATA[目前发现itext生成的pdf文件在针式打印机里会出现打印字体缺陷，比如 日 变成 口  天 变 大 有一定随机性。无法解决，还是使用其他软件吧/(ㄒoㄒ)/~~]]></description><category></category></item><item><title><![CDATA[ItextPdf 字体显示差异分析与处理]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/128870467</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/128870467</guid><author>b45bobo</author><pubDate>Fri, 03 Feb 2023 17:31:03 +0800</pubDate><description><![CDATA[ItextPdf 字体显示差异分析与处理]]></description><category></category></item><item><title><![CDATA[itext7 字体问题解答与相应源代码分析]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/124335157</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/124335157</guid><author>b45bobo</author><pubDate>Sat, 23 Apr 2022 16:53:08 +0800</pubDate><description><![CDATA[ITEXT7 字体处理前言一、如何添加itext7 没有的字体？二、部分字体添加无效总结

前言
本文主要是用于解决itext7 添加字体时遇到的问题分析及解决方案。

一、如何添加itext7 没有的字体？
itext pdf 提供了多种对字体的添加，例如：
FontProvider fp = new FontProvider();
// 该方法为通过添加font的路径的方式让FontProvider对象自行加载字体列表
fp.addDirectory(prePath + "config\\fonts")]]></description><category></category></item><item><title><![CDATA[项目中的数据操作日志设计]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/81429786</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/81429786</guid><author>b45bobo</author><pubDate>Sun, 05 Aug 2018 13:16:19 +0800</pubDate><description><![CDATA[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在项目里除了通常的登录日志外，通常还要对我们的重要的业务数据做个数据的变更记录。但是我在网上搜索了一下，主要的解决方案是spring AOP + 注解 的方式进行记录。这种操作起来简便，但是粗糙了许多。下面我将介绍下另一种做法，代码多了，但是也精确了。 
 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp...]]></description><category></category></item><item><title><![CDATA[ElasticSearch 5.3  java API 查询]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/81429206</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/81429206</guid><author>b45bobo</author><pubDate>Sun, 05 Aug 2018 11:13:44 +0800</pubDate><description><![CDATA[关于ElasticSearch的index创建在这里已经介绍了。 
根据id查询数据：



//根据id查询的话使用IdsQueryBuilder来添加id
IdsQueryBuilder queryBuilder = QueryBuilders.idsQuery();
queryBuilder.addIds(orgId);
SearchResponse response = client.pr...]]></description><category></category></item><item><title><![CDATA[ElasticSearch 5.3  java Api（增删改）使用]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/80312938</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/80312938</guid><author>b45bobo</author><pubDate>Tue, 15 May 2018 17:51:12 +0800</pubDate><description><![CDATA[话不多说，环境是ElasticSearch 安装教程 可以看这个。我的环境是5.3 + 分词 。

一、Index的创建

&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;5.x的默认是不会在你插入数据的时候主动创建index的，所以网上其他地方的介绍代码，都有问题。你是没法直接用的。 
创建index：



     // 设置集群名称
]]></description><category></category></item><item><title><![CDATA[中小项目中缓存的使用（心得）]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/79595782</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/79595782</guid><author>b45bobo</author><pubDate>Sat, 17 Mar 2018 21:12:38 +0800</pubDate><description><![CDATA[&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在稍大型的项目里，常常为了解决查询数据的效率或者是为了减轻数据库的压力都会采用添加缓存来实现目的。那么在项目里我们该如何的添加缓存？这里我分享下我的使用缓存方案。


数据量不大的情况下： 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在要缓存的数据量并不是太大的情况下，我们]]></description><category></category></item><item><title><![CDATA[spring事务注解详细  Transactional]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/79543160</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/79543160</guid><author>b45bobo</author><pubDate>Tue, 13 Mar 2018 17:11:52 +0800</pubDate><description><![CDATA[遇见这样一个问题：服务层里 A类的a方法调用B类的b方法，都是spring事务注解，然后我需要a方法回滚，b不需要。但是由于连续性，都是一个事务，会一起回滚。后发现添加注解



@Transactional(propagation=Propagation.REQUIRES_NEW)

这样表示生成新的事务，把两个分开看待。 
详细的事务解释看这位大佬：spring @Transactional注...]]></description><category></category></item><item><title><![CDATA[ElasticSearch 集群配置]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/79047599</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/79047599</guid><author>b45bobo</author><pubDate>Fri, 12 Jan 2018 19:47:19 +0800</pubDate><description><![CDATA[对于ElasticSearch的具体各项配置可以看别人写的ElasticSearch各项配置介绍  
集群部署时 
机器一


## cluster
cluster.name: "my-es-cluster"
## node
node.name: "node-1"
node.master: true
node.data: true
## network
network.host: 192.168.]]></description><category></category></item><item><title><![CDATA[加密解密 AES]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/79003434</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/79003434</guid><author>b45bobo</author><pubDate>Mon, 08 Jan 2018 15:27:21 +0800</pubDate><description><![CDATA[转 

/**
 * AES加密解密
 */
public class AesUtils {
          /** 
         * 加密--把加密后的byte数组先进行二进制转16进制在进行base64编码 
         * @param sSrc 
         * @param sKey 
         * @return 
         * @throws E]]></description><category></category></item><item><title><![CDATA[转 jedis常用操作]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78920996</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78920996</guid><author>b45bobo</author><pubDate>Thu, 28 Dec 2017 13:17:35 +0800</pubDate><description><![CDATA[原作者地址//连接redis ，redis的默认端口是6379Jedis  jedis = new Jedis ("localhost",6379); //验证密码，如果没有设置密码这段代码省略jedis.auth("password"); jedis.connect();//连接jedis.disconnect();//断开连接Set<String> keys = jedis.keys("*");]]></description><category></category></item><item><title><![CDATA[集群部署时，session缓存问题]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78761371</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78761371</guid><author>b45bobo</author><pubDate>Sat, 09 Dec 2017 20:23:23 +0800</pubDate><description><![CDATA[现在主流的session缓存解决方式有两类，一个是利用tomcat+redis，另一个是spring-session。至于怎么弄，真的是随便搜，这里说下问题。
    我是用tomcat+redis的方式，但是后来发现一个问题，session时销毁并不会触发sessionDestroyed方法，但是能触发添加元素的监听，简直爆炸。后来自己又去部署了spring session的缓存方式，发现居然监听]]></description><category></category></item><item><title><![CDATA[跨域SSO单点登录的简易实现和代理服务]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78210069</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78210069</guid><author>b45bobo</author><pubDate>Wed, 06 Dec 2017 16:12:08 +0800</pubDate><description><![CDATA[单点登录的意思呢就是有多个系统的情况下，用户在同一登陆系统处进行账号登陆。之后访问其他系统时，可以直接进入系统，不用再次进行登录操作，以此来节约资源，也方便管理。 
      那么如何搭建一个简易的单点登录呢，且看下面。 
      首先，看个图： 
 
    从这个图上可以明显的知道sso的一个工作原理，对于应用而言，只要没登录都会跳转到sso。由sso做统一的登录处理。在用户完成登录后，s]]></description><category></category></item><item><title><![CDATA[Gson 与FastJson 在json化 session时有异]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78541268</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78541268</guid><author>b45bobo</author><pubDate>Wed, 15 Nov 2017 15:24:51 +0800</pubDate><description><![CDATA[由于之前设计的问题，现在要去json化一个session的集合。在使用Gson时，发现Gson转换的json里面只有session地址。后来试用fastjson,他可以将session里面的属性都正常json化。记录下。]]></description><category></category></item><item><title><![CDATA[父类获取子类的新属性值]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78412092</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78412092</guid><author>b45bobo</author><pubDate>Wed, 01 Nov 2017 11:20:56 +0800</pubDate><description><![CDATA[情景：在一个方法中class A {}
class B extends A{
    private String token;
        public String getAgentToken() {
            return token;
        }
        public void setAgentToken(String token) {]]></description><category></category></item><item><title><![CDATA[自带cookie的httpClient请求]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78262082</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78262082</guid><author>b45bobo</author><pubDate>Tue, 17 Oct 2017 16:35:53 +0800</pubDate><description><![CDATA[在使用httpClient的时候，为了模拟另一个已经登录过的用户进行操作。这里进行模拟。 
httpClient的包要4.3.3以上。        BasicCookieStore cookieStore = new BasicCookieStore();
        BasicClientCookie cookie = new BasicClientCookie("JSESSIONID",]]></description><category></category></item><item><title><![CDATA[java 过滤器初始化时获取Bean]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/78256545</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/78256545</guid><author>b45bobo</author><pubDate>Tue, 17 Oct 2017 09:06:40 +0800</pubDate><description><![CDATA[近日,在使用过滤器时，由于要在初始化的时候加载数据库里的数据。但是发现注解注入bean的时间在init之后，导致没法在init方法里面使用数据库bean对象。 
    后来发现可以通过FilterConfig获取bean，方法如下：ApplicationContext app= WebApplicationContextUtils.getWebApplicationContext(config.g]]></description><category></category></item><item><title><![CDATA[java两个字符串的差异对比与显示（8/25修订）]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/77534819</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/77534819</guid><author>b45bobo</author><pubDate>Thu, 24 Aug 2017 18:04:49 +0800</pubDate><description><![CDATA[问题：有两串字符串，现在需要把里面不同的内容标记出来。 
解决： 
这里用到一个java类Diff_match_patch（文章最下面显示，该文件出自网络）主要代码public static void main(String[] arge){
            LinkedList<Diff> t = diff_match_patch.diff_main(altbe,altaf);]]></description><category></category></item><item><title><![CDATA[dubbo的Filter实现类属性自动注入（Autowired）无效]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/77368411</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/77368411</guid><author>b45bobo</author><pubDate>Fri, 18 Aug 2017 12:48:41 +0800</pubDate><description><![CDATA[问题描述： 
    最近在做一个功能时，要用到dubbo的filter。于是在实现接口 
com.alibaba.dubbo.rpc.Filter后，按照正常思路添加了属性，代码如下：@Activate(group = {Constants.PROVIDER})
public class CatFilterImpl implements Filter {
    @Autowired
    pr]]></description><category></category></item><item><title><![CDATA[Myeclipse自动生成hibernate的entity]]></title><link>https://blog.youkuaiyun.com/b45bobo/article/details/77367831</link><guid>https://blog.youkuaiyun.com/b45bobo/article/details/77367831</guid><author>b45bobo</author><pubDate>Fri, 18 Aug 2017 11:41:31 +0800</pubDate><description><![CDATA[在这里，首先新建一个java项目，比如 
 
然后选中test，在菜单那里选择MyEclipse->project facets-> install hibernate Facet 在弹出窗中选择这个位置的new 
 
然后给项目起个包名。然后确认。 
 
打开DBView这边 
 
找到自己的项目表，点击表并右键， 
 
选择 hibernate Reverse Engineering 
 
选择]]></description><category></category></item></channel></rss>