一些记录
需要学的
Springcloud、Springboot、Springmvc 迁移为Boot项目、在 Boot 中使用 Xml、线程安全、线程安全类、多线程、事务管理、悲观锁乐观锁、集合、Dubbo 原理、Sql 调优问题、中间件、Mybatis 如何防止 Sql 注入、Redis原理、Mybatis原理、Tcp、Mq
10/18
计划:
- 搭建开发环境
- 构建云收藏项目并运行
- 阅读五篇技术文章并记录
- 跑步
结果:
- 搭建开发环境完成
- 构建云收藏项目完成,但无法运行,缺少数据库(后面发现不需要数据库,JPA 自动生成)
- 文章:
-
迷茫的时候,究竟应该做些什么?
我们要明白的是,迷茫其实是人生的一种常态,每个人都会遇到一种精神状态,在这时候我们应该做但却经常忽略的是 收集更多的信息。
迷茫是什么,迷茫就是当下有很多条路可以走但你不知道究竟该走哪一条,但如果你有足够多的信息是你判断走其中一条路是最适合你的,你还会迷茫吗?
接受迷茫这种精神状态,静下心来,收集更多的信息作出决断。 -
Springboot 入门
Springboot helloword 项目开发完成,引用配置使用 @value("${xxx}") 注解,多环境配置版本 spring.profiles.active 取值 dev/prod
@RequestMapping(value = {"/hello","/hi"}, method = RequestMethod。GET) 本注解是为一个方法配置多个请求路径,@GetMapping("/hi") Get 请求注解
@RequestParam 和 @PathVariable 都是获取请求中的参数 @PathVariable 针对请求路径上的参数("/hello/{id}") @RequestParam 针对表单参数,此注解可以设置可否为空,可设置为空默认值。
10/19
计划:
- 学习 Springboot 的数据库操作-- JPA 方式和数据库事务管理
- 下午 面试重庆慧软和八戒财税
- 跑步或运动 1h
结果:
- 完成数据库操作,事务管理视频已学习。
- 面试,一个电话面,一个公司面,电话免得看不上,公司面的没结果,估计嫌我要价高。
- 跑步完成。
10/30
计划:
- 学习线程安全相关知识
- 完成Spring boot 事务管理代码编写
- 阅读五篇优质公众号文章
- 跑步 + 哑铃 + 俯卧撑
结果:
-
创建线程的方法有:
1. 继承 Thread 类,重写 run(),调用时声明该类并执行 start();
在类 A 中创建匿名内部类 thread, 重写 run() 调用 start();
2. 创建类 A 实现 java.lang.Runnable 接口,重写 run,调用时 Thread thread = new Thread(new MyRunnable()); thread.start();
匿名实现同理 -
Spring-boot-starter-data-jpa 会将代码中的实体类映射到数据库表中,自动建表,主键注解 @Id 自增长序列注解 @GeneratedValue 实体类需要些无参构造方法。
Spring.jpa.hibernateddl-auto: 取值说明:- update 无表建表,有表不变,有数据不会删除
- create 新建表,删除原有表和数据
- create-drop 新建表,应用停的时候就会将表删除
- validate 验证表结构,有误则报错。
@Transactional 事务注解,一般用于 service 层,使一个 service 方法中的所有操作成为事务。
-
频繁在集合中插入和删除数据,优先选择 LinkedList,频繁按集合下标读取元素,则优先选择 ArrayList。
-
跑步 10 Km,耗时 80 分钟。
10/31
计划:
- 学习「深入浅出Java多线程课程」
- 学习「Springboot-Web进阶」
- 阅读五篇「左耳听风」
- 100个俯卧撑
- 跑步四十分钟
- 写一篇博文,并发公众号
结果:
-
已完成「Springboot-Web进阶」课程学习,明日计划写代码并学习「深入浅出Java多线程课程」。
-
程序员如何用技术变现
应当尽量去简化工作中没有技术含量的工作,提高代码重用度,自动化,简化需求。要去经历大多数人经历不到的,要把学习时间花在那些比较难的地方。
要写文章就要写没有人写过的,或是别人写过,但我能写得更好的。
技术和知识完全是可以变现的。
最好的SEO就是独一份,要学会展现自己。
25~35岁是每个人最宝贵的时光,应该用在刀刃上。
并不是社会不尊重程序员,只要你能帮上大忙,就一定会赢得别人的尊重。能帮上大忙的前提就是你能人所不能。
得让身边的人有求于你,或是向别人推荐你,这就需要你能掌握大多数人不能掌握的技能或技术,需要你更多地学习,并要有更多别人没有的经验和经历。
更好的技术敏感度,看清市场需求。
学习技术是需要多问自己:「这个技术解决什么问题?和同类型产品的优势在哪? 为什么是这样的解决方式,有没有更好的方案? 不可替代性?」
找到能体现价值的地方(公司或网站) 只有在一家高速发展的公司,技术人员的价值才能达到最大化。
关注技术付费点 挣钱和省钱两个方向。
尽量阅读英文技术文档,保证一手信息源。
输出观点和价值观,想清楚,写明白,快发声,打造自己的稀缺性!
不要只寄望于在工作中学习,工作没有覆盖的地方你就不学了。真正的高手在工作之余都会花很多时间去自己研究点东西的。永远和高手一起工作。如果你面试的公司的面试太简单了,那就不要去,因为简单的面试通常意味着平庸。去那样的公司工作只会让你的学习速度变慢,甚至倒退。
-
高估自己了,上半身太重,做了五十个做不动了
-
吃饭吃晚了,去不了,改为50次哑铃弯举。
-
博客写好了, 三年是程序员的一个坎.
11/1
计划:
- 「Springboot-Web进阶」相关代码 coding
- 学习「深入浅出Java多线程课程」 50%
- 阅读三篇左耳听风
- 跑步 40 Min+
结果:
- @Valid 注解可以校验表单参数,具体验证方式写在实体类中
@Aspect 切面类注解 @Piontcut 切面点注解 可用于记录请求参数和返回使用 - 没学。。。
- 没看。。。
- 跑步还是跑了的 -
11/2
计划:
- 完成统一异常处理代码 coding
- 学习「深入浅出Java多线程课程」 50%
- 阅读三篇左耳听风
- 纠正打字指法训练
- 腹肌撕裂者一组
结果:
- 想要成为一个好的程序员,必须注意以下几个方面:
英文能力、问问题的能力、写代码的修养、安全防范意识、软件工程和上线规范 - 然后就跑去望海花市玩去了。。。我有罪
中间这几天去女朋友家了。。
11/5
计划:
- 学习「深入浅出Java多线程课程」 50%
- 阅读两篇「左耳听风」
结果:
- 发现,在 mysql 数据库中,MyISAM 数据库引擎不支持事务,但 Select 查询更有效率,InnoDB 数据库引擎支持事务,更适合 Insert 和 Update 操作。
- 在程序完成编写后,需要对代码进行测试,包括 service 和 controller。
- 在 SrpingBoot 版本迭代中,将 JPA 的 findOne() 改成了 findById()。尽量不要使用 getOne() 代替
11/6
计划:
- 了解 Dubbo 实现原理
- 写一个 Dubbo 的 Demo
- 看看面试题
- 投投简历
结果:
- 看了好几篇实现原理,感觉都一般,或者说我没看懂。。。
- demo 已完成,并建立管理控制台
- 面试题看了几个,明天多看点。
- 投简历发现重庆的公司真不怎么样,有点恼火,后面准备好了之类找人内推一下。
11/7
计划:
- 观看「Spring Cloud 微服务实战」前三章内容
- 看看面试题,细看
结果:
-
微服务是一种架构风格,不是组件不是框架。
1.一系列微小的服务共同组成
2.跑在自己的进程
3.每个服务为独立的业务开发
4.独立部署
5.分布式的管理 -
单体架构的优点:
容易测试(本地启动完整的测试,不需要外部依赖)
容易部署(直接打成war包,放在tomcat下面就可以了) -
单体架构的缺点:
开发效率低(容易提交代码的时候造成冲突)
代码维护难(尤其是新人来的时候业务代码写在一块,不知从何下手)
部署不够灵活(任何小修改都要重新构建,构建时间特别长)
稳定性不够 (任何一个小问题容易让整个系统挂掉)
扩展性不够(无法满足高并发下的业务需求,如需要某部分服务获取更多资源和流量 ) -
分布式的定义:
旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素,不共享内存,但通过网络发送消息合作。
两个厨师,一个洗菜一个炒菜,互不干扰就是分布式,两个都炒菜就是集群。
11/9
计划:
- 观看「Spring Security」前三章内容
- 面试重庆讯云
结果:
- 内容较多,看了前两章
- 面试等通知,估计无果