最后
针对以上面试题,小编已经把面试题+答案整理好了
面试专题
除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习
问:在Linux系统中运行项目,是否需要提前安装插件?
答案:不要。因为lombok在编译期有效,由xxx.java文件编译为xxx.class文件时,已经动态添加了set/get等方法,所以在项目发布时(xxx.class文件组成的xxx.jar)不需要安装lombok环境。
1.3.1 需求说明
调用流程:
UserController------->UserService中的方法---------->获取返回值
需求:
由于编辑UserController的同事不在,所以Controller的方法无法得知,导致自己写的Service无法测试。
解决方案:
SpringBoot由于开发中需要经常编译测试的方法,为了降低代码联调的代价,则SpringBoot提供了专门用于测试的注解@SpringBootTest。
1.3.2 @SpringBootTest的用法
注解说明:如果测试方法中添加了该注解,则当执行@Test注解方法时,则Spring容器将会启动,启动之后将所有需要依赖注入的信息完整构建,之后用户可针对性的挑选需要测试的代码。
1.3.3 测试类入门案例
@SpringBootTest
class SpringbootDemo1ApplicationTests {
@Autowired
private UserController userController;
@Test
void contextLoads() {
String msg = userController.getMsg();
System.out.println(msg);
}
1.4.1 SpringBoot加载器顺序
-
当用户点击main方法时,启动程序(开始)。
-
SpringBoot程序开始加载主启动类上的注解@SpringBootApplication(SpringBoot内部运行机制开始执行)。
-
当SpringBoot程序开始执行,则会动态的获取当前主启动类的包路径(con.jt)。
-
通过包扫描机制,将特定的注解标识的类(Controller/Service/Dao)交给Spring容器管理。
-
Spring容器维护的是一个Map集合<K,V>,key:类名首字母小写(userController),value:实例化的对象。例如:Map<userController,UserController的实例化对象>。
-
当对象创建时(实例化),遇到@Autowired则需要依赖注入对象,当整个Spring容器内部都没有该对象时,则会报错注入失败,如果Map中维护了需要注入的对象,则会注入成功,等待用户的调用。
1.5.1 创建项目
1.5.2 添加jar包
org.springframework.boot
spring-boot-starter-parent
2.5.3
com.jt
springboot-demo2
1.0-SNAPSHOT
<java.version>1.8</java.version>
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-devtools
org.projectlombok
lombok
mysql
mysql-connector-java
org.springframework.boot
spring-boot-starter-jdbc
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.2.0
org.springframework.boot
spring-boot-maven-plugin
1.5.3 编辑主启动类
@SpringBootApplication
@MapperScan(“com.jt.mapper”) //通过包扫描机制,设定该路径下的所有类,Spring会为其创建代理对象(实质为接口的实现类)
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
}
}
1.5.4 编辑POJO实体类
1.5.5 编辑Mapper接口
1.5.6 编辑Mapper配置文件 —— UserMybatis.xml映射文件
<?xml version="1.0" encoding="UTF-8" ?>select * from demo_user
insert into demo_user(id,name,age,sex) value(null,#{name},#{age},#{sex})
select * from demo_user where id= #{id}
update demo_user set name=#{name},age=#{age},sex=#{sex} where id = #{id}
1.5.7编辑application.yml配置文件
server:
port: 8090
#spring整合数据源 最快的数据源
spring:
datasource:
#使用高版本驱动时使用cj
#serverTimezone=GMT%2B8 东8区 %2B +号
#&useUnicode=true&characterEncoding=utf8 是否开启unicode编码/utf-8
#&autoReconnect=true 断线是否重连
结尾
这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!