- 博客(17)
- 收藏
- 关注
原创 Spring面试八股文
自动装配原理 1、当启动SpringBoot应用程序时,会先创建SpringApplication对象,在对象的构造方法中会进行某些参数的初始化工作,最主要时判断当前应用程序类型和初始化器和监听器,在这个过程中会加载整个应用程序中的spring.factories文件,将文件的内容放到缓存对象中,以便后续查找。 2、SpringApplication对象创建完毕后,开始执行run方法,来完成整个启动,启动过程中最主要的有两个方法,第一个叫prepareContext,第二个叫refreshContext,在
2021-12-30 20:40:54
1076
原创 MyBatis
项目 #{} ${} 执行顺序 动态解析 -> 预编译 -> 执行 动态解析 -> 编译 -> 执行 变量替换 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...
2021-12-29 16:21:17
605
原创 Spring启动流程源码阅读
1、进入如下核心构造方法 public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansException { //调用父类构造方法,进行相关的对象创建操作,初始化一些父类成员属性 super(parent); setConfigLocations(configLoca
2021-12-21 17:23:15
309
原创 SpringBoot启动原理
主程序类(主入口类) 我们现在来分析一下主程序类中的相关基本注解。 @SpringBootApplication @SpringBootApplication是Springboot应用标注在某个类上,用来说明这个类是Springboot的入口类,springboot就应该运行在这个类的main方法来启动Springboot应用,我们按住Ctrl键点进去,我们主要看里面的注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Docu
2021-12-02 17:11:15
765
原创 RocketMQ总结
核心概念 1、生产者Producer 负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。 2、消费者Consumer 负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。(主动,被动) 3、名字
2021-12-02 11:48:45
167
原创 kafka基本概念
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,那么其
2021-12-02 11:47:24
293
原创 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
1681
原创 Spring注解
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
2021-12-02 10:18:47
472
原创 常见bug及异常
1、驼峰命名问题 因为mybatis无法识别驼峰命名法的字段,导致某些字段没有获取到。 2、空指针异常 NullPointerException 3、循环依赖 a服务依赖了b服务,同时b服务也依赖了a服务。 4、数字溢出
2021-12-02 10:05:42
164
原创 Linux基本操作
日志查看 vi common.log 查找某字段 /handong 实时打印最后几行 tail -f common.log tailf common.log
2021-11-29 21:03:36
653
原创 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
306
原创 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
134
原创 编码规范记录
1、尽量早的进行异常或者非空判断。在parse之前。 2、不会变的东西不要放在配置文件里面。 3、if判断内的东西尽量少一点。 4、代码报黄色,说明有问题,把鼠标放上去看一下。 5、尽量不要用toString()方法,如果空指针会报错。 6、接口规范 Proto getCurrenteEvBikeLoadNum(JSONObject params); 返回值为Proto,参数只能有一个,且为 JSONObject params。 原因:易于扩展。 7、非空判断不要用 == 而要用工具类。 8、关于时间的
2021-10-12 17:15:40
173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2