- 博客(17)
- 收藏
- 关注
原创 Spring面试八股文
自动装配原理1、当启动SpringBoot应用程序时,会先创建SpringApplication对象,在对象的构造方法中会进行某些参数的初始化工作,最主要时判断当前应用程序类型和初始化器和监听器,在这个过程中会加载整个应用程序中的spring.factories文件,将文件的内容放到缓存对象中,以便后续查找。2、SpringApplication对象创建完毕后,开始执行run方法,来完成整个启动,启动过程中最主要的有两个方法,第一个叫prepareContext,第二个叫refreshContext,在
2021-12-30 20:40:54
978
原创 MyBatis
项目#{}${}执行顺序动态解析 -> 预编译 -> 执行动态解析 -> 编译 -> 执行变量替换DBMS外DBMS内加单引号自动加不加防止sql注入可以不行假设传入参数为1select * from t_user where uid = #{uid}select * from t_user where uid= ?select * from t_user where uid= '1’select * from t_u...
2021-12-29 16:21:17
575
原创 Spring启动流程源码阅读
1、进入如下核心构造方法public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansException { //调用父类构造方法,进行相关的对象创建操作,初始化一些父类成员属性 super(parent); setConfigLocations(configLoca
2021-12-21 17:23:15
251
原创 SpringBoot启动原理
主程序类(主入口类)我们现在来分析一下主程序类中的相关基本注解。@SpringBootApplication@SpringBootApplication是Springboot应用标注在某个类上,用来说明这个类是Springboot的入口类,springboot就应该运行在这个类的main方法来启动Springboot应用,我们按住Ctrl键点进去,我们主要看里面的注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Docu
2021-12-02 17:11:15
676
原创 RocketMQ总结
核心概念1、生产者Producer负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。2、消费者Consumer负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。(主动,被动)3、名字
2021-12-02 11:48:45
120
原创 kafka基本概念
kafka一个topic配置了3个partition。Partition1有两个offset:0和1。Partition2有4个offset。Partition3有1个offset。brokerKafka 集群包含一个或多个服务器,服务器节点称为broker。broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。如果某topic有N个partition,集群有(N+M)个broker,那么其
2021-12-02 11:47:24
98
原创 MyBatis基本使用
1、mybatis <=或这个>=提示错误Tag name expecte使用转义DATE_SUB(CURDATE(), INTERVAL 31 DAY) <= DATE(created)转义对照表常见转义对照表< <> >& &' ," "2、select语句示范<select id="getResult" result
2021-12-02 10:48:26
1599
原创 Spring注解
1、@Data@Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法;@Data@AllArgsConstructor@NoArgsConstructorpublic class Person { private String name; private String address; private Integer age; private String hobbit; priva
2021-12-02 10:18:47
369
原创 常见bug及异常
1、驼峰命名问题因为mybatis无法识别驼峰命名法的字段,导致某些字段没有获取到。2、空指针异常NullPointerException3、循环依赖a服务依赖了b服务,同时b服务也依赖了a服务。4、数字溢出
2021-12-02 10:05:42
120
原创 Linux基本操作
日志查看vi common.log查找某字段/handong实时打印最后几行tail -f common.logtailf common.log
2021-11-29 21:03:36
604
原创 git总结
三大区域工作区:已被管理暂存区:git add .代码库:git commit -m “tmp”1、提交本地分支git add . //会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤git commit -m "tmp" //将暂存区内容添加到本地仓库中git push origin feature/myBranch //将本地仓库中的修改推送远程2、本地操作git status
2021-10-13 11:48:23
230
原创 Java工具类
/** * 这是java8推出的全新时间类 */public class Time { public static void main(String[] args) { System.out.println(new Timestamp(LocalDateTime .now() .minusHours(24) .
2021-10-12 17:20:06
94
原创 编码规范记录
1、尽量早的进行异常或者非空判断。在parse之前。2、不会变的东西不要放在配置文件里面。3、if判断内的东西尽量少一点。4、代码报黄色,说明有问题,把鼠标放上去看一下。5、尽量不要用toString()方法,如果空指针会报错。6、接口规范Proto getCurrenteEvBikeLoadNum(JSONObject params);返回值为Proto,参数只能有一个,且为 JSONObject params。原因:易于扩展。7、非空判断不要用 == 而要用工具类。8、关于时间的
2021-10-12 17:15:40
123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人