面试问题总结(二)

这里写自定义目录标题

  • 面试问题总结
        • 一 SpringBoot常用标签
          • 1. 启动注解 `@SpringBootApplication`
          • 2. Controller相关注解
          • 3. 注入Bean相关
          • 4. 导入配置文件
          • 5. 事务注解
          • 六. 全局异常处理
        • 二 MVC设计模型与三层架构描述
        • 三 事务放在Dao还是Service
        • 四 MyBatis传递参数方法
          • 一 普通类型参数
          • 二 多个普通类型参数
          • 三 @Param注解命名参数
          • 四 Map对象作为参数
          • 五 JavaBean数据类型
          • 六 模糊查询
        • 五 Linux查询日志,切换用户
          • 一 查看日志
          • 二 切换用户
        • 六 如何构建开发环境
        • 七 权限,如何不同用户看到的东西不同
        • 八 如何弹出表单详情
        • 九 VUE常用标签
        • 十 JQuery实现三个表单元素的数据连在一起发送给后端
        • 十一 JQuery选择器有哪些
        • 十二 VUE实现动态追加class属性
        • 十三 VUE的V-FOR标签的key的作用
        • 十四 MyBatis标签

面试问题总结

一 SpringBoot常用标签

1. 启动注解 @SpringBootApplication
@SpringBootApplication 是一个复合注解
主要注解:
	@SpringBootConfiguration  主要用于加载配置文件
	@EnableAutoConfiguration  主要用于开启自动配置功能
	@ComponentScan			  主要用于组件扫描和自动装配
2. Controller相关注解
  1. @Controller
    控制器,标明该类是一个处理请求的控制器,主要用于处理http请求
  2. @RestController
复合注解:
	@ResponseBody + @Controller
  1. @GetMapping
    用在Controller的方法中,标明该接口只处理Get请求
  2. @PostMapping
    用在Controller的方法中,标明该接口只处理Post请求
  3. @RequestMapping
    用于Controller的方法中,标明该接口的请求地址,可以指定get,post,put,delete四种请求方式
  4. @RequestParam
    用于Controller的参数中,用于接收普通的参数(非对象)
  5. @RequestBody
    用于Controller的参数中,用于接收POST请求体中的JSON,转换为参数对象
  6. @PathVariable
    用于Controller的参数中,用于接收URL中RESTFUL类型的参数
比如  : http://URL/getUser/12345
@RequestMapping("/getUser/{uid}")
public String getUser(@PathVariable("uid")Integer id) {
     System.out.println("id:"+id);
     return "user";
 }
  1. @ResponseBody
    将Controller返回值转换成JSON的格式传给前端
3. 注入Bean相关
  1. @Repository
    用于Dao层,标明这是访问数据库的持久层
  2. @Service
    用于业务逻辑层,其内部方法 包含具体的业务逻辑
  3. @Entity
    用于实体类中,标明与数据库中的表对应
    @Id、@Column注解用于标注实体类中的字段
  4. @Scope
    作用在类上和方法,标明该bean的作用域
  5. @Bean
    在配置类中使用,即类上需要加上@Configuration注解
    (如果你想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component注解的,因此就不能使用自动化装配的方案了,但是我们可以使用@Bean)
  6. @Autowired
    作用在构造函数、方法、方法参数、类字段以及注解,主要用于Bean的注入
  7. @Component
    把普通pojo实例化到spring容器中,相当于配置文件中
4. 导入配置文件
  1. @PropertySource
    作用是引入properties文件
@PropertySource(value = {"classpath : xxxx/xxx.properties","classpath : xxxx.properties"})
  1. @ImportResource
    作用是导入xml配置文件,可以相对路径也可以绝对路径
@ImportSource(locations={"classpath : xxxx.xml" , "classpath : yyyy.xml"})
@ImportSource(locations= {"file : d:/hellxz/application.xml" , "file : d:/hellxz/dubbo.xml"})
  1. @Import
    作用是导入额外的配置信息
5. 事务注解

@Transactional
在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式

  • 编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。

  • 声明式事务管理: 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用

六. 全局异常处理
  1. @ControllerAdvice
    异常集中处理,更好的使业务逻辑与异常处理剥离开,可以指定某一个类为异常处理类,并包含各种类型的异常处理,作用在类上
// 定义这个类就是用来处理异常的
@ControllerAdvice
public class GlobalExceptionHandler {
}
  1. @ExceptionHandler
    统一处理某一类异常,从而能够减少代码重复率和复杂度,并生成对应的映射关系,作用在方法上
@ControllerAdvice
public class GlobalExceptionHandler {
	// 标明这个方法用来处理哪一种异常
    @ExceptionHandler(Exception.class)
    @ResponseBody
    String handleException(){
        return "Exception Deal!";
    }
}

二 MVC设计模型与三层架构描述

服务器端三层架构:
表现层 SpringMVC
业务层 Spring
持久层 Mybatis
MVC设计模式:
M -> Model 模型,也就是javaBean,操作的数据或信息
V -> View视图,jsp,html等,用于提供给用户交互
C -> Controller控制器,Servlet,根据View的指令选取Model层的数据,传给View

三 事务放在Dao还是Service

事务要一般都放在Service层,Controller如果有需要也可以加,但是不会放在Dao层,因为一个业务可能要处理多次数据库,如果放在Dao层,则第一次操作数据库成功第二次失败的时候就无法完全回滚.

四 MyBatis传递参数方法

一 普通类型参数
直接在Mapping文件中使用#{name}
public User queryUserById(Integer id);


二 多个普通类型参数
public List queryUserByNameAndSex(String name, Integer sex);


三 @Param注解命名参数
public List queryUserByNameAndSex(@Param("name") String name,
			@Param("sex") Integer sex);


四 Map对象作为参数
public List queryUserByMap(Map param);




五 JavaBean数据类型
public List queryUserByUser(User user);


六 模糊查询
public List queryUsersByNameLike(String lastName);


五 Linux查询日志,切换用户

一 查看日志
  1. tail -f XXX.log (最常用)
    实时查看日志 tail -n 10 XXX.log 查看后几行
  2. cat -n XXX.log |grep "关键字"(常用)
    根据关键字查看日志
  3. hard -n 10 XXX.log
    查看日志开头10行
  4. vim之后 /关键字 查看
  5. more/less如果显示太多不方便
cat -n test.log |grep "debug" |more  分页打印,(空格键翻页)
二 切换用户
su 用户名
或
sudo su 用户名

六 如何构建开发环境

给你一个GIT地址,如何搭建开发环境,需要向老员工要什么数据?

  1. 公司的maven私服地址
  2. Mysql的路径和用户信息
  3. Gitlab项目地址
  4. Redis的地址等其他

七 权限,如何不同用户看到的东西不同

八 如何弹出表单详情

九 VUE常用标签

v-text  可以与{{}}代替(不识别html标签)
v-html  页面添加html元素
v-bind  数据绑定,可以使用 : 代替
v-on    事件绑定,可以使用@代替
v-model   表单元素和数据的双向绑定
v-if v-else  判断
v-show   根据boolean值判断显示不显示
v-for     循环遍历(一定要设置key)

十 JQuery实现三个表单元素的数据连在一起发送给后端

有三个输入框name分别为a1,a2,a3如何将数据逗号隔开传到后台?
使用属性选择器匹配name属性以a开头的输入框

var data;
$("input[name^=a]').each(function(){
	data=data+$(this).val()
})

十一 JQuery选择器有哪些

id选择器
类选择器
元素选择器
属性选择器
后代选择器
子选择器
同辈选择器
等其他

参考博客
https://www.php.cn/js-tutorial-378052.html

十二 VUE实现动态追加class属性








十三 VUE的V-FOR标签的key的作用

十四 MyBatis标签

  1. select
  2. insert
  3. delete
  4. update
  5. if
  6. foreach
  7. resultMap
  8. Collection
  9. id
  10. sql
  11. trim
  12. accociation

你可能感兴趣的:(面试问题)