中小公司的Java工程师怎么进BAT?,2024年最新mybatis工作流程面试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

所以,其实这个也是符合28法则的,少部分人在大厂里干过,发展的很好。但是大部分人还是在中小型公司,或者外包类传统IT公司里工作。

(1)80% Java工程师都有的迷茫

===================

这些同学可能对自己的技术成长,职业发展感到非常的迷茫,自己有点追求,也想去一下大厂,但是又不知道怎么规划。

因为我个人在国内几个最大的互联网公司先后有着十余年工作经历,面试和招聘过大量各种水平的开发人员。包括初、中、高级开发,技术专家,高级技术专家,都面过。

同样,也指导过很多同学的职业发展规划,看过大量的同学不顺利的职业发展,所以打算从我个人的角度来聊聊这个问题:中小公司的同学应该如何一步一步实现逆袭进入BAT。

我相信以下情形很多同学应该都有类似体会:一直徘徊在各种中小公司里开发一些没技术难度的Java系统,主要就是CRUD。

哪怕是用了用MQ、缓存、分库分表,但是也没什么并发量,数据量也不算特别大,自己的技术成长极为缓慢。

然后就是三五年,七八年,甚至十多年,职业发展和技术水平都停滞在这个状态,无法有更进一步的发展。

随着现在寒冬到来,到处裁员,中年码农的危机,加不动班,体力越来越差,孩子压力越来越大,对自己何去何从很迷茫。

有一些同学是一直徘徊在那种中小型互联网公司里碰到上述情况,有一些同学是在一些外包类的IT公司里碰到上述情况。

(2)你的技术为啥十年八年都无法进步?

=======================

先来搞清楚一个问题,你的技术到底为什么十年八年都无法进步?

拆解一下,你的能力集中在哪几块:

技术广度

对MQ、缓存、NoSQL、大数据、高并发、高可用、微服务,等一系列的相关技术都有一定的了解,熟悉常见功能

在自己的项目里落地使用过,有一定的技术使用经验

这可以解释为技术广度。

技术深度

读过Kafka的底层源码?

对消息中间件的架构设计思想有深刻的理解?

对分布式事务框架/中间件的架构设计有过研究?

在每秒百万并发场景下做过底层系统的深入优化和故障处理?

如果你有类似这种过人之处,那么你才能说你有某些技术深度。

项目经验

你有没有整体负责过几亿注册用户,几千万日活用户的大规模、高并发、分布式、高可用、高复杂度的系统架构设计?

或者你负责的一直都是那种公司内部使用的,几十个人用的OA系统,CRM系统?

这些就是你的项目经验

团队管理

你在互联网公司里带过20的团队?

或者你在一个传统IT公司里带过3个人的小组?

这都是你的团队管理经验。

拆解过后,再来看看,如果你在一些小型互联网公司,或者是做一些传统软件开发,为什么技术无法进步?

其实道理很简单,可能你的公司推出了一款APP,但是不好意思,用户量总共就100万,日活用户就10万人。

那你觉得你的系统有技术挑战吗?没有。

既然没有技术挑战,你把系统搞那么复杂干嘛?或者你的架构师搞那么复杂干嘛?不需要。

大家简单做一做,主要crud写一下功能,最多现在spring cloud流行了,上一下拆成微服务的就够了。

然后这套系统就稳定支撑你公司的业务了,那你接触不到很大的技术挑战,所以技术进入停滞状态,不是很正常么?

或者你做一些传统的软件开发,比如说建筑类软件,办公自动化软件,类似这种的。总共就几十个人用一个系统,或者几百人用,那你就更是如此了。

可能都不需要spring cloud,直接单块系统,单机部署,就是在里面填充业务代码就好了。

所以根本原因,就是很多同学平时的工作环境,他没有什么技术挑战,所以只要把系统技术做的简单一些,低成本就可以支撑公司业务了,那既然这样,当然技术就进展很缓慢了。

然后可能你工作了八年十年,技术广度还可以,对流行的技术自己都看过一些书,简单用过,玩过demo。

你的项目经验积累了不少,但是都是一些各个传统领域的系统业务理解较为深刻,没有极高技术挑战的项目经验。

有的人工作时间长,可能就是带过一些人,有过一些带团队的经验,能管人。

大概就是如此了,每次换工作,还是只能换类似的公司,干类似的技术,依然没有进步,依然是类似的项目经验。

所以大伙儿先梳理清楚,迷茫的根源究竟在哪里。

(3)想进BAT的你该掌握什么技术?

======================

笔者在这里总结了一下,首先是基础工作需要的,spring,IOC,AOP,spring mvc,mybatis,这些源码都是需要读的。

其次JVM,程序性能优化,Tomcat,并发编程,MySQL,netty,Linux也是需要了解的。

高性能架构,分布式,Zookeeper,Nginx,active mq,rabbit mq,kafka,memcached,Redis,mongoDB。

微服务,不用多说,spring boot ,spring cloud,docker。

团队开发,Git,Maven,Jenkins,sonar。

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

帮助,也希望大家多多支持。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-Z7Z6B405-1713675358792)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
添加 MyBatis 框架到 Spring Boot 中的流程如下: 1. 添加依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependencies> <!-- Spring Boot 相关依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis 相关依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> ``` 其中,`mybatis-spring-boot-starter` 是 MyBatis 官方提供的在 Spring Boot 中使用 MyBatis 的依赖。 2. 配置数据源 在 `application.properties` 文件中添加以下配置: ```properties # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 其中,`spring.datasource.url`、`spring.datasource.username`、`spring.datasource.password`、`spring.datasource.driver-class-name` 分别是数据库连接的 URL、用户名、密码和驱动类名。 3. 配置 MyBatis 在 `application.properties` 文件中添加以下配置: ```properties # MyBatis 配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 其中,`mybatis.mapper-locations` 是 MyBatis Mapper 文件的路径,`mybatis.type-aliases-package` 是实体类的包路径。 4. 编写 Mapper 在 `src/main/resources/mapper` 目录下创建一个 `UserMapper.xml` 文件,编写对应的 SQL 语句。 例如: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <!-- 查询所有用户 --> <select id="findAll" resultType="com.example.demo.entity.User"> SELECT * FROM user </select> </mapper> ``` 其中,`namespace` 指定 Mapper 接口的全限定名,`id` 指定 SQL 语句的 ID,`resultType` 指定返回结果的类型。 5. 编写 Mapper 接口 在 `src/main/java/com/example/demo/mapper` 目录下创建一个 `UserMapper.java` 接口,定义对应的方法。 例如: ```java package com.example.demo.mapper; import com.example.demo.entity.User; import java.util.List; public interface UserMapper { // 查询所有用户 List<User> findAll(); } ``` 其中,方法名与 XML 文件中的 ID 对应,返回值类型与 XML 文件中的 `resultType` 对应。 6. 编写 Service 在 `src/main/java/com/example/demo/service` 目录下创建一个 `UserService.java` 接口和一个 `UserServiceImpl.java` 实现类,定义对应的方法。 例如: ```java package com.example.demo.service; import com.example.demo.entity.User; import java.util.List; public interface UserService { // 查询所有用户 List<User> findAll(); } ``` ```java package com.example.demo.service.impl; import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> findAll() { return userMapper.findAll(); } } ``` 其中,`@Autowired` 注解自动将 `UserMapper` 注入到 `UserServiceImpl` 中。 7. 编写 Controller 在 `src/main/java/com/example/demo/controller` 目录下创建一个 `UserController.java` 类,定义对应的接口。 例如: ```java package com.example.demo.controller; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/findAll") public List<User> findAll() { return userService.findAll(); } } ``` 其中,`@RestController` 注解表示该类是一个 REST 接口,`@RequestMapping` 注解指定 URL 前缀,`@Autowired` 注解自动将 `UserService` 注入到 `UserController` 中。 8. 启动应用 运行 `DemoApplication.java` 文件,应用启动后,访问 `http://localhost:8080/user/findAll` 即可查看所有用户的信息。 以上就是在 Spring Boot 中添加 MyBatis 框架的流程,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值