<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tanjun592的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/tanjun592</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; tanjun592]]></copyright><item><title><![CDATA[高斯数据库（兼容PG）计算两个日期之间的天数（整数）]]></title><link>https://blog.csdn.net/tanjun592/article/details/145563497</link><guid>https://blog.csdn.net/tanjun592/article/details/145563497</guid><author>tanjun592</author><pubDate>Tue, 11 Feb 2025 09:14:02 +0800</pubDate><description><![CDATA[为什么写这个呢，是因为搜索的时候，第一时间出现的是有说用extract方式，又有说用datediff方式。高斯数据库（兼容弄个pg）中两个日期直接相减就是相差的天数，但是值不是整数。需要转换成整数的话，需要额外的方法。]]></description><category></category></item><item><title><![CDATA[openJDK下找不到jar命令（jar command is not found）]]></title><link>https://blog.csdn.net/tanjun592/article/details/135342238</link><guid>https://blog.csdn.net/tanjun592/article/details/135342238</guid><author>tanjun592</author><pubDate>Tue, 02 Jan 2024 15:43:25 +0800</pubDate><description><![CDATA[我们在准备服务器环境的时候一般喜欢删除掉openJDK，然后重新下载配置oracleJDK，并且配置相关的环境变量。但是其实有些时候openJDK也能满足我们的一些要求了，这个时候就不需要再去安装oracleJDK。所以为了修复这个问题，只需要查看当前的openjdk的安全信息，并且安装相同版本的devel包就可以了。]]></description><category></category></item><item><title><![CDATA[设计模式-11种行为型模式]]></title><link>https://blog.csdn.net/tanjun592/article/details/133849111</link><guid>https://blog.csdn.net/tanjun592/article/details/133849111</guid><author>tanjun592</author><pubDate>Sun, 15 Oct 2023 22:44:24 +0800</pubDate><description><![CDATA[行为型模式可以影响一个系统的状态和行为流。11种。责任链，命令，解释器，迭代器，中介者，备忘录（快照），观察者，状态模式，策略模式，模板方法模式，访问者模式。]]></description><category></category></item><item><title><![CDATA[设计模式-7种结构型模式]]></title><link>https://blog.csdn.net/tanjun592/article/details/133832203</link><guid>https://blog.csdn.net/tanjun592/article/details/133832203</guid><author>tanjun592</author><pubDate>Sat, 14 Oct 2023 21:59:12 +0800</pubDate><description><![CDATA[适配器模式，桥接模式，组合模式，装饰模式，外观模式，享元模式，代理模式。]]></description><category></category></item><item><title><![CDATA[面向对象的设计-设计模式-5种创建型模式]]></title><link>https://blog.csdn.net/tanjun592/article/details/133802294</link><guid>https://blog.csdn.net/tanjun592/article/details/133802294</guid><author>tanjun592</author><pubDate>Fri, 13 Oct 2023 02:28:25 +0800</pubDate><description><![CDATA[设计模式网上已经有很多人写了，但是发现有些要么写得比较简单，没有说清楚，要么甚至有些理解错误的。看了很多资料，重新用自己的理解梳理总结一下，将5种创建型模式归纳一下。重点描述一下工厂模式和抽象工厂模式。]]></description><category></category></item><item><title><![CDATA[springboot+mybaties扫描不到@mapper注解-依赖引入错误]]></title><link>https://blog.csdn.net/tanjun592/article/details/129718357</link><guid>https://blog.csdn.net/tanjun592/article/details/129718357</guid><author>tanjun592</author><pubDate>Wed, 22 Mar 2023 20:22:36 +0800</pubDate><description><![CDATA[mybatis-spring-boot-starter，但是我们在操作的时候，不小心点快了，引入了上面一个mybatis依赖包。网上的方法，都是在mapper接口加@mapper注解或者再启动类加@MapperScan注解。这是一个不应该犯的错误，很多教程第一步就是让你引入。如果有人遇到我一样的错误，不要再粗心大意了。我检查了，都照做了还是没有解决问题。修改依赖正确后，问题解决。原来是依赖引入错误。]]></description><category></category></item><item><title><![CDATA[设计模式-JDBC中的桥接模式]]></title><link>https://blog.csdn.net/tanjun592/article/details/128679824</link><guid>https://blog.csdn.net/tanjun592/article/details/128679824</guid><author>tanjun592</author><pubDate>Fri, 13 Jan 2023 22:12:35 +0800</pubDate><description><![CDATA[jdbc虽然没有结构上没有Abstraciotn这一块，但事实上做到了桥接模式的几个核心优点，
1，将接口和实现分离。
2，提高了可扩展性。
3，对客户端隐藏了实现的细节。
所以也被认为是桥接模式的成功示例]]></description><category></category></item><item><title><![CDATA[设计模式-到底什么是builder模式]]></title><link>https://blog.csdn.net/tanjun592/article/details/128623200</link><guid>https://blog.csdn.net/tanjun592/article/details/128623200</guid><author>tanjun592</author><pubDate>Tue, 10 Jan 2023 01:00:27 +0800</pubDate><description><![CDATA[专门用一个构造类，独立于组成对象的部分，UserBuilder，其中提供.name(String name)方法，.age()方法,height()方法等，都是去初始化部分对象属性，同时返回构造器本身，方便链式调用局部构造方法。最后，使用.build()或者.creatUser()等方法，获取之前生成和局部构造了部分属性的实例。]]></description><category></category></item><item><title><![CDATA[启动报错Could not load XX at com.mysql.cj.jdbc NamingException: Cannot create resource instance]]></title><link>https://blog.csdn.net/tanjun592/article/details/127893806</link><guid>https://blog.csdn.net/tanjun592/article/details/127893806</guid><author>tanjun592</author><pubDate>Wed, 16 Nov 2022 21:35:00 +0800</pubDate><description><![CDATA[原来是过滤器创建失败，应为过滤器中，采用@resource来注入局部变量。看起来像是mysql连接的问题。不能使用resouce来注入，可以使用土方法来获取这个局部变量。]]></description><category></category></item><item><title><![CDATA[东方通tongweb7启动报port 8080 is duplicate]]></title><link>https://blog.csdn.net/tanjun592/article/details/126060690</link><guid>https://blog.csdn.net/tanjun592/article/details/126060690</guid><author>tanjun592</author><pubDate>Fri, 29 Jul 2022 17:37:03 +0800</pubDate><description><![CDATA[东方通tongweb7启动报port 8080 is duplicate。查看conf/tongweb.xml文件。发现里面启动状态，和停止状态，都设置了8080端口，所以导致启动报错。
改掉其中stop状态的端口，即可。
据厂商说后续版本已经更新处理了这个问题。...]]></description><category></category></item><item><title><![CDATA[富文本内容通过freemarker导出word标签无法识别问题（spanyes）]]></title><link>https://blog.csdn.net/tanjun592/article/details/121692184</link><guid>https://blog.csdn.net/tanjun592/article/details/121692184</guid><author>tanjun592</author><pubDate>Fri, 03 Dec 2021 10:12:26 +0800</pubDate><description><![CDATA[问题现象：

在我们的项目中要把富文本输入内容导出成word文档。我们采用的freemarker来制作word。效果如下：



word文档中有很多不能很好识别的标签。所以要对富文本的字符串内容进行预处理，其中spanyes标签引起的问题最大。

截取一段spanyes标签内容如下：

&lt;spanyes';font-family:仿宋_gb2312;color:rgb(0,0,0); letter-spacing:-0.3000pt;font-weight:bold;font-size:16.000]]></description><category></category></item><item><title><![CDATA[tomcat配置ssl证书后没有生效-受防火墙AF解密策略影响]]></title><link>https://blog.csdn.net/tanjun592/article/details/119444874</link><guid>https://blog.csdn.net/tanjun592/article/details/119444874</guid><author>tanjun592</author><pubDate>Fri, 06 Aug 2021 15:49:39 +0800</pubDate><description><![CDATA[问题现象：

最近我们的一个网站证书过期，我在tomcat上更新了证书（jks）并且重启后。有个奇怪的问题。更新后，互联网访问就没生效。还是提示证书过期。我看过期证书的信息还是沿用的以前的证书信息，证书里面的内容签名字符串确实是老一版的证书的签名字符串。正当我以为是因为缓存没有更新的时候，我把vPN连上准备去检查的时候，发现VPN连上后，证书就是有效的了。

互联网访问如下：



我点击查看错误信息，看过期证书的信息还是沿用的以前的证书信息，证书里面的内容签名字符串确实是老一版的证书的签名字符串。正当我以]]></description><category></category></item><item><title><![CDATA[一次网站遭受dos攻击解决历程]]></title><link>https://blog.csdn.net/tanjun592/article/details/117074640</link><guid>https://blog.csdn.net/tanjun592/article/details/117074640</guid><author>tanjun592</author><pubDate>Sat, 03 Jul 2021 17:02:27 +0800</pubDate><description><![CDATA[官网访问失败



日志最直接的报错是“GetConnectionTimeoutException”,于是我们病急乱投医一样尝试去解决这个问题。
]]></description><category></category></item><item><title><![CDATA[没用的思考二：super()到底在干什么（继承，重写）--接上篇]]></title><link>https://blog.csdn.net/tanjun592/article/details/112385627</link><guid>https://blog.csdn.net/tanjun592/article/details/112385627</guid><author>tanjun592</author><pubDate>Fri, 08 Jan 2021 23:41:01 +0800</pubDate><description><![CDATA[在上一篇中，我留下这样一段代码：


public class ExtendsTest {
    public static void main(String[] args) {
        A a=new B();
    }
}

class A {
    public A(){
        System.out.println("A的构造方法");
        normal();
    }

    public void normal(){
        System.out.p]]></description><category></category></item><item><title><![CDATA[没用的思考：实例方法只能由对象来调用吗？]]></title><link>https://blog.csdn.net/tanjun592/article/details/112385051</link><guid>https://blog.csdn.net/tanjun592/article/details/112385051</guid><author>tanjun592</author><pubDate>Fri, 08 Jan 2021 23:08:56 +0800</pubDate><description><![CDATA[实例方法只能由对象来调用吗？

例如 有如下类：


class A {
  public void normalFunc(){
      System.out.println("我只是一个普通的实例方法")
  }
}

我们想调用这个普通方法之前，是不是得先new 一个对象，A a=new A() ;然后用对象调用a.normalFunc();

那么为什么静态方法可以通过类名直接调用，实例方法不可以通过类名直接调用呢？事实上在类加载的时候，类的相关信息都已经存进了方法区了。

这一个问题大多数人都可]]></description><category></category></item><item><title><![CDATA[org.apache.ibatis.binding.BindingException: Invalid bound statement]]></title><link>https://blog.csdn.net/tanjun592/article/details/107918849</link><guid>https://blog.csdn.net/tanjun592/article/details/107918849</guid><author>tanjun592</author><pubDate>Mon, 10 Aug 2020 18:02:07 +0800</pubDate><description><![CDATA[org.apache.ibatis.binding.BindingException: Invalid bound statement
springboot应用中写好了mapper接口以及按照正常操作配置好mapper.xml之后，还是报这个错。反复检查配置都没有问题。
配置为：
mapper-locations:


classpath*:mapper/read/*.xml


classpath*:mapper/write/*.xml


最后查明原因是resouces中存放mapper.xml的路径，]]></description><category></category></item><item><title><![CDATA[Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.]]></title><link>https://blog.csdn.net/tanjun592/article/details/105134707</link><guid>https://blog.csdn.net/tanjun592/article/details/105134707</guid><author>tanjun592</author><pubDate>Fri, 27 Mar 2020 11:42:34 +0800</pubDate><description><![CDATA[Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean。

由于找不到ServletWebServerFactory 无法启动应用。

很多原因都可能引起这个问题，我依次排查过很多原因，有些是因为标注问题，还有些大多跟spring-boot相关的依赖有关，在我的项目...]]></description><category></category></item><item><title><![CDATA[由java速通python（四、文件进程线程）]]></title><link>https://blog.csdn.net/tanjun592/article/details/86479628</link><guid>https://blog.csdn.net/tanjun592/article/details/86479628</guid><author>tanjun592</author><pubDate>Fri, 16 Aug 2019 12:26:14 +0800</pubDate><description><![CDATA[45，IO编程-文件读写

with open('/path/to/file', 'r')

as f: print(f.read())

这和前面的try ... finally是一样的，但是代码更佳简洁，并且不必调用f.close()

调用read()会一次性读取文件的全部内容。可以反复调用read(size)方法，每次最多读取size个字节的内容，用readline()可以每次读取一行...]]></description><category></category></item><item><title><![CDATA[由java速通python（三、python面向对象编程）]]></title><link>https://blog.csdn.net/tanjun592/article/details/86479438</link><guid>https://blog.csdn.net/tanjun592/article/details/86479438</guid><author>tanjun592</author><pubDate>Fri, 16 Aug 2019 08:49:52 +0800</pubDate><description><![CDATA[26，python的模块

一个.py文件就是一个模块

为了避免模块名冲突，Python又引入了按目录来组织模块的方法，称为包（Package）

只要顶层的包名不与别人冲突，那所有模块都不会与别人冲突。现在，abc.py模块的名字就变成了mycompany.abc

请注意，每一个包目录下面都会有一个__init__.py的文件，这个文件是必须存在的，否则，Python就把这个目录当成普...]]></description><category></category></item><item><title><![CDATA[由java速通python（二、特性）]]></title><link>https://blog.csdn.net/tanjun592/article/details/86479370</link><guid>https://blog.csdn.net/tanjun592/article/details/86479370</guid><author>tanjun592</author><pubDate>Thu, 15 Aug 2019 14:00:35 +0800</pubDate><description><![CDATA[13，python的结构块以及缩进规则：

对于已有编程语言功底的人，如果再了解了python的结构块和缩进规则之后，我觉得就算是python入门了。几条简单的规则，注意跟java结构的不一样的地方。



如上示例

13-1，定义方法的时候，因为是动态语言，方法，入参和出参的类型都不要。这是跟java的不一样

13-2，java的类体，方法体，循环体，判断分支等都是用大括号括起来。所以jav...]]></description><category></category></item></channel></rss>