<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[八卦程序的专栏]]></title><description><![CDATA[八卦程序员]]></description><link>https://blog.youkuaiyun.com/wu_boy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wu_boy]]></copyright><item><title><![CDATA[Spring Boot2中如何优雅地个性化定制Jackson]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/129317980</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/129317980</guid><author>wu_boy</author><pubDate>Fri, 03 Mar 2023 12:53:32 +0800</pubDate><description><![CDATA[Spring Boot2个性化定制Jackson，解决LocalDateTime日期时间的序列化和反序列化。]]></description><category></category></item><item><title><![CDATA[使用Modbus4J进行RTU模式串口通信]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/112203764</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/112203764</guid><author>wu_boy</author><pubDate>Mon, 04 Jan 2021 21:25:32 +0800</pubDate><description><![CDATA[Modus协议是由MODICON（现为施耐德电气公司的一个品牌）在1979年开发的，是全球第一个真正用于工业现场的总线协议，应用非常广泛，可谓大名鼎鼎。
理论性的东西就不多介绍了，推荐一本书《Modbus软件开发实战指南》，杨更更著，写得非常好，从理论到实战，手把手教你玩转Modbus，不过代码实战部分使用的是C#，笔者没练过这项武功，还是看一下Java中怎么应用吧，网上资料多用Modbus4J，就选它了。
Modbus4J源代码：https://github.com/infiniteautomation/]]></description><category></category></item><item><title><![CDATA[Java串口编程例子]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/112062071</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/112062071</guid><author>wu_boy</author><pubDate>Fri, 01 Jan 2021 17:56:27 +0800</pubDate><description><![CDATA[最近笔者接触到串口编程，网上搜了些资料，顺便整理一下。网上都在推荐使用Java RXTX开源类库，它提供了Windows、Linux等不同操作系统下的串口和并口通信实现，遵循GNU LGPL协议。看起来不错，写个例子试试。
准备运行环境
下载RXTX
RXTX下载地址是：http://fizzed.com/oss/rxtx-for-java，笔者操作系统是Windows10，下载对应版本的压缩包，解压后复制RXTXcomm.jar到D:\Program Files\Java\jdk1.8.0_152\jre]]></description><category></category></item><item><title><![CDATA[Head First 设计模式]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/89179661</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/89179661</guid><author>wu_boy</author><pubDate>Wed, 24 Apr 2019 19:03:32 +0800</pubDate><description><![CDATA[1、策略模式（Strategy Pattern）
定义了算法族，分别封装起来，让它们之间可以互相替换，此模式让算法的变化独立于使用算法的客户。

设计原则：找出应用中可能需要变化之处，把它们独立出来，不要和那些不需要变化的代码混在一起。


设计原则：针对接口编程，而不是针对实现编程。


设计原则：多用组合，少用继承。

2、观察者（Observer）模式
定义了对象之间的一对多依赖，这样一来，...]]></description><category></category></item><item><title><![CDATA[Java8函数式编程例子]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/89422188</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/89422188</guid><author>wu_boy</author><pubDate>Sat, 20 Apr 2019 19:35:37 +0800</pubDate><description><![CDATA[创建pojo
public class UserDemo {

    private String id;

    private String name;

    private Integer age;

    // 自行补充get/set方法
}

例子
package com.wu.parker.common.demo.util;

import java.util.ArrayLi...]]></description><category></category></item><item><title><![CDATA[Spring Boot集成邮件服务]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/88568046</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/88568046</guid><author>wu_boy</author><pubDate>Fri, 15 Mar 2019 10:46:16 +0800</pubDate><description><![CDATA[Spring Boot版本：2.0.6.RELEASE。
源代码：https://github.com/wu-boy/parker.git，parker-email模块。
1、pom.xml中添加spring-boot-starter-mail引用
&amp;amp;lt;dependency&amp;amp;gt;
            &amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/...]]></description><category></category></item><item><title><![CDATA[Spring Boot通过属性文件外置配置]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/86236646</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/86236646</guid><author>wu_boy</author><pubDate>Thu, 10 Jan 2019 15:49:01 +0800</pubDate><description><![CDATA[本文参考《Spring Boot实战》第4版第3.2章节通过属性文件外置配置。
Spring Boot提供了一系列的默认配置，如果想自定义配置怎么办，这里给出了3种办法。
自动配置微调
常用的方法就是在application.yml中进行配置，覆盖默认的配置。
应用程序Bean的配置外置
在开发应用程序时，往往有很多可配置的参数，不能写死在程序里，因此需要配置文件来配置。这时可以通过提供一些配置类...]]></description><category></category></item><item><title><![CDATA[PostgreSQL序列]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/86231752</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/86231752</guid><author>wu_boy</author><pubDate>Thu, 10 Jan 2019 14:34:23 +0800</pubDate><description><![CDATA[PostgreSQL10版本测试通过。
删除和创建序列
设置序列从1开始
drop sequence if exists s_order_serial;
create sequence s_order_serial start 1;

获取序列值
select nextval('s_order_serial');

修改序列
把初始值设置为1
alter sequence s_order_seri...]]></description><category></category></item><item><title><![CDATA[SpringBoot2定时任务]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/86220994</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/86220994</guid><author>wu_boy</author><pubDate>Thu, 10 Jan 2019 11:23:02 +0800</pubDate><description><![CDATA[SpringBoot默认已经实现了定时任务。
启动类启用定时
在启动类上面加上@EnableScheduling即可开启定时。
package com.wu.parker.schedule;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.Spring...]]></description><category></category></item><item><title><![CDATA[SpringBoot集成EasyPoi]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/85014359</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/85014359</guid><author>wu_boy</author><pubDate>Sat, 15 Dec 2018 15:01:07 +0800</pubDate><description><![CDATA[参考EasyPoi官网，需要引入
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;cn.afterturn&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;easypoi-spring-boot-starter&amp;lt;/artifactId&amp;gt;
        &amp;lt;/dependency...]]></description><category></category></item><item><title><![CDATA[SpringBoot2集成WebSocket]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84944981</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84944981</guid><author>wu_boy</author><pubDate>Mon, 10 Dec 2018 19:27:21 +0800</pubDate><description><![CDATA[依赖
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-boot-starter-websocket&amp;lt;/artifactId&amp;gt;
        &amp;lt;/dependency...]]></description><category></category></item><item><title><![CDATA[SpringBoot2集成Shiro与Web应用]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84898455</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84898455</guid><author>wu_boy</author><pubDate>Sat, 08 Dec 2018 20:15:19 +0800</pubDate><description><![CDATA[本文结合一个简单的权限模块设计来实现Shiro的集成。
新建实体如下：
权限实体Permission：id,code,name,parent_id;
角色实体Role：id,code,name;
用户实体User：id,username,password,roleId（简化设计，一个用户只能有一个角色，因此设置一个roleId）;
Role和Permission的关系通过role_permissi...]]></description><category></category></item><item><title><![CDATA[SpringBoot2集成Redis]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84861728</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84861728</guid><author>wu_boy</author><pubDate>Thu, 06 Dec 2018 17:25:34 +0800</pubDate><description><![CDATA[引入spring-boot-starter-data-redis
其提供了RedisTemplate来操作Redis，类似于JdbcTemplate操作数据库。
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifact...]]></description><category></category></item><item><title><![CDATA[SpringBoot2增加跨域请求支持]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84858915</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84858915</guid><author>wu_boy</author><pubDate>Thu, 06 Dec 2018 16:10:06 +0800</pubDate><description><![CDATA[跨域请求支持可分为全局配置和局部配置，这里暂时记录全局配置方法。
package com.wu.parker.rest.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;...]]></description><category></category></item><item><title><![CDATA[SpringBoot2发布REST服务并集成Swagger]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84838661</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84838661</guid><author>wu_boy</author><pubDate>Wed, 05 Dec 2018 16:30:40 +0800</pubDate><description><![CDATA[需要如下依赖
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;
        &amp;lt;/dependency&amp;g...]]></description><category></category></item><item><title><![CDATA[SpringBoot2集成JPA和MyBatis]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84677323</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84677323</guid><author>wu_boy</author><pubDate>Sat, 01 Dec 2018 18:55:28 +0800</pubDate><description><![CDATA[JPA和MyBatis各有各的好处，混合食用效果更佳。
根据前面的博文《Spring Boot2集成JPA》和《SpringBoot2集成MyBatis》，我们已经知道怎么分别集成JPA和MyBatis，两者一起集成也简单。
合并配置文件application.yml
spring:
  datasource:
    driver-class-name: org.postgresql.Drive...]]></description><category></category></item><item><title><![CDATA[Spring Boot2集成MyBatis]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84568692</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84568692</guid><author>wu_boy</author><pubDate>Tue, 27 Nov 2018 16:49:15 +0800</pubDate><description><![CDATA[SpringBoot2集成MyBatis可以通过引入mybatis-spring-boot-starter来实现。mybatis-spring-boot-starter主要有两种解决方案，一种是使用注解解决一切问题，一种是简化后的老传统，本人倾向于使用后者。
项目架构可以直接看源代码https://github.com/wu-boy/parker.git，这里捡主要内容说。
application...]]></description><category></category></item><item><title><![CDATA[Spring Boot2集成JPA]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/84346854</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/84346854</guid><author>wu_boy</author><pubDate>Thu, 22 Nov 2018 18:52:11 +0800</pubDate><description><![CDATA[目前工作中在使用Spring Boot2，陆续会集成众多开发框架，因此整理成博客，记录下来，方便以后使用。
管理工具使用Maven，采用模块化开发，各模块尽量能够独立运行，主要用于记录学习过程，因此可能会有很多冗余代码。
项目结构图

项目pom.xml
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;project xmlns=&quot;http://m...]]></description><category></category></item><item><title><![CDATA[SpringBoot1使用Swagger2例子]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/81302004</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/81302004</guid><author>wu_boy</author><pubDate>Tue, 31 Jul 2018 13:46:33 +0800</pubDate><description><![CDATA[本文使用Spring Boot1.5.8版本，代码下载地址：  
SpringBoot1使用Swagger2例子

最终项目目录如下图所示： 




新建Maven工程

pom.xml文件如下：

&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;
&amp;amp;lt;project xmlns=&amp;quot;http://maven.apache.or]]></description><category></category></item><item><title><![CDATA[Spring Boot1使用MyBatis注解版例子]]></title><link>https://blog.youkuaiyun.com/wu_boy/article/details/80760966</link><guid>https://blog.youkuaiyun.com/wu_boy/article/details/80760966</guid><author>wu_boy</author><pubDate>Wed, 04 Jul 2018 22:24:35 +0800</pubDate><description><![CDATA[3.1 更简单的打印语句]]></description><category></category></item></channel></rss>