<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shushnu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shushnu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shushnu]]></copyright><item><title><![CDATA[谷粒商城业务演示]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/130762506</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/130762506</guid><author>shushnu</author><pubDate>Fri, 19 May 2023 11:05:13 +0800</pubDate><description><![CDATA[环境建立好了，快速启动成功了，演示一下各个功能的使用]]></description><category></category></item><item><title><![CDATA[谷粒商城快速启动]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/130762471</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/130762471</guid><author>shushnu</author><pubDate>Fri, 19 May 2023 11:03:01 +0800</pubDate><description><![CDATA[环境建立好了，从0开始启动各服务。]]></description><category></category></item><item><title><![CDATA[谷粒商城建立环境]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/130762428</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/130762428</guid><author>shushnu</author><pubDate>Fri, 19 May 2023 11:01:52 +0800</pubDate><description><![CDATA[从0开始建立环境，建立到可以直接启动的程度（安装IDEA、jdk、git不包含）]]></description><category></category></item><item><title><![CDATA[谷粒商城详细笔记]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/130762234</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/130762234</guid><author>shushnu</author><pubDate>Fri, 19 May 2023 10:58:14 +0800</pubDate><description><![CDATA[详细记录各个技术细节，研究学习的东西。]]></description><category></category></item><item><title><![CDATA[Spring面试八股文]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/122243793</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/122243793</guid><author>shushnu</author><pubDate>Thu, 30 Dec 2021 20:40:54 +0800</pubDate><description><![CDATA[自动装配原理
1、当启动SpringBoot应用程序时，会先创建SpringApplication对象，在对象的构造方法中会进行某些参数的初始化工作，最主要时判断当前应用程序类型和初始化器和监听器，在这个过程中会加载整个应用程序中的spring.factories文件，将文件的内容放到缓存对象中，以便后续查找。
2、SpringApplication对象创建完毕后，开始执行run方法，来完成整个启动，启动过程中最主要的有两个方法，第一个叫prepareContext，第二个叫refreshContext，在]]></description><category></category></item><item><title><![CDATA[MyBatis]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/122218228</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/122218228</guid><author>shushnu</author><pubDate>Wed, 29 Dec 2021 16:21:17 +0800</pubDate><description><![CDATA[项目
#{}
${}




执行顺序
动态解析 -&gt; 预编译 -&gt; 执行
动态解析 -&gt; 编译 -&gt; 执行


变量替换
DBMS外
DBMS内


加单引号
自动加
不加


防止sql注入
可以
不行


假设传入参数为1
select * from t_user where uid = #{uid}select * from t_user where uid= ？select * from t_user where uid= '1’
select * from t_u...]]></description><category></category></item><item><title><![CDATA[Spring启动流程源码阅读]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/122068595</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/122068595</guid><author>shushnu</author><pubDate>Tue, 21 Dec 2021 17:23:15 +0800</pubDate><description><![CDATA[1、进入如下核心构造方法
public ClassPathXmlApplicationContext(
      String[] configLocations, boolean refresh, @Nullable ApplicationContext parent)
      throws BeansException {
   //调用父类构造方法，进行相关的对象创建操作,初始化一些父类成员属性
   super(parent);
   setConfigLocations(configLoca]]></description><category></category></item><item><title><![CDATA[SpringBoot启动原理]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121681415</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121681415</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 17:11:15 +0800</pubDate><description><![CDATA[主程序类（主入口类）
我们现在来分析一下主程序类中的相关基本注解。
@SpringBootApplication
@SpringBootApplication是Springboot应用标注在某个类上，用来说明这个类是Springboot的入口类，springboot就应该运行在这个类的main方法来启动Springboot应用，我们按住Ctrl键点进去，我们主要看里面的注解
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Docu]]></description><category></category></item><item><title><![CDATA[RocketMQ总结]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121674124</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121674124</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 11:48:45 +0800</pubDate><description><![CDATA[核心概念
1、生产者Producer
负责生产消息，一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式，同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息，单向发送不需要。
2、消费者Consumer
负责消费消息，一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式：拉取式消费、推动式消费。（主动，被动）
3、名字]]></description><category></category></item><item><title><![CDATA[kafka基本概念]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121674088</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121674088</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 11:47:24 +0800</pubDate><description><![CDATA[kafka
一个topic配置了3个partition。Partition1有两个offset：0和1。Partition2有4个offset。Partition3有1个offset。
broker
Kafka 集群包含一个或多个服务器，服务器节点称为broker。
broker存储topic的数据。如果某topic有N个partition，集群有N个broker，那么每个broker存储该topic的一个partition。
如果某topic有N个partition，集群有(N+M)个broker，那么其]]></description><category></category></item><item><title><![CDATA[MyBatis基本使用]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121671861</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121671861</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 10:48:26 +0800</pubDate><description><![CDATA[1、mybatis &lt;=或这个&gt;=提示错误Tag name expecte
使用转义
DATE_SUB(CURDATE(), INTERVAL 31 DAY) &amp;lt;= DATE(created)

转义对照表
常见转义对照表
&amp;lt;     &lt;
&amp;gt;     &gt;
&amp;amp;    &amp;
&amp;apos;   ,
&amp;quot;   "

2、select语句示范
&lt;select id="getResult" result]]></description><category></category></item><item><title><![CDATA[Spring注解]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121671228</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121671228</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 10:18:47 +0800</pubDate><description><![CDATA[1、@Data
@Data 注解的主要作用是提高代码的简洁，使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法；
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private String address;
    private Integer age;
    private String hobbit;
    priva]]></description><category></category></item><item><title><![CDATA[常见bug及异常]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121670771</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121670771</guid><author>shushnu</author><pubDate>Thu, 02 Dec 2021 10:05:42 +0800</pubDate><description><![CDATA[1、驼峰命名问题
因为mybatis无法识别驼峰命名法的字段，导致某些字段没有获取到。
2、空指针异常
NullPointerException
3、循环依赖
a服务依赖了b服务，同时b服务也依赖了a服务。
4、数字溢出

]]></description><category></category></item><item><title><![CDATA[Linux基本操作]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/121619551</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/121619551</guid><author>shushnu</author><pubDate>Mon, 29 Nov 2021 21:03:36 +0800</pubDate><description><![CDATA[日志查看
vi common.log

查找某字段
/handong

实时打印最后几行
tail -f common.log
tailf common.log


]]></description><category></category></item><item><title><![CDATA[git总结]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/120740791</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/120740791</guid><author>shushnu</author><pubDate>Wed, 13 Oct 2021 11:48:23 +0800</pubDate><description><![CDATA[三大区域
工作区：已被管理
暂存区：git add .
代码库：git commit -m “tmp”
1、提交本地分支
git add .              //会把本地所有untrack的文件都加入暂存区，并且会根据.gitignore做过滤
git commit -m "tmp"    //将暂存区内容添加到本地仓库中
git push origin feature/myBranch      //将本地仓库中的修改推送远程

2、本地操作
git status                ]]></description><category></category></item><item><title><![CDATA[Java工具类]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/120727949</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/120727949</guid><author>shushnu</author><pubDate>Tue, 12 Oct 2021 17:20:06 +0800</pubDate><description><![CDATA[/**
 * 这是java8推出的全新时间类
 */
public class Time {
    public static void main(String[] args) {
        System.out.println(new Timestamp(LocalDateTime
                                    .now()
                                    .minusHours(24)
             .]]></description><category></category></item><item><title><![CDATA[编码规范记录]]></title><link>https://blog.youkuaiyun.com/shushnu/article/details/120726640</link><guid>https://blog.youkuaiyun.com/shushnu/article/details/120726640</guid><author>shushnu</author><pubDate>Tue, 12 Oct 2021 17:15:40 +0800</pubDate><description><![CDATA[1、尽量早的进行异常或者非空判断。在parse之前。
2、不会变的东西不要放在配置文件里面。
3、if判断内的东西尽量少一点。
4、代码报黄色，说明有问题，把鼠标放上去看一下。

5、尽量不要用toString()方法，如果空指针会报错。
6、接口规范
Proto getCurrenteEvBikeLoadNum(JSONObject params);

返回值为Proto，参数只能有一个，且为 JSONObject params。
原因：易于扩展。
7、非空判断不要用 == 而要用工具类。
8、关于时间的]]></description><category></category></item></channel></rss>