1.为什么有了Spring,还需要SpringBoot?
① 传统Spring开发配置过多,使用不方便
② 依赖关联不方便
③ 传统 web 项目 Tomcat 部署不方便,SpringBoot 提供了内嵌的Tomcat
2. SpringBoot 的常用注解有哪些?
@SpringBootApplication
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
@SpringBootTest
@ConditionalOnXxx
3. SpringBoot的自动装配是如何实现的?
首先基于SpringBoot启动类的注解,其中有一个@EnableAutoConfiguration注解,
启用了自动配置,里面导入了自动装配类的导入类,这个类是基于Spring的ImportSelector
的一个用于导入额外Bean的类,这个类中间会通过获取jar包中META-INF/spring.factories
的文件,在该文件中获取到所有支持自动配置的全类名,作为候选类加载进来,然后根据
类中的 @ConditionalOnXxx 的注解来判断这些类是否满足条件,决定是否装配这些类对象。
4. Vue中的常用指令有哪些?
v-bind:
v-model:
v-on
v-if
v-show
v-for
5. 什么是 MVVM ?
是一种设计模式,针对于传统 MVC 模式的改进,强调的是 M(模型) V(视图)
VM(视图模型),通过 M -> VM -> V 的数据双向绑定
6. Spring Security的核心原理是什么?它是怎么实现认证的?
核心原理:基于Servlet的 Filter实现,实际是通过一组过滤器链(FilterChain)
来实现的各个功能。
认证:通过 UsernamePasswordAuthenticationFilter 来进行用户认证的校验,
默认会对 POST 请求类型且请求路径为 /login 的请求进行认证,如果当前的认证
对象是已认证的,就直接放行,如果认证失败会抛出认证失败的异常。
7. Activiti 提供的接口有哪些?分别是干什么用的?
RepositoryService: 用于操作资源相关的接口,如流程定义/图片等相关操作
RuntimeService: 用户操作运行时的相关对象,如流程实例/活动等
TaskService: 用于操作运行时的任务相关操作,包括任务批注等功能
HistoryService: 用于操作所有对象的历史相关数据,
如历史流程实例/历史任务/历史活动等
ManagerService: 用于对流程相关配置进行管理操作
8. Activiti7 新增了哪两个接口?主要有什么用?
ProcessRuntime: 用于替换原先的RuntimeService接口,提供了更方便操作运行
时流程实例等相关操作的方法
TaskRuntime: 用于替换原先的 TaskService 接口,提供了更方便操作运行时任
务的相关方法
以上两个方法实际还是在调用原先的 RuntimeServie/TaskService
9. Git 分支相关的命令有哪些?
git branch
git checkout
git merge
10. Git分支管理流程时什么样的?
稳定版代码主要维护在 master 分支,我们开发小组通常都在 dev 分支进行功能的
开发,当一个版本的功能开发完成后,将其合并到 test 分支,由该分支发版去进行
测试,如果有后续开发功能,我们继续在 dev 进行开发,当测试分支测试有问题时,
我们在测试分支进行修复,修复后确认没有问题了,会重新合并到 dev 分支,并且将
测试完成的代码合并到 master 进行线上版本的发布。
如果 master 发现了 bug, 会直接基于 master 切换出一个新的 bugfix 分支,
在该分支解决 bug, 当 bug 解决后,会进行测试,确认测试通过后,将其重新发布
,并将修复后的代码合并到 dev 分支。
如果代码出现了冲突,首先看冲突的情况,如果能确定哪些代码需要保留,哪些不需
要,就直接进行合并,如果有不确定的代码一般时找到对应的同事,确认后再合并。